python在程序中模拟键盘鼠标操作
? Python中模擬鍵盤和鼠標最著名的模塊是:pymouse?和?pykeyboard。一次安裝兩個模塊比較麻煩,而有一個庫整合了這兩個模塊,而且能支持跨平臺操作,這個庫叫?PyUserInput,通過安裝 PyUserInput 就可以直接得到?pymouse?和?pykeyboard。還有一個自動化模塊是pyautogui。
1.準備
PyUserInput 在不同系統下的安裝需要使用不同的依賴:
- Linux - Xlib (python-xlib)
- Mac - Quartz, AppKit
- Windows - pywin32, pyHook
在終端輸入以下命令安裝我們所需要的依賴模塊:
pip install PyUserInput看到 Successfully installed xxx 則說明安裝成功。
?
Windows系統下如果出現如以下的紅色字體提示則需要安裝pyHook:
No matching distribution found for pyHook (from PyUserInput)
1.安裝pyHook需要前往
https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyhook
找到你的Python版本對應的pyHook安裝包。
2.輸入一下命令安裝該whl文件:
pip install pyHook-1.5.1-cp37-cp37m-win_amd64.whl注意需要在下載好的文件所在目錄輸入命令。
3.出現Successfully installed pyHook-1.5.1則說明安裝成功。
如果出現缺少pywin32依賴,或者pywin32無法正常使用,請前往:
https://github.com/mhammond/pywin32/releases
下載對應版本的pywin32安裝包,這里的安裝包是exe程序,直接雙擊安裝即可。
安裝pywin32的時候如果出現這樣的錯誤(借他人圖):
是因為你的Python沒有被寫入到注冊表,需要將注冊表寫入Python,執行下方代碼就可成功注冊:
import sys from winreg import *# tweak as necessary version = sys.version[:3] installpath = sys.prefixregpath = "SOFTWARE\\Python\\Pythoncore\\%s\\" % (version) installkey = "InstallPath" pythonkey = "PythonPath" pythonpath = "%s;%s\\Lib\\;%s\\DLLs\\" % (installpath, installpath, installpath)def RegisterPy():try:reg = OpenKey(HKEY_CURRENT_USER, regpath)except EnvironmentError as e:try:reg = CreateKey(HKEY_CURRENT_USER, regpath)SetValue(reg, installkey, REG_SZ, installpath)SetValue(reg, pythonkey, REG_SZ, pythonpath)CloseKey(reg)except:print("*** Unable to register!")returnprint("--- Python", version, "is now registered!")returnif (QueryValue(reg, installkey) == installpathand QueryValue(reg, pythonkey) == pythonpath):CloseKey(reg)print("=== Python", version, "is already registered!")returnCloseKey(reg)print("*** Unable to register!")print("*** You probably have another Python installation!")if __name__ == "__main__":RegisterPy()注冊完畢后就可以正常安裝pywin32了,然后再重新安裝 PyUserInput 即可。macOS和Linux在安裝的時候應該不會遇到太大問題,如果有遇到問題可以先搜索一下,網上解決方案都很全,或者在本文下方留言求解。
2.基本使用
pymouse模塊相對簡單,你只需要記以下幾個函數即可滿足基本的使用需求,如
1.鼠標移動:
from pymouse import PyMouse# 初始化鼠標對象 m = PyMouse()# 移動鼠標到(x, y)絕對地址 m.move(200, 200)2.中鍵滾動:
from pymouse import PyMouse# 初始化鼠標對象 m = PyMouse()# 中鍵垂直滾動 10個單位 m.scroll(10, 0)3.鼠標點擊:
from pymouse import PyMouse# 初始化鼠標對象 m = PyMouse()# 鼠標點擊(500, 300), 第三個參數代表鍵位,1是左鍵,2是右鍵,3是中鍵 m.click(500, 300, 1)4.鼠標拖拽:
from pymouse import PyMouse# 初始化鼠標對象 m = PyMouse()# 鼠標從當前位置拖拽到(500, 300) m.drag(500, 300)5. 獲得當前屏幕大小:
from pymouse import PyMouse# 初始化鼠標對象 m = PyMouse()# 當前屏幕大小 m.screen_size()6. 獲得鼠標當前位置:
from pymouse import PyMouse# 初始化鼠標對象 m = PyMouse()# 當前位置 m.position()只要記住以上幾個方法,pymouse模塊你就掌握了。
接下來是比較復雜的pykeyboard模塊:
1. 鍵入字符串:
from pykeyboard import PyKeyboard# 初始化鍵盤對象 k = PyKeyboard()# 鍵入Hello, World! k.type_string('Hello, World!')2. 按下按鍵與釋放按鍵:
from pykeyboard import PyKeyboard# 初始化鍵盤對象 k = PyKeyboard()# 按下H鍵 k.press_key('H')# 釋放H鍵 k.release_key('H')# 你也可以使用tap_key函數直接實現按下和釋放 k.tap_key('H')# 支持自定義按下次數和其間隔時間,單位:秒 k.tap_key('l',n=2,interval=5)3. 特殊按鍵的輸入:
from pykeyboard import PyKeyboard# 初始化鍵盤對象 k = PyKeyboard()# 按住alt鍵 k.press_key(k.alt_key) # tab鍵 k.tap_key(k.tab_key) # 釋放alt鍵 k.release_key(k.alt_key)# F5鍵 k.tap_key(k.function_keys[5]) # Home鍵 k.tap_key(k.numpad_keys['Home']) # 按數字5三次 k.tap_key(k.numpad_keys[5], n=3)?
模塊的一些應用:
看鼠標軟件可以查看當前屏幕的坐標,軟件下載:
https://pythondict.com/go/?url=http://www.cadgj.com/wp-content/uploads/2013/07/mousexy.exe
總結
以上是生活随笔為你收集整理的python在程序中模拟键盘鼠标操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用AzureFunction开发最简单
- 下一篇: python-opencv控制鼠标操作