python控制鼠标_如何用python实现真实的鼠标移动?
可以嘗試用pyautogui庫(kù)
import pyautogui
pyautogui.moveTo(x, y, duration=1)
其中moveTo方法將鼠標(biāo)移動(dòng)到屏幕上(x, y)坐標(biāo),duration參數(shù)是移動(dòng)的時(shí)間,比如duration=1就是用一秒時(shí)間移動(dòng)到x, y坐標(biāo)
其實(shí)pyautogui也可以實(shí)現(xiàn)其它很多有意思的操作,具體的可以參考官方文檔:Welcome to PyAutoGUI’s documentation!?pyautogui.readthedocs.io
希望可以幫上忙!
更新!關(guān)于如何在定位屏幕上的內(nèi)容:
比如我們要實(shí)現(xiàn)知乎模擬點(diǎn)贊的效果,首先需要將點(diǎn)贊按鈕截圖(只能截不帶數(shù)字的那一半,因?yàn)閿?shù)字會(huì)變),然后保存為bmp格式。
隨后將截圖放在與腳本同目錄下,輸入下面的代碼
import pyautogui
coo = pyautogui.locateCenterOnScreen("agree.bmp")
pyautogui.click(coo[0], coo[1])
其中l(wèi)ocateCenterOnScreen函數(shù)查找傳入圖片在屏幕上的坐標(biāo),并返回圖片的中心坐標(biāo)值。若屏幕上有多個(gè)匹配,這個(gè)函數(shù)只返回第一個(gè)找到的圖片坐標(biāo),如果沒(méi)有找到,返回None。所以為了穩(wěn)妥,還應(yīng)該加上if語(yǔ)句判斷一下。隨后利用坐標(biāo)就可以實(shí)現(xiàn)點(diǎn)擊了。
當(dāng)然如果需要找到屏幕上所有的目標(biāo),可以使用locateAllOnScreen函數(shù)。
import pyautogui
coos = pyautogui.locateAllOnScreen("agree.bmp")
for i in coos:
print(i)
返回值:
(242, 398, 77, 34)
(242, 839, 77, 34)
返回值前兩個(gè)是圖片左上角的xy坐標(biāo),后兩個(gè)值是圖片x和y軸長(zhǎng)度
這樣直接全屏幕搜索效率往往會(huì)很低,但若我們知道目標(biāo)對(duì)象所在屏幕的大致區(qū)域,可以先用截屏函數(shù)截取相應(yīng)區(qū)域,再用區(qū)域搜索函數(shù)找到目標(biāo),代碼如下:
import pyautogui
area = pyautogui.screenshot(region=(214, 382, 1033, 649))
coo = pyautogui.locate("agree.bmp", area)
print(coo)
結(jié)果:
(28, 16, 77, 34)
解釋一下:screenshot函數(shù)支持屏幕截屏,并把截圖賦值到area上。定義了region參數(shù)后,可以實(shí)現(xiàn)區(qū)域截圖。region的前兩個(gè)參數(shù)是截圖區(qū)域左上角坐標(biāo),后兩個(gè)參數(shù)是區(qū)域右下角坐標(biāo)。
locate函數(shù)接受兩個(gè)參數(shù),第一個(gè)是我們需要找的目標(biāo)圖片,第二個(gè)是尋找目標(biāo)的范圍圖片。若找到目標(biāo),會(huì)返回目標(biāo)在范圍圖片上的相對(duì)坐標(biāo),結(jié)果中的(28, 16)就是點(diǎn)贊按鈕在區(qū)域截圖上的坐標(biāo)。
所以為了獲得目標(biāo)的真實(shí)屏幕坐標(biāo),需要在x和y上分別加截圖區(qū)域左上角的坐標(biāo)xy值
x, y = coo[0] + 214, coo[1] + 382
print(x, y)
結(jié)果:
242 398
總結(jié)
以上是生活随笔為你收集整理的python控制鼠标_如何用python实现真实的鼠标移动?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Minisforum 首发 AMD R7
- 下一篇: 戴尔上架戴记严选透明机械键盘:定制轴体支