實際運用,視頻講解
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