Python-模擬滑鼠鍵盤動作
引
在使用電腦的時候,偶爾有需求要模擬滑鼠鍵盤,進行一些機械重複的操作(重新整理網頁、搶票、某些小遊戲等)。如果為此專門下載一個按鍵精靈,總感覺殺雞用牛刀,所以就開始探索一些輕量級解決方案。本人電腦上配置了Python,自然就想到那句名言
人生苦短,我用Python
Life is short, you need Python -Bruce Eckel
方案
參考網上的各種例子後,發現了這個專案。在配置完成後,呼叫非常簡便。
準備
進入專案主頁,可以看到這個Python庫是跨平臺支援的,但是對應不同平臺,需要安裝依賴庫。
Linux - Xlib (python-xlib)
Mac - Quartz, AppKit
Windows - pywin32, pyHook
安裝
使用pip工具,直接安裝
pip install PyUserInput
呼叫方法
以下部分參考PyUserInput專案在Python官網的只做簡要翻譯,方便理解。詳細方法可以呼叫help()函式檢視。
在安裝完PyUserInput後,pymouse和pykeyboard模組就被安裝到你的Python路徑下。
建立一個滑鼠和鍵盤物件:
from pymouse import PyMousefrom pykeyboard import PyKeyboard m = PyMouse() k = PyKeyboard()
接下來是一個示例,完成點選螢幕中央並鍵入“Hello, World!”的功能:
x_dim, y_dim = m.screen_size() m.click(x_dim/2, y_dim/2, 1) k.type_string('Hello, World!')
PyKeyboard還有很多種方式來傳送鍵盤鍵入:
# pressing a keyk.press_key('H')# which you then follow with a release of the keyk.release_key('H')# or you can 'tap' a key which does bothk.tap_key('e')# note that that tap_key does support a way of repeating keystrokes with a interval time between eachk.tap_key('l',n=2,interval=5) # and you can send a string if needed took.type_string('o World!')
並且它還支援很多特殊按鍵:
#Create an Alt+Tab combok.press_key(k.alt_key) k.tap_key(k.tab_key) k.release_key(k.alt_key) k.tap_key(k.function_keys[5]) # Tap F5k.tap_key(k.numpad_keys['Home']) # Tap 'Home' on the numpadk.tap_key(k.numpad_keys[5], n=3) # Tap 5 on the numpad, thrice
注意,你也可以使用press_keys方法將多個鍵一起傳送(例如,使用某些組合鍵):
# Mac examplek.press_keys(['Command','shift','3'])# Windows examplek.press_keys([k.windows_l_key,'d'])
平臺之間的一致性是一個很大的挑戰,請參考你使用的作業系統對應的原始碼,來理解你需要使用的按鍵格式。例如:
# Windowsk.tap_key(k.alt_key)# Mack.tap_key('Alternate')
我還想特別說明一下PyMouseEvent和PyKeyboardEvent的使用。
這些物件是一個架構用於監聽滑鼠和鍵盤的輸入;他們除了監聽之外不會做任何事,除非你繼承他們【注1】。PyKeyboardEvent為編寫完成,所以這裡是一個繼承PyMouseEvent的例子:
from pymouse import PyMouseEventdef fibo(): a = 0 yield a b = 1 yield b while True: a, b = b, a+b yield b class Clickonacci(PyMouseEvent): def __init__(self): PyMouseEvent.__init__(self) self.fibo = fibo() def click(self, x, y, button, press): '''Print Fibonacci numbers when the left click is pressed.''' if button == 1: if press: print self.fibo.next() else: # Exit if any other mouse button used self.stop() C = Clickonacci() C.run()
注1:原文為
These objects are a framework for listening for mouse and keyboard input; theydon't do anything besides listen until you subclass them.
作者:屋頂之樹
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4606/viewspace-2810987/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- c++ 鍵盤/滑鼠互動C++
- 12.2 實現鍵盤模擬按鍵
- 滑鼠、鍵盤事件事件
- Python-模擬登入Python
- Tickeys for Mac鍵盤音效模擬工具Mac
- SSK:超級鍵盤模擬器,呼叫底層,可模擬所有按鍵
- 電腦鍵盤怎麼代替滑鼠 win10鍵盤代替滑鼠Win10
- Mac鍵盤音效模擬工具——Tickeys for MacMac
- 鍵盤控制滑鼠 windows QtWindowsQT
- blender 模擬三鍵滑鼠 alt+滑鼠左鍵 代替 中鍵 旋轉檢視,shift+alt+左鍵 平移檢視
- 鍵盤滑鼠共享效率工具-Synergy
- 鍵盤滑鼠一起失靈怎麼辦 win10滑鼠鍵盤同時失靈鍵盤滑鼠一起失靈怎麼辦 win10滑鼠鍵盤同時失靈Win10
- 鍵盤滑鼠一起失靈怎麼辦 win10滑鼠鍵盤同時失靈鍵盤滑鼠一起失靈怎麼辦Win10
- 鍵盤控制游標移動作業
- 關於 Linux 中模擬滑鼠Linux
- WinIO:一個底層的鍵盤事件模擬工具事件
- tickeys 1.1.0 中文版 (鍵盤打字音效模擬)
- tkinter中滑鼠與鍵盤事件(十五)事件
- 有趣的Python:Python控制鍵盤滑鼠Python
- Mac 鍵盤與滑鼠的對映Mac
- win10滑鼠鍵盤沒反應怎麼辦_win10滑鼠鍵盤失靈一鍵修復Win10
- tickeys 1.0.0 中文版 (鍵盤打字音效模擬工具)
- Python win32api.keybd_event模擬鍵盤輸入PythonWin32API
- 【XInput】手柄模擬滑鼠運作之 .NET P/Invoke 和 UWP-API 方案XInputAPI
- 12.1 使用鍵盤滑鼠監控鉤子
- 眾多Logitech滑鼠/鍵盤支援改進Git
- 滑鼠和鍵盤同時失靈應該怎麼辦 win10滑鼠鍵盤突然同時失靈Win10
- 2.3用按鍵精靈錄製鍵盤與滑鼠操作
- 12.3 實現模擬滑鼠錄製回放
- Python-模組Python
- JavaScript滑鼠中鍵滾動事件JavaScript事件
- Mac監控鍵盤輸入並執行動作Mac
- Xcode - 升級後模擬器無法響應電腦鍵盤XCode
- 受夠了移動端的數字輸入,我用vue寫了個模擬鍵盤Vue
- mac mini純鍵盤操作連線藍芽滑鼠Mac藍芽
- 微軟XboxOne遊戲將支援鍵盤滑鼠操控微軟遊戲
- 多功能滑鼠鍵盤共享:ShareMouse 啟用下載最新REM
- 跨平臺滑鼠和鍵盤共享軟體:ShareMouse for macREMMac