python模拟鼠标键盘事件

Author Avatar
ssssdl 6月 18, 2018

python模拟鼠标键盘事件

环境

win10+python3.7

0x00 安装需要的库

1.安装pywin32

下载
找到对应版本的下载,是个exe文件双击安装就可以了,可以在python终端里输入import win32com测试安装是否成功

2.安装pyHook

下载
找到对应版本的下载即可,是一个whl文件,直接pip install +文件路径 就可以安装 import pyHook验证是否安装成功,注意大小写

3.安装PyUserInput

直接pip安装即可,也可以到github上下载安装,python3中这个模块包含了pymouse,pykeyboard这两个模块,python2好像要单独安装这两个模块

0x01 PyUserInput使用

直接来一段代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

#导入模块
import pymouse,pykeyboard,os,sys
from pymouse import *
from pykeyboard import PyKeyboard

#分别实例化
m = PyMouse()
k = PyKeyboard()

#PyMouse 鼠标操作
x,y = m.position() #position()获取鼠标当前位置
print (x,y)
m.move(100,200) #移动鼠标到坐标100,200,以屏幕左上角为0点
m.click(50,50,1,2) #左键点击50,50处两次 参数:前两个坐标,第三个1代表左键2代表右键3是中键,第四个代表点击次数 ,后两个参数可以不写,默认左键一次
x,y = m.screen_size() #获取屏幕大小
print (x,y)
#关于鼠标点击事件还有下面两种
m.press(50,50) #鼠标点击后不松开
m.release(50,50) #松开鼠标 但是 不能实现拖动 猜想:要配合多线程,一边按着press,一边移动move

#PyKeyboard 键盘
k.tap_key('A',n=2,interval=5) #模拟点击A键,n代表次数(可选),interval代表间隔时间(可选)
k.tap_key(k.function_keys[5]) #点击功能键F5
k.tap_key(k.numpad_keys[5],3) #点击小键盘5,3次
k.press_key('\n') #模拟键盘按回车键
k.release_key('\n') #模拟键盘松开回车键
k.type_string('Hello,world') #光速输入Hello,world
#同时按下两个键,实现,应该也可以多线程吧
k.press_key(k.alt_key) #按住alt键
k.tap_key(k.tab_key) #点击tab键
k.release_key(k.alt_key) #松开alt键

另附随手写的一段玩踩白块的代码 端午节蛇皮操做系列

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

#游戏链接http://www.4399.com/flash/154247_3.htm
#屏幕分辨率1920*1080
#谷歌全屏打开网页 放缩100
import pymouse,pykeyboard,os,sys
from pymouse import *
from ctypes import *

gdi32 = windll.gdi32
user32 = windll.user32
m = PyMouse()
hdc = user32.GetDC(None)
for i in range(0,60):#点击次数可以在这里调节
a = gdi32.GetPixel(hdc,700,479)
if hex(a) == '0x10101':
m.click(700,527)
b = gdi32.GetPixel(hdc,790,479)
if hex(b) == '0x10101':
m.click(790,479)
c = gdi32.GetPixel(hdc,852,479)
if hex(c) == '0x10101':
m.click(852,536)
d = gdi32.GetPixel(hdc,934,479)
if hex(d) == '0x10101':
m.click(934,525)