1. 程式人生 > 程式設計 >Python實現滑鼠自動在螢幕上隨機移動功能

Python實現滑鼠自動在螢幕上隨機移動功能

本來想控制滑鼠自動移動防止公司電腦自動休眠的策略,然而,實現了並沒什麼卵用,還是會休眠。但還是分享出來吧。win10的系統。

首先要安裝幾個第三方的包: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))

補充知識:python控制 滑鼠移動 pyautogui || PyMouse 自動化

方法1 pyautogui

安裝 ·pip install pyautogui

文件

基本操作指令

gui.PAUSE=0.5 #每次函式呼叫後暫停0.5秒
gui.FAILSAFE=True #啟動自動防故障功能

注意,這裡將pyautogui庫重新命名為gui,是為了使用方便。這個庫可以處理電腦螢幕、滑鼠、鍵盤等電腦硬體資源。下面,我們就先從處理電腦螢幕開始介紹:

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

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

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

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

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

其次,我們再看看滑鼠是怎樣被控的。我們可以用gui.position()返回滑鼠位置(x,y);實現模擬點選用:

def click_position(x,buttonkey='left'):#模擬點選(預設左鍵)
gui.click(x,button=buttonkey)

模擬滑鼠左鍵雙擊用:

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

模擬按下左鍵滑鼠拖動(相對原位置)用:

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

模擬按下左鍵滑鼠拖動(絕對位置)用:

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

模擬移動滑鼠到X,Y座標用:

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

模擬視窗滾動用:

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

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

'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 鍵

傳送字串gui.typewrite(textstr)、

按下鍵gui.keyDown(keyname)、

釋放鍵gui.keyUp(keyname)、

按鍵gui.press(char)、#

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

多個熱鍵組合可按順序輸入多個引數,如:Ctrl-alt-shift-s

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

滑鼠移動

import pyautogui
pyautogui.moveRel(50,50,durtion=1) //根據當前位置,相對移動滑鼠指標 durtion移動時間
pyautogui.position() //獲取當前滑鼠位置

以上這篇Python實現滑鼠自動在螢幕上隨機移動功能就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。