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 基礎操作(鼠標鍵盤模擬)

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