php-windows-robot
php-windows-robot copied to clipboard
🌈 PHP Windows 的 桌 面 自 动 化 Composer 拓展。PHP Windows desktop automatic Composer development.
php-windows-robot
PHP Windows的桌面自动化
composer
composer require kingbes/phprobot
要求
php >=8.1.0
拓展 FFI
系统 Windows
文档
鼠标
use KingBes\PhpRobot\Mouse;
$Mouse = new Mouse();
/**
* 鼠标指针位置 function
*
* @return array
*/
public function mouse_pos(): array
{}
/**
* 鼠标单击 function
*
* @param string $button left right middle
* @return self
*/
public function mouse_click(string $button): self
{}
/**
* 鼠标双击 function
*
* @param string $button left right middle
* @return self
*/
public function mouse_double_click(string $button): self
{}
/**
* 将鼠标(左)拖动到指定位置。 function
*
* @param integer $x
* @param integer $y
* @return self
*/
public function mouse_left_drag(int $x, int $y): self
{}
/**
* 相对于当前位置拖动鼠标(左)。 function
*
* @param integer $offset_x
* @param integer $offset_y
* @return self
*/
public function mouse_drag_rel(int $offset_x, int $offset_y): self
{}
/**
* 移动鼠标到 x y function
*
* @param integer $x
* @param integer $y
* @return self
*/
public function mouse_move_mouse(int $x, int $y): self
{}
/**
* 相对于当前位置移动鼠标。 function
*
* @param integer $offset_x
* @param integer $offset_y
* @return self
*/
public function move_mouse_rel(int $offset_x, int $offset_y): self
{}
/**
* 鼠标平滑移动指定位置 function
*
* @param integer $x
* @param integer $y
* @param integer $duration_ms 毫秒
* @param string $tween 预览补间 参数请看下面 `预览补间` 说明
* @return self
*/
public function move_mouse_smooth(int $x, int $y, int $duration_ms, string $tween): self
{}
/**
* 当前平滑移动鼠标 function
*
* @param integer $offset_x
* @param integer $offset_y
* @param integer $duration_ms 毫秒
* @param string $tween 预览补间 参数请看下面 `预览补间` 说明
* @return self
*/
public function move_mouse_smooth_rel(int $offset_x, int $offset_y, int $duration_ms, string $tween): self
{}
/**
* 鼠标按下 function
*
* @param string $button left right middle
* @return self
*/
public function mouse_down(string $button): self
{}
/**
* 鼠标弹起 function
*
* @param string $button left right middle
* @return self
*/
public function mouse_up(string $button): self
{}
屏幕
use KingBes\PhpRobot\Screen;
$Screen = new Screen();
/**
* 获取屏幕指定位置的颜色rgb function
*
* @param integer $x
* @param integer $y
* @return array
*/
public function pixel_color(int $x, int $y): array
{}
/**
* 获取屏幕大小 function
*
* @return array
*/
public function screen_size(): array
{}
键盘
use KingBes\PhpRobot\Keyboard;
$Keyboard = new Keyboard;
/**
* 是否点击键盘某键 function
*
* @param integer $key 整数键码值
* @return boolean
*/
public function isKeyPressed(int $key): bool
{}
/**
* 点击键盘某键 function
*
* @param integer $key 整数键码值
* @return void
*/
public function onClickKey(int $key): void
{}
/**
* 按下键盘某键 function
*
* @param integer $key
* @return self
*/
public function pressKey(int $key): self
{}
/**
* 弹起键盘某键 function
*
* @param integer $key
* @return self
*/
public function releaseKey(int $key): self
{}
实例一 获取当前鼠标位置
// 引入
use KingBes\PhpRobot\Mouse;
// 实例
$Mouse = new Mouse();
// 获取鼠标当前指针位置
$pos = $Mouse->mouse_pos();
var_dump($pos);
实例一点二 鼠标按下和弹起
// 引入
use KingBes\PhpRobot\Mouse;
sleep(3);// 等待
// 按下 左键
$Mouse->mouse_down("left");
sleep(3);// 等待
// 弹起 左键
$Mouse->mouse_up("left");
实例二 监听键盘A键
use KingBes\PhpRobot\Keyboard;
$Keyboard = new Keyboard;
while (true) {
if ($Keyboard->isKeyPressed(65)) {
echo "点击了键盘A \n";
}
usleep(100); // 减轻负担
}
实例三 按下键盘A键
use KingBes\PhpRobot\Keyboard;
$Keyboard = new Keyboard;
sleep(5); //延迟5秒
$Keyboard->onClickKey(65)
实例三点二 按下和弹起键盘某键
use KingBes\PhpRobot\Keyboard;
$Keyboard = new Keyboard;
sleep(3);// 等待
// 按下
$Keyboard->pressKey(65);
sleep(3);// 等待
// 弹起
$Keyboard->releaseKey(65);
预览补间 可用的鼠标补间
你可以在这里预览补间: https://easings.net/
linearease_in_quadease_out_quadease_in_out_quadease_in_cubicease_out_cubicease_in_out_cubicease_in_quartease_out_quartease_in_out_quartease_in_quintease_out_quintease_in_out_quintease_in_sineease_out_sineease_in_out_sineease_in_expoease_out_expoease_in_out_expoease_in_circease_out_circease_in_out_circease_in_elasticease_out_elasticease_in_out_elasticease_in_backease_out_backease_in_out_backease_in_bounceease_out_bounceease_in_out_bounce
键盘的整数键码值
在 Windows 操作系统中,键盘上的一些按键对应着特定的整数键码值(keyCode)。以下是一些常见的 win 键盘按键及其对应的十进制数字:
- 字母和数字键:
a:65b:66c:67d:68e:69f:70g:71h:72i:73j:74k:75l:76m:77n:78o:79p:80q:81r:82s:83t:84u:85v:86w:87x:88y:89z:900:481:492:503:514:525:536:547:558:569:57
- 控制键:
Backspace:8Tab:9Clear:12Enter:13Shift:16Control:17Alt:18Caps Lock:20Esc:27Spacebar:32Page Up:33Page Down:34End:35Home:36Left Arrow:37Up Arrow:38Right Arrow:39Down Arrow:40Insert:45Delete:46Num Lock:144
- 数字键盘上的键:
0:961:972:983:994:1005:1016:1027:1038:1049:105*:106+:107Enter:108-:109.:110/:111
- 其他键:
Left Windows 键:91Right Windows 键:92Applications 键(右 Ctrl 左边键,点击相当于点击鼠标右键,会弹出快捷菜单):93