Python利用PyAutoGUI模塊實(shí)現(xiàn)控制鼠標(biāo)鍵盤(pán)
前言
PyAutoGUI是一個(gè)簡(jiǎn)單易用,跨平臺(tái)的可以模擬鍵盤(pán)鼠標(biāo)進(jìn)行自動(dòng)操作的python庫(kù)。
使用pip的方式安裝pyautogui模塊
pip install pyautogui
pyautogui在使用的時(shí)候有兩個(gè)比較關(guān)鍵的隱患(程序在啟動(dòng)起來(lái)以后很難關(guān)閉)需要注意一下。一是鼠標(biāo)出現(xiàn)在屏幕的最上方會(huì)出現(xiàn)報(bào)錯(cuò),二是鍵盤(pán)的自動(dòng)操作太快,所以需要先設(shè)置一下相關(guān)的參數(shù)。
import pyautogui as ui # 導(dǎo)入pyautogui代碼塊 ui.FAILSAFE = False # 關(guān)閉自動(dòng)防御故障的功能 ui.PAUSE = 1 # 設(shè)置鍵盤(pán)操作的時(shí)候停頓間隔時(shí)間為1秒
1、鼠標(biāo)的相關(guān)控制
'''獲取屏幕分辨率''' print(ui.size()) # Size(width=1920, height=1080) # 屏幕分標(biāo)率:寬:1920px、高:1080px '''移動(dòng)鼠標(biāo)到指定位置''' ui.moveTo(250, 400, duration=1) # duration 參數(shù)設(shè)置移動(dòng)到指定位置的時(shí)間為1秒鐘 '''按方向移動(dòng)鼠標(biāo)''' ui.moveRel(200, 300, duration=2) # 鼠標(biāo)向右移動(dòng)200px、向下移動(dòng)300px,移動(dòng)時(shí)間為2秒鐘 '''獲取當(dāng)前鼠標(biāo)的位置''' print(ui.position()) # Point(x=450, y=700) '''單擊鼠標(biāo)''' ui.click(200, 200, button='left') # 在屏幕200px,200px的位置點(diǎn)擊鼠標(biāo)左鍵 ui.click(200, 200, button='right') # 在屏幕200px,200px的位置點(diǎn)擊鼠標(biāo)右鍵 ui.click(200, 200, button='middle') # 在屏幕200px,200px的位置點(diǎn)擊鼠標(biāo)中鍵 '''雙擊鼠標(biāo)''' ui.doubleClick(200, 200) # 在屏幕200px,200px的位置雙擊鼠標(biāo)左鍵 ui.rightClick(200, 200) # 在屏幕200px,200px的位置雙擊鼠標(biāo)右鍵 ui.middleClick(200, 200) # 在屏幕200px,200px的位置雙擊鼠標(biāo)中鍵 '''按下與釋放鼠標(biāo)''' ui.mouseDown() # 按下鼠標(biāo) ui.mouseUp() # 釋放鼠標(biāo) '''拖動(dòng)鼠標(biāo)''' ui.dragTo(200, 300, duration=1) # 拖動(dòng)鼠標(biāo)到指定位置 ui.dragRel(200, 300, duration=4) # 按方向拖動(dòng)鼠標(biāo) '''滾動(dòng)鼠標(biāo)''' ui.scroll(450) # 向上滾動(dòng)450個(gè)像素單位
2、鍵盤(pán)的相關(guān)控制
'''
pyautogui.keyDown() : 模擬按鍵按下;
pyautogui.keyUp() : 模擬按鍵釋放;
pyautogui.press() : # 就是調(diào)用keyDown() & keyUp(),模擬一次按鍵;
pyautogui.typewrite('this',0.5) : 第一參數(shù)是輸入內(nèi)容,第二個(gè)參數(shù)是每個(gè)字符間的間隔時(shí)間;
pyautogui.typewrite(['T','h','i','s']):typewrite 還可以傳入單字母的列表;
'''
ui.keyDown('ctrl') # 按下ctrl鍵
ui.press('Y') # 按一下Y鍵
ui.keyUp('ctrl') # 釋放ctrl鍵
ui.typewrite('YYDS', 0.5) # 輸入YYDS的字符串,每個(gè)字符之間的時(shí)間間隔是0.5秒
'''一些特定鍵的使用'''
# 可以使用typewrite函數(shù)調(diào)用類(lèi)似于enter的特殊按鍵
ui.typewrite(['enter']) # 模擬按一次enter鍵
'''
鍵盤(pán)字符串 說(shuō)明
enter(或return 或 \n) 回車(chē)
esc ESC鍵
shiftleft, shiftright 左右SHIFT鍵
altleft, altright 左右ALT鍵
ctrlleft, ctrlright 左右CTRL鍵
tab (\t) TAB鍵
backspace, delete BACKSPACE 、DELETE鍵
pageup, pagedown PAGE UP 和 PAGE DOWN鍵
home, end HOME 和 END鍵
up, down, left,right 箭頭鍵
f1, f2, f3…. f12 F1…….F12鍵
volumemute, volumedown,volumeup 聲音變大變小靜音(有些鍵盤(pán)沒(méi)有)
pause PAUSE鍵,暫停鍵
capslock CAPS LOCK 鍵
numlock NUM LOCK 鍵
scrolllock SCROLLLOCK 鍵
insert INSERT鍵
printscreen PRINT SCREEN鍵
winleft, winright Win鍵(windows )
command command鍵(Mac OS X )
option option(Mac OS X)
'''
可以根據(jù)上面的按鍵處理列表對(duì)應(yīng)的字符串來(lái)使用typewrite函數(shù)處理特殊按鍵。
ui.typewrite(['esc']) # 模擬按一下esc鍵
'''快捷鍵的模擬處理'''
# 程序猿神器:CV大法
ui.hotkey('ctrl','c') # ctrl + c
ui.hotkey('ctrl','v') # ctrl + v
也可以使用傳統(tǒng)的方式挨個(gè)按鍵,最后就組合成了的快捷鍵
# 模擬代碼格式化快捷鍵ctrl + alt +l
ui.keyDown('ctrl')
ui.keyDown('alt')
ui.keyDown('l')
# 挨個(gè)釋放這幾個(gè)鍵
ui.keyUp('l')
ui.keyUp('alt')
ui.keyUp('ctrl')
到此這篇關(guān)于Python利用PyAutoGUI模塊實(shí)現(xiàn)控制鼠標(biāo)鍵盤(pán)的文章就介紹到這了,更多相關(guān)Python PyAutoGUI控制鼠標(biāo)鍵盤(pán)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python pyautogui模擬鍵盤(pán)輸入操作的示例詳解
- python pyautogui手動(dòng)活動(dòng)(模擬鼠標(biāo)鍵盤(pán))自動(dòng)化庫(kù)使用
- python?PyAutoGUI實(shí)現(xiàn)自動(dòng)化鼠標(biāo)鍵盤(pán)等常用操作
- Python PyAutoGUI實(shí)現(xiàn)自動(dòng)化任務(wù)應(yīng)用場(chǎng)景示例
- python實(shí)現(xiàn)模擬鍵盤(pán)鼠標(biāo)重復(fù)性操作Pyautogui
- python自動(dòng)化神器pyautogui使用步驟
- Python利用PyAutoGUI模擬鼠標(biāo)鍵盤(pán)的原理解析和踩坑指南
相關(guān)文章
Python 3.8新特征之a(chǎn)syncio REPL
我最近都在寫(xiě)一些Python 3.8的新功能介紹的文章,在自己的項(xiàng)目中也在提前體驗(yàn)新的Python版本。這篇文章主要介紹了Python 3.8新特征之a(chǎn)syncio REPL,需要的朋友可以參考下2019-05-05
python繪制已知點(diǎn)的坐標(biāo)的直線(xiàn)實(shí)例
今天小編就為大家分享一篇python繪制已知點(diǎn)的坐標(biāo)的直線(xiàn)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07
在 Python 中解析 ISO 8601 日期的詳細(xì)過(guò)程
這篇文章主要介紹了在 Python 中解析 ISO 8601 日期,我們將討論典型的 ISO 8601 日期的結(jié)構(gòu),并向您展示如何將典型的 DateTime 對(duì)象解析為可以在所有地方使用的標(biāo)準(zhǔn)化 DateTime,需要的朋友可以參考下2023-08-08
解決pycharm運(yùn)行出錯(cuò),代碼正確結(jié)果不顯示的問(wèn)題
今天小編就為大家分享一篇解決pycharm運(yùn)行出錯(cuò),代碼正確結(jié)果不顯示的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11
Python中內(nèi)置的數(shù)據(jù)結(jié)構(gòu)類(lèi)型詳解(內(nèi)置數(shù)據(jù)容器)
在?Python?中,字典(dict)是一種非常常用的數(shù)據(jù)結(jié)構(gòu),用于存儲(chǔ)鍵值對(duì),這篇文章給大家介紹Python中內(nèi)置的數(shù)據(jù)結(jié)構(gòu)類(lèi)型詳解(內(nèi)置數(shù)據(jù)容器),感興趣的朋友一起看看吧2025-04-04
python隨機(jī)生成指定長(zhǎng)度密碼的方法
這篇文章主要介紹了python隨機(jī)生成指定長(zhǎng)度密碼的方法,涉及Python操作字符串的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04

