python模拟鼠标点击和键盘输入的操作+视频讲解

实际运用,视频讲解

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

参考文章:PyUserInput操作说明
Pyuserinput 基础操作(鼠标键盘模拟)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章