用Python實(shí)現(xiàn)控制電腦鼠標(biāo)
一、序言
使用python控制按鍵無(wú)疑非常重要的技能,特別是結(jié)合機(jī)器視覺(jué)更是能發(fā)揮出超強(qiáng)的實(shí)力!
二、配置環(huán)境
1.下載pyautogui包
pip install pyautogui -i https://pypi.tuna.tsinghua.edu.cn/simple/
注:如果有可能,可以在pycharm中進(jìn)行以下Python控制的鼠標(biāo)和鍵盤的測(cè)試與學(xué)習(xí)。
二、鼠標(biāo)控制
注:由于這部分功能我不能通過(guò)截屏來(lái)顯著表現(xiàn)出來(lái),在程序運(yùn)行結(jié)果就不截屏了,保持界面整潔
1、獲取鼠標(biāo)位置函數(shù)以及測(cè)試源碼
#獲取鼠標(biāo)位置 import pyautogui as pg #沒(méi)別的作用就單純換個(gè)名字 try: while True: x,y=pg.position() #核心函數(shù)pg.position() print(str(x)+" "+str(y)) #輸出鼠標(biāo)的x,y except KeyboardInterrupt: print("\n")
程序功能:
實(shí)時(shí)輸出當(dāng)前鼠標(biāo)位置
核心函數(shù):
函數(shù)名 | 功能 |
---|---|
pyautogui .position() | 返回當(dāng)前鼠標(biāo)的x,y坐標(biāo)。 |
核心代碼:
換名:第2行 import pyautogui as pg輸出鼠標(biāo)位置:第5~6行
x,y=pg.position() #核心函數(shù)pg.position()
print(str(x)+" "+str(y)) #輸出鼠標(biāo)的x,y
2、控制鼠標(biāo)左擊/右擊/雙擊函數(shù)以及測(cè)試源碼
# 獲取鼠標(biāo)位置 import pyautogui as pg try: while True: x, y = pg.position() print(str(x) + " " + str(y)) #輸出鼠標(biāo)位置 if 1746 < x < 1800 and 2 < y < 33: pg.click()#左鍵單擊 if 1200 < x < 1270 and 600 < y < 620: pg.click(button='right')#右鍵單擊 if 1646 < x < 1700 and 2 < y < 33: pg.doubleClick()#左鍵雙擊 except KeyboardInterrupt: print("\n")
a.程序功能
在輸出鼠標(biāo)位置的基礎(chǔ),分別設(shè)置了三個(gè)區(qū)域,當(dāng)鼠標(biāo)達(dá)到這三個(gè)區(qū)域時(shí)候,進(jìn)行左鍵單擊、右鍵單擊,左鍵雙擊。
b.核心函數(shù)
函數(shù)名 | 功能 |
---|---|
pyautogui.click() | 鼠標(biāo)左鍵單擊 |
pyautogui.click(button=‘right’) | 鼠標(biāo)右鍵單擊 |
pyautogui.doubleClick() | 鼠標(biāo)左鍵雙擊 |
c.核心代碼
1、觸發(fā)某事件就控制鼠標(biāo)點(diǎn)擊:第9~14行
注:click()函數(shù)默認(rèn):button=‘left’
3、控制鼠標(biāo)移動(dòng)/拖動(dòng)
# 3、控制鼠標(biāo)移動(dòng)/拖動(dòng)demo import pyautogui as pg try: while True: x, y = pg.position() print(str(x) + " " + str(y)) #輸出鼠標(biāo)位置 #實(shí)現(xiàn)鼠標(biāo)絕對(duì)移動(dòng)功能 if 1011 < x < 1357 and 320 < y < 527: pg.moveTo(1750, 20, 2)#花2s從當(dāng)前位置移動(dòng)到(1750,20) pg.click() # 左鍵單擊 #實(shí)現(xiàn)鼠標(biāo)相對(duì)移動(dòng)功能 if 600 < x < 1000 and 305 < y < 425: pg.move(0, 200) # 基于當(dāng)前位置瞬間向下移動(dòng)200像素 #實(shí)現(xiàn)鼠標(biāo)拖動(dòng)功能 if 1142<x<1391 and y<25: pg.dragTo(300, 400, 2, button='left') #花2s從當(dāng)前位置拖到(300,400) except KeyboardInterrupt: print("\n")
a.程序功能
在輸出鼠標(biāo)位置的基礎(chǔ),分別設(shè)置了三個(gè)區(qū)域,當(dāng)鼠標(biāo)達(dá)到這三個(gè)區(qū)域時(shí)候,分別進(jìn)行絕對(duì)移動(dòng),相對(duì)移動(dòng),鼠標(biāo)拖動(dòng)三個(gè)運(yùn)行演示。
注:在運(yùn)行代碼全,將Pycharm全屏演示效果更好哦
b.核心函數(shù)
函數(shù)名 | 功能 |
---|---|
pyautogui.moveTo() | 鼠標(biāo)絕對(duì)移動(dòng) |
pyautogui.move() | 鼠標(biāo)相對(duì)移動(dòng) |
pyautogui.dragTo() | 鼠標(biāo)絕對(duì)拖動(dòng) |
c.核心代碼
1、觸發(fā)某事件就控制鼠標(biāo)移動(dòng)/拖動(dòng):第9~19行
注:click()函數(shù)默認(rèn):button=‘left’
4、控制鼠標(biāo)滾輪滾動(dòng)
import pyautogui as pg # 執(zhí)行鼠標(biāo)滾輪的滾動(dòng)。垂直滾動(dòng)還是水平滾動(dòng)取決于底層操作系統(tǒng)。 pg.scroll(100) # scroll up 50 "clicks"
注:是的就兩行,如果你是放在上面中使用,應(yīng)該算只要一行就可以實(shí)現(xiàn)了。
總結(jié)
到此這篇關(guān)于用Python實(shí)現(xiàn)控制電腦鼠標(biāo)的文章就介紹到這了,更多相關(guān)Python控制鼠標(biāo)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Django實(shí)現(xiàn)簡(jiǎn)單登錄的示例代碼
本文主要介紹了Django實(shí)現(xiàn)簡(jiǎn)單登錄的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11使用pymysql查詢數(shù)據(jù)庫(kù),把結(jié)果保存為列表并獲取指定元素下標(biāo)實(shí)例
這篇文章主要介紹了使用pymysql查詢數(shù)據(jù)庫(kù),把結(jié)果保存為列表并獲取指定元素下標(biāo)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05Python使用re模塊實(shí)現(xiàn)okenizer(表達(dá)式分詞器)
這篇文章主要介紹了Python使用re模塊實(shí)現(xiàn)okenizer,我們這里講解用正則表達(dá)式構(gòu)建簡(jiǎn)單的表達(dá)式分詞器(tokenizer),它能夠?qū)⒈磉_(dá)式字符串從左到右解析為標(biāo)記(tokens)流,需要的朋友可以參考下2022-04-04Python使用base64模塊進(jìn)行二進(jìn)制數(shù)據(jù)編碼詳解
這篇文章主要介紹了Python使用base64模塊進(jìn)行二進(jìn)制數(shù)據(jù)編碼詳解,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01