(相關(guān)資料圖)
鼠標(biāo)指針代碼 實(shí)現(xiàn)鼠標(biāo)鍵盤自動(dòng)化
本文演示了如何使用 Python 的pyautogui模塊實(shí)現(xiàn)鼠標(biāo)的自動(dòng)移動(dòng)以及鍵盤的自行輸入. 該模塊不是 Python 自帶的, 因此執(zhí)行以下命令進(jìn)行安裝:
Python 通過屏幕的坐標(biāo)系統(tǒng)對(duì)鼠標(biāo)指針進(jìn)行追蹤與控制. 假設(shè)你的屏幕分辨率為 1920X1080, 那么屏幕的坐標(biāo)系統(tǒng)看起來是這樣的:
size
將本文件保存為 .py 文件, 然后運(yùn)行.
這段 Python 代碼調(diào)用了size函數(shù), 以 (x, y) 的格式輸出屏幕分辨率:
moveTo
這段代碼調(diào)用了moveTo函數(shù), 其接受 x, y 坐標(biāo)作為參數(shù), 還有一個(gè)可選的持續(xù)時(shí)間參數(shù). 該函數(shù)將鼠標(biāo)指針從當(dāng)前位置移動(dòng)到 (x, y) 坐標(biāo)指定的位置, 移動(dòng)花費(fèi)的時(shí)間由持續(xù)時(shí)間參數(shù)指定. 保存并運(yùn)行該 Python 腳本, 你將看到, 鼠標(biāo)指針像被施了魔法一樣, 從當(dāng)前位置花 1 秒鐘時(shí)間移動(dòng)到坐標(biāo)位置 (100, 100).
moveRel
這段代碼將鼠標(biāo)指針從原位置相對(duì)地移動(dòng) (0, 50) 個(gè)像素點(diǎn) (譯注: 即向下移動(dòng) 50 像素). 比如說, 運(yùn)行代碼之前, 鼠標(biāo)指針在 (1000, 1000), 那么代碼運(yùn)行之后, 鼠標(biāo)指針將移動(dòng)到 (1000, 1050), 耗時(shí) 1 秒.
position
輸出: 程序執(zhí)行時(shí)的鼠標(biāo)所在的位置坐標(biāo).
click
這段代碼將在 (100, 100) 的位置模擬鼠標(biāo)點(diǎn)擊.
有兩個(gè)與鼠標(biāo)拖拽操作相關(guān)的函數(shù):dragTo和dragRel. 它們的行為與moveTo和moveRel類似, 區(qū)別在于拖拽操作在移動(dòng)的過程中, 會(huì)保持鼠標(biāo)左鍵被按下.
該功能可用于不同的場(chǎng)景, 比如移動(dòng)對(duì)話框, 或在 Windows 的畫板程序中用鉛筆工具自動(dòng)繪圖. 在畫板程序中畫一個(gè)正方形:
運(yùn)行這段代碼之前, 在后臺(tái)打開 Windows 的畫板程序, 并選擇鉛筆工具. 執(zhí)行代碼, 然后在 10 秒鐘之內(nèi)快速切換到 Windows 畫板程序 (我們調(diào)用sleep函數(shù), 為繪圖預(yù)留了 10 秒鐘時(shí)間).
10 秒鐘之后, 你將看到畫板程序正在自動(dòng)繪制一個(gè)正方形, 其左上角的頂點(diǎn)位于 (1000, 1000), 邊長(zhǎng) 100 個(gè)像素.
scroll
這段代碼會(huì)對(duì)選中的窗口進(jìn)行向上滾屏 200 個(gè)像素點(diǎn).
typewrite
假設(shè)文本區(qū)域位于屏幕 (100, 100) 的坐標(biāo)位置, 那么這段代碼將點(diǎn)擊文本區(qū)域, 激活它, 并鍵入 "hello Geeks!"
傳遞鍵名typywrite
這段代碼等價(jià)于: 鍵入 "a", 然后敲擊左方向鍵, 再敲擊左 ctrl 鍵.
熱鍵組合hotkey
這段代碼等價(jià)于: 按住左 ctrl 鍵的同時(shí)按下字母 a. 因此在窗口中, 這就實(shí)現(xiàn)了全選的功能.
英文原文:http://www.geeksforgeeks.org/mouse-keyboard-automation-using-python/
關(guān)鍵詞:
責(zé)任編輯:Rex_07