今天玩點啥:利用python之PyUserInput實現模擬滑鼠鍵盤操作,搶紅包?聊天?自動下載?
一、PyUserInput安裝
python3。5的PyMouse和PyKeyboard模組都整合到了PyUserInput模組中。在python3。5中,直接安裝PyUserInput模組即可
PyUserInput模組安裝前需要安裝pywin32和pyHook模組
pywin32模組預設已安裝
pyHook模組可從這裡下載
http://www。
lfd。uci。edu/~gohlke/pyt
honlibs/
//在python官網找了很多個pyHook都不適用於python3。5版本
PyUserInput模組
https://
github。com/PyUserInput/
PyUserInput
二、使用方法
//匯入模組
import pymouse,pykeyboard,os,sys
from pymouse import PyKeyboard
from pykeyboard import PyKeyboard
//分別定義一個例項
m = PyMouse()
k = PyKeyboard()
滑鼠操作:
m。click(x,y,button,n) #滑鼠點選
x,y 是座標位置
buttong 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]) #點選windows的功能鍵F5
k。tap_key(k。numpad_keys[5],3) #點選windows的小鍵盤5,3次
#聯合按鍵模擬
#例如同時按alt+tab鍵盤
k。press_key(k。alt_key) #按住windows的alt鍵
k。tap_key(k。tab_key) #點選windows的tab鍵
k。release_key(k。alt_key) #鬆開windows的alt鍵
上面是windows鍵的基本操作方法,macos與之類似,區別在於macos的特殊功能鍵對應的鍵位名稱不同,具體請參照下方原始碼
下面macos系統為例寫一個完整的demo:
import os
from pykeyboard import PyKeyboard#鍵盤輸入元件
from pymouse import PyMouse#滑鼠輸入元件
import time
import random
import pyperclip #系統剪下板元件
def someHello(num):
list = [‘a’, ‘b’,‘c’, ‘d’,‘e’, ‘f’, ‘g’, ‘h’,‘i’, ‘j’,‘k’,‘l’,‘m’,‘n’,‘o’,‘p’,‘q’,‘r’,‘s’,‘t’,‘u’,‘v’,‘w’,‘x’,‘y’,‘z’]
slice = random。sample(list, num) # 從list中隨機獲取5個元素,作為一個片斷返回
return slice
def someString():
re=[‘知道啦’,‘好的’,‘呵呵。。。。。你是魔鬼嗎’,‘恩恩,你說的都對’,‘可愛的人說話之前會先發個紅包’,‘聽說紅包會讓你喜歡的人回覆你的機率增加99%啊’,‘噓,小聲說話,你吵到我了’]
rp=[‘回覆‘段子’讓我開始給你講段子吧’,‘要不回覆‘新聞’看看今天這個世界又發生了些啥吧’,‘想獲取天氣預報?請回復”天氣+城市“,例如”廣州天氣“即可’,‘不知道今天晚飯吃什麼,回覆‘菜譜’讓我告訴你吧’,]
return (re[random。randint(0,len(re)-1)]+‘,’+rp[random。randint(0,len(rp)-1)])
def run(interval, num):
while True:
try:
m = PyMouse()
time。sleep(interval)
print(‘滑鼠當前位置為’+str(m。position()))
# x=2046。79296875
# y=758。3203125
# m。position()#獲取當前座標的位置
# m。move(x,y)#滑鼠移動到xy位置
# #m。click(x,y)#移動並且在xy位置點選
# m。click(x,y,1|1)#移動並且在xy位置點選,左鍵雙擊
# time。sleep(2)
# x=2080。76953125
# y=276。87890625
# m。position()#獲取當前座標的位置
# m。move(x,y)#滑鼠移動到xy位置
# #m。click(x,y)#移動並且在xy位置點選
# m。click(x,y,1|2)#移動並且在xy位置點選,左鍵雙擊
# time。sleep(2)
x=2045。671875
y=825。984375
m。position()#獲取當前座標的位置
m。move(x,y)#滑鼠移動到xy位置
m。click(x,y)#移動並且在xy位置點選
k = PyKeyboard()
hello=someHello(num)
print(num)
k。type_string(hello) #模擬鍵盤輸入字串
k。tap_key(‘Space’) #模擬點選Space鍵
strs=someString()
pyperclip。copy(strs)
spam = pyperclip。paste()
print(spam)
k。press_key(‘Command’) #模擬長按Command鍵
k。tap_key(‘V’) #模擬點選v鍵
k。release_key(‘Command’) #模擬釋放Command鍵
k。tap_key(‘Return’) #模擬點選Return鍵
except Exception as e:
print (e)
if __name__==“__main__”:
interval =3
run(interval, 10)
上一篇:李東的疑惑