实际运用,视频讲解
python和C++实现模拟键鼠操作实测说明【300英雄】
视频传送门:点我
环境搭建
python版本:python-2.7.16
安装 pyUserInput(ps:python3.7我试了后装不上)
pip install PyUserInput
速度很慢,需要耐心等待
再装个 pip install pymouse
有说法是需要安装PyHook,不过2.7没装也能用(自测)
ps:安装pywin32,若 pip install pywin32
不行
可去 github项目,pywin32
鼠标操作:
m.click(x,y,button,n) 鼠标点击
x,y 是座标位置
button 1表示左键,2表示点击右键
n 点击次数,默认是1次,2表示双击
m.move(x,y) –鼠标移动到座标(x,y)
x_dim, y_dim = m.screen_size() –获得屏幕尺寸
键盘操作:
k.type_string('Hello, World!') –模拟键盘输入字符串
k.press_key('H') –模拟键盘按H键
k.release_key('H') –模拟键盘松开H键
k.tap_key('H') –模拟点击H键
k.tap_key('H',n=2,interval=5) –模拟点击H键,2次,每次间隔5秒
k.tap_key(k.function_keys[5]) –点击功能键F5
k.tap_key(k.numpad_keys[5],3) –点击小键盘5,3次
联合按键模拟
例如同时按alt+tab键盘
k.press_key(k.alt_key) –按住alt键
k.tap_key(k.tab_key) –点击tab键
k.release_key(k.alt_key) –松开alt键
1.PyMouse的基本方法
1)drag(self, x, y)
把鼠标移动到x,y座标处,是一个拖拽动作,不只是移动
2) move(self, x, y)
把鼠标移动到x,y
3)position(self)
得到鼠标的当前位置,并返回座标x,y
4)press(self, x, y, button=1)
鼠标按下不松开x,y的座标点,button表示左右键
5)release(self, x, y, button=1)
松开指定位置的鼠标
6)scroll(self, vertical=None, horizontal=None, depth=None)
生成最多三个维度的鼠标滚动事件:垂直、水平和深度(仅限于Mac)。这些参数的值可以是正数或负数(浮点数或整数)。请参阅以下内容:
Vertical: + Up, - Down
Horizontal: + Right, - Left
Depth: + Rise (out of display), - Dive (towards display)
滚动鼠标的滚轮,在三个方向上移动
7)click(self, x, y, button=1, n=1)
在给定的x,y上单击鼠标按钮n次。button定义为1=左,2=右,3=中间。
2.PyKeyboard的基本方法
1)press_key(self, character='')
按给定的字符键。
2)release_key(self, character='')
释放给定的字符键。
3) press_keys(self, characters=[])
按给定的字符键。
4)tap_key(self, character='', n=1, interval=0)
按下并释放给定的字符键n次。
#点击功能键F5
pyk.tap_key(pyk.function_keys[5])
#点击小键盘5,6次
pyk.tap_key(pyk.numpad_keys[5],6)
#点击回车键
pyk.tap_key(k.enter_key)
#联合按键模拟
#同时按alt+tab键盘
pyk.press_key(pyk.alt_key)#按住alt键
pyk.tap_key(pyk.tab_key)#点击tab键
pyk.release_key(pyk.alt_key)#松开alt键
5)type_string(self, char_string, interval=0)
一种用于键入较长字符串的方便方法。生成尽可能少的移位事件。
简单的程序进行测试
需要管理员权限启动!!!
1、获取鼠标当前位置,并打印座标x,y
import time
from pymouse import PyMouse
from pykeyboard import PyKeyboard
m = PyMouse()
k = PyKeyboard()
time.sleep(5)
while True:
x,y = m.position()
print "x:",x,",y:",y
time.sleep(3)
2、前后走动,一定时间后按下某键
#coding=utf-8
#适合窗口化游戏1280*800
import time
from pymouse import PyMouse
from pykeyboard import PyKeyboard
m = PyMouse()
k = PyKeyboard()
#睡眠5s,给你准备时间
time.sleep(5)
#锁定视角
#k.tap_key("y")
#time.sleep(0.5)
#判断是否放R
flag = 0
#循环
while True:
#右击这个座标
m.click(1138,371,2,1)
time.sleep(4)
#右击这个座标
m.click(820,631,2,1)
time.sleep(4)
if flag > 13:
k.tap_key('w')
time.sleep(5)
k.tap_key('d')
time.sleep(0.5)
k.tap_key('r')
time.sleep(3)
k.tap_key('w')
time.sleep(2.5)
flag = 0
flag = flag + 1