溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python如何實現(xiàn)鼠標(biāo)自動在屏幕上隨機(jī)移動功能

發(fā)布時間:2021-03-23 10:14:04 來源:億速云 閱讀:414 作者:小新 欄目:開發(fā)技術(shù)

這篇文章給大家分享的是有關(guān)Python如何實現(xiàn)鼠標(biāo)自動在屏幕上隨機(jī)移動功能的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

首先要安裝幾個第三方的包:pymouse、pyhook、pywin32、pyuserinput。別看代碼里值引用pymouse和win32api,如果不把這些都裝了,運行時就會報錯。

下面來看下代碼吧。

from pymouse import PyMouse
from win32api import GetSystemMetrics
import random
import time

m = PyMouse()
m.position()

width = GetSystemMetrics(0)
heigth = GetSystemMetrics(1)

m.move(100, 100)
while True:
 x = random.randint(0, width)
 y = random.randint(0, heigth)
 m.move(x, y)
 time.sleep(random.randint(3, 5))

補(bǔ)充知識:python控制 鼠標(biāo)移動 pyautogui || PyMouse 自動化

方法1 pyautogui

安裝 ·pip install pyautogui

文檔

基本操作指令

gui.PAUSE=0.5 #每次函數(shù)調(diào)用后暫停0.5秒
gui.FAILSAFE=True #啟動自動防故障功能

注意,這里將pyautogui庫重命名為gui,是為了使用方便。這個庫可以處理電腦屏幕、鼠標(biāo)、鍵盤等電腦硬件資源。下面,我們就先從處理電腦屏幕開始介紹:

獲得屏幕大小用W,H=gui.size(),W、H就分別表示屏幕的寬、高;要截屏可以用im=gui.screenshot(),im就是截取的屏幕快照圖片;如果要獲得屏幕上(x,y)坐標(biāo)的顏色值,可以用RGB=GetScreenShow().getpixel((x,y));要判斷坐標(biāo)處顏色是否給定值,可以用以下代碼:

def is_screen_locate_color(x,y,r,b,g):
im=GetScreenShow()
return gui.pixelMatchesColor(x,y,(r,b,g))

如果屏幕上有個圖片,我們怎樣才能獲得圖片在屏幕上的位置和大小呢?有以下代碼

def get_png_all_location(PNGfile):#
return list(gui.locateAllOnScreen(PNGfile))

返回的是這樣一個列表:[(x1,y1,w1,h2),(x2,y2,w2,h3),(x3,y3,w3,h4).],屏幕上只有一個這樣的圖片的話,這個列表就只有一項[(x1,y1,w1,h2)],表示這個圖片的位置(x1,y1)和大小(w1,h2).

其次,我們再看看鼠標(biāo)是怎樣被控的。我們可以用gui.position()返回鼠標(biāo)位置(x,y);實現(xiàn)模擬點擊用:

def click_position(x,y,buttonkey='left'):#模擬點擊(默認(rèn)左鍵)
gui.click(x,y,button=buttonkey)

模擬鼠標(biāo)左鍵雙擊用:

def double_click(x,y):
gui.doubleClick(x,y)

模擬按下左鍵鼠標(biāo)拖動(相對原位置)用:

def drag_rel(dx,dy):
gui.dragRel(dx,dy,duration=0.2)

模擬按下左鍵鼠標(biāo)拖動(絕對位置)用:

def drag_to(x,y):
gui.dragTo(x,y,duration=0.2)

模擬移動鼠標(biāo)到X,Y坐標(biāo)用:

def move_to(x,y):
gui.moveTo(x,y)

模擬窗口滾動用:

def scroll_window(n):
gui.scroll(n)#n為正表示向上滾動,為負(fù)表示向下滾動

第三是模擬鍵盤操作,下面是鍵盤上部分常用鍵的定義:

'a', 'A', '1','!', '@', '#',等等 單個字符的鍵
'enter'(or 'return' or '\n') 回車鍵
'esc' Esc 鍵
'shiftleft', 'shiftright' 左右 Shift 鍵
'altleft', 'altright' 左右 Alt 鍵
'ctrlleft', 'ctrlright' 左右Ctrl 鍵
'tab'(or '\t') Tab 鍵
'backspace', 'delete' Backspace 和 Delete 鍵
'pageup', 'pagedown' Page Up 和 Page Down 鍵
'home', 'end' Home 和 End 鍵
'up', 'down', 'left', 'right' 上下左右箭頭鍵
'f1', 'f2', 'f3',等等 F1 至 F12 鍵

發(fā)送字符串gui.typewrite(textstr)、

按下鍵gui.keyDown(keyname)、

釋放鍵gui.keyUp(keyname)、

按鍵gui.press(char)、#

熱鍵組合如:ctrl+c用gui.hotkey(keyname,char)。

多個熱鍵組合可按順序輸入多個參數(shù),如:Ctrl-alt-shift-s

可輸入gui.hotkey('ctrl','alt','shift','s')。

鼠標(biāo)移動

import pyautogui
pyautogui.moveRel(50,50,durtion=1) //根據(jù)當(dāng)前位置, 相對移動鼠標(biāo)指針 durtion移動時間
pyautogui.position() //獲取當(dāng)前鼠標(biāo)位置

感謝各位的閱讀!關(guān)于“Python如何實現(xiàn)鼠標(biāo)自動在屏幕上隨機(jī)移動功能”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI