Python實(shí)現(xiàn)鼠標(biāo)自動(dòng)在屏幕上隨機(jī)移動(dòng)功能
本來(lái)想控制鼠標(biāo)自動(dòng)移動(dòng)防止公司電腦自動(dòng)休眠的策略,然而,實(shí)現(xiàn)了并沒(méi)什么卵用,還是會(huì)休眠。但還是分享出來(lái)吧。win10的系統(tǒng)。
首先要安裝幾個(gè)第三方的包:pymouse、pyhook、pywin32、pyuserinput。別看代碼里值引用pymouse和win32api,如果不把這些都裝了,運(yùn)行時(shí)就會(huì)報(bào)錯(cuò)。
下面來(lái)看下代碼吧。
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ǔ)充知識(shí):python控制 鼠標(biāo)移動(dòng) pyautogui || PyMouse 自動(dòng)化
方法1 pyautogui
安裝 ·pip install pyautogui
基本操作指令
gui.PAUSE=0.5 #每次函數(shù)調(diào)用后暫停0.5秒
gui.FAILSAFE=True #啟動(dòng)自動(dòng)防故障功能
注意,這里將pyautogui庫(kù)重命名為gui,是為了使用方便。這個(gè)庫(kù)可以處理電腦屏幕、鼠標(biāo)、鍵盤(pán)等電腦硬件資源。下面,我們就先從處理電腦屏幕開(kāi)始介紹:
獲得屏幕大小用W,H=gui.size(),W、H就分別表示屏幕的寬、高;要截屏可以用im=gui.screenshot(),im就是截取的屏幕快照?qǐng)D片;如果要獲得屏幕上(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))
如果屏幕上有個(gè)圖片,我們?cè)鯓硬拍塬@得圖片在屏幕上的位置和大小呢?有以下代碼
def get_png_all_location(PNGfile):#
return list(gui.locateAllOnScreen(PNGfile))
返回的是這樣一個(gè)列表:[(x1,y1,w1,h1),(x2,y2,w2,h2),(x3,y3,w3,h3).],屏幕上只有一個(gè)這樣的圖片的話,這個(gè)列表就只有一項(xiàng)[(x1,y1,w1,h1)],表示這個(gè)圖片的位置(x1,y1)和大小(w1,h1).
其次,我們?cè)倏纯词髽?biāo)是怎樣被控的。我們可以用gui.position()返回鼠標(biāo)位置(x,y);實(shí)現(xiàn)模擬點(diǎn)擊用:
def click_position(x,y,buttonkey='left'):#模擬點(diǎn)擊(默認(rèn)左鍵)
gui.click(x,y,button=buttonkey)
模擬鼠標(biāo)左鍵雙擊用:
def double_click(x,y):
gui.doubleClick(x,y)
模擬按下左鍵鼠標(biāo)拖動(dòng)(相對(duì)原位置)用:
def drag_rel(dx,dy):
gui.dragRel(dx,dy,duration=0.2)
模擬按下左鍵鼠標(biāo)拖動(dòng)(絕對(duì)位置)用:
def drag_to(x,y):
gui.dragTo(x,y,duration=0.2)
模擬移動(dòng)鼠標(biāo)到X,Y坐標(biāo)用:
def move_to(x,y):
gui.moveTo(x,y)
模擬窗口滾動(dòng)用:
def scroll_window(n):
gui.scroll(n)#n為正表示向上滾動(dòng),為負(fù)表示向下滾動(dòng)
第三是模擬鍵盤(pán)操作,下面是鍵盤(pán)上部分常用鍵的定義:
'a', 'A', '1','!', '@', '#',等等 單個(gè)字符的鍵
'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)。
多個(gè)熱鍵組合可按順序輸入多個(gè)參數(shù),如:Ctrl-alt-shift-s
可輸入gui.hotkey('ctrl','alt','shift','s')。
鼠標(biāo)移動(dòng)
import pyautogui pyautogui.moveRel(50,50,durtion=1) //根據(jù)當(dāng)前位置, 相對(duì)移動(dòng)鼠標(biāo)指針 durtion移動(dòng)時(shí)間 pyautogui.position() //獲取當(dāng)前鼠標(biāo)位置
以上這篇Python實(shí)現(xiàn)鼠標(biāo)自動(dòng)在屏幕上隨機(jī)移動(dòng)功能就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Selenium執(zhí)行完畢未關(guān)閉chromedriver/geckodriver進(jìn)程的解決辦法(java版+python版)
- Python Selenium XPath根據(jù)文本內(nèi)容查找元素的方法
- Python爬蟲(chóng)之Selenium設(shè)置元素等待的方法
- Python爬蟲(chóng)中Selenium實(shí)現(xiàn)文件上傳
- python使用yaml 管理selenium元素的示例
- Selenium結(jié)合BeautifulSoup4編寫(xiě)簡(jiǎn)單的python爬蟲(chóng)
- python 實(shí)現(xiàn)控制鼠標(biāo)鍵盤(pán)
- Python 實(shí)現(xiàn)鍵盤(pán)鼠標(biāo)按鍵模擬
- Python監(jiān)聽(tīng)鍵盤(pán)和鼠標(biāo)事件的示例代碼
- opencv+python實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊圖像,輸出該點(diǎn)的RGB和HSV值
- python 基于selenium實(shí)現(xiàn)鼠標(biāo)拖拽功能
相關(guān)文章
python編寫(xiě)簡(jiǎn)單爬蟲(chóng)資料匯總
本文給大家匯總介紹了下幾種使用Python編寫(xiě)簡(jiǎn)單爬蟲(chóng)的方法和代碼,非常的不錯(cuò),這里分享給大家,希望大家能夠喜歡。2016-03-03
一個(gè)檢測(cè)OpenSSL心臟出血漏洞的Python腳本分享
這篇文章主要介紹了一個(gè)檢測(cè)OpenSSL心臟出血漏洞的Python腳本,心臟出血漏洞是互聯(lián)網(wǎng)上的地震,看到的同學(xué)趕緊升級(jí)OpenSSL,避免黑客入侵2014-04-04
Python實(shí)現(xiàn)的遠(yuǎn)程文件自動(dòng)打包并下載功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)的遠(yuǎn)程文件自動(dòng)打包并下載功能,結(jié)合實(shí)例形式分析了Python使用spawn()方法執(zhí)行ssh、scp 命令實(shí)現(xiàn)遠(yuǎn)程文件的相關(guān)操作技巧,需要的朋友可以參考下2019-07-07
淺談多卡服務(wù)器下隱藏部分 GPU 和 TensorFlow 的顯存使用設(shè)置
這篇文章主要介紹了淺談多卡服務(wù)器下隱藏部分 GPU 和 TensorFlow 的顯存使用設(shè)置,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06
Python調(diào)用Prometheus監(jiān)控?cái)?shù)據(jù)并計(jì)算
Prometheus是一套開(kāi)源監(jiān)控系統(tǒng)和告警為一體,由go語(yǔ)言(golang)開(kāi)發(fā),是監(jiān)控+報(bào)警+時(shí)間序列數(shù)據(jù)庫(kù)的組合。本文將介紹Python如何調(diào)用Prometheus實(shí)現(xiàn)數(shù)據(jù)的監(jiān)控與計(jì)算,需要的可以參考一下2021-12-12
如何將你的應(yīng)用遷移到Python3的三個(gè)步驟
這篇文章主要介紹了如何將你的應(yīng)用遷移到Python3的三個(gè)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
PyQT實(shí)現(xiàn)菜單中的復(fù)制,全選和清空的功能的方法
今天小編就為大家分享一篇PyQT實(shí)現(xiàn)菜單中的復(fù)制,全選和清空的功能的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06

