Python开发:pywin32模拟键盘和鼠标事件
一、依赖插件安装
github地址:https://github.com/mhammond/pywin32
1、pip安装(主要适用于python3.6版本及以前)
在cmd命令行中执行安装命令:
pip install pywin32
2、PyCharm插件安装
打开PyCharm开发工具,通过菜单里File -> Settings -> Python InterPreter进行pywin32插件的搜索和安装:
3、手动安装(主要适用于python3.7版本及以后)
访问该插件的github地址:
点击most recent release进入pywin32最近的版本列表中,根据自己电脑的情况选择一个版本进行下载(下载的插件版本需与本地python版本一致):
双击打开exe安装文件:
安装路径要注意,应该安装到本地python路径下的\lib\site-packages\文件夹下:
之后一直下一步到安装完成为止。
打开cmd窗口,在python内执行import命令引入pywin32相关包:
能够正常引入不报错,则说明该插件已安装成功。
二、简单应用
1、鼠标操作:
//获取鼠标当前所在位置的横纵坐标 win32api.GetCursorPos()
//设置鼠标当前所在位置(瞬移位置) win32api.SetCursorPos((x, y))
//鼠标在当前所在位置按下左键(只是按下,不松开) win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
//鼠标在当前所在位置抬起左键(松开) win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
//鼠标在当前所在位置按下右键(只是按下,不松开) win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0)
//鼠标在当前所在位置抬起右键(松开) win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0)
2、键盘操作:
//按下键盘的某个键(根据键值) win32api.keybd_event(val, 0, 0, 0)
//松开键盘的某个键(根据键值) win32api.keybd_event(val, 0, win32con.KEYEVENTF_KEYUP, 0)
按键和键值对应表(例:要按下A键,则将按下命令中的val改为A对应键值65即可):
字母键值表:
按键 | 键码 | 按键 | 键码 | 按键 | 键码 |
---|---|---|---|---|---|
A | 65 | J | 74 | S | 83 |
B | 66 | K | 75 | T | 84 |
C | 67 | L | 76 | U | 85 |
D | 68 | M | 77 | V | 86 |
E | 69 | N | 78 | W | 87 |
F | 70 | O | 79 | X | 88 |
G | 71 | P | 80 | Y | 89 |
H | 72 | Q | 81 | Z | 90 |
I | 73 | R | 82 |
字母上方数字键值表:
按键 | 键码 | 按键 | 键值 | 按键 | 键值 |
---|---|---|---|---|---|
0 | 48 | 4 | 52 | 8 | 56 |
1 | 49 | 5 | 53 | 9 | 57 |
2 | 50 | 6 | 54 | ||
3 | 51 | 7 | 55 |
数字键盘键值表 && F快捷键兼键值表:
按键 | 键码 | 按键 | 键码 | 按键 | 键码 | 按键 | 键码 |
---|---|---|---|---|---|---|---|
0 | 96 | 8 | 104 | F1 | 112 | F9 | 120 |
1 | 97 | 9 | 105 | F2 | 113 | F10 | 121 |
2 | 98 | * | 106 | F3 | 114 | F11 | 122 |
3 | 99 | + | 107 | F4 | 115 | F12 | 123 |
4 | 100 | Enter | 108 | F5 | 116 | ||
5 | 101 | - | 109 | F6 | 117 | ||
6 | 102 | . | 110 | F7 | 118 | ||
7 | 103 | / | 111 | F8 | 119 |
其他键值表:
按键 | 键码 | 按键 | 键码 | 按键 | 键码 | 按键 | 键码 |
---|---|---|---|---|---|---|---|
BackSpace | 8 | Esc | 27 | Right Arrow | 39 | -_ | 189 |
Tab | 9 | Spacebar | 32 | Down Arrow | 40 | .> | 190 |
Clear | 12 | Page Up | 33 | Insert | 45 | /? | 191 |
Enter | 13 | Page Down | 34 | Delete | 46 | `~ | 192 |
Shift | 16 | End | 35 | Num Lock | 144 | [{ | 219 |
Control | 17 | Home | 36 | ;: | 186 | / | 220 |
Alt | 18 | Left Arrow | 37 | =+ | 187 | ]} | 221 |
Cape | 20 | Up Arrow | 38 |
注:通过按键的按下和抬起的先后顺序搭配,比如先按下Alt键,不抬起,再按下A键,执行完操作后,再以此抬起,来达到同时按下组合键的效果。
3、搭配使用:
鼠标、键盘事件,与定时、循环等事件可以搭配完善成方法,做成脚本来运行,代替人工完成重复的手动操作。