查看: 39|回覆: 0

gui自动化—1.控制鼠标

[複製鏈接]

3

主題

0

回帖

0

積分

热心网友

金币
0
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2012-3-5
發表於 2026-1-5 17:07:00 | 顯示全部樓層 |閲讀模式

前期准备:

使用pyautogui包 进行操作

一切操作的基础得先理解坐标,以屏幕左上为坐标原点,水平方向为x轴,方向向右;垂直方向为y轴,方向向下。例如屏幕分辨率为1920×1080,那么左上为(0,0),右下为(1919,1079)

获取像素:

pyautogui.size()返回两个整数,分别为屏幕宽和高的像素数

pyautogui.position()返回两个整数,分别为当前鼠标位置的坐标(x,y)

那么开始操作鼠标

控制鼠标:

 

鼠标无非以下几种基本操作:

点击,移动,拖动,滚轮滑动

点击:

pyautogui.click(x,y,button="H")

该函数作用为 鼠标点击(x,y)坐标,x和y也可不标注默认鼠标当前位置,button参数为左右键,参数为左键“left”,右键“right”,默认左键

下列参数一致

pyautogui.mouseDown()    只按下左键

pyautogui.mouseUp()      只松开左键

pyautogui.doubleClick()     左键双击

pyautogui.rightClick()      右键点击

pyautogui.middleClick()     中间点击

 

移动:

绝对移动:

pyautogui.moveTo(x,y,duration=a)

该函数作用为将鼠标移动到(x,y)坐标下,duration参数为移动的时间,可以是整数或浮点数,默认为0

pyautogui.moveTo(100, 100)
for i in range(3):
    pyautogui.moveTo(100, 100, duration=1)
    pyautogui.moveTo(1800,100, duration=1)
    pyautogui.moveTo(1800,900, duration=1)
    pyautogui.moveTo(100,900, duration=1)

 例子为将鼠标移动到(100,100)然后开始以1秒一条边的方式在平面上画框

相对移动:

pyautogui.moveRel(x1,y1,duration=a)

该函数作用为将鼠标坐标(x,y)移动到(x+x1,y+y1)的坐标下,duration参数为移动的时间,可以是整数或浮点数,默认为0

pyautogui.moveTo(800, 100)
for i in range(3):
    pyautogui.moveRel(400, 800, duration=1)
    pyautogui.moveRel(-600,0, duration=1)
    pyautogui.moveRel(200,-800, duration=1)

  例子为将鼠标移动到(800,100)然后开始以1秒一条边的方式在平面上画三角

拖动:

绝对拖动:

pyautogui.dragTo(x1,y1,duration=a)

 该函数作用为将鼠标拖动到(x,y)坐标下,duration参数为移动的时间,可以是整数或浮点数,默认为0,注意设置一下该参数,时间太短容易报错【系统也是需要反应时间的

相对移动:

pyautogui.dragRel(x1,y1,duration=a)

该函数作用为将鼠标从(x,y)坐标拖动到(x+x1,y+y1),参数相同,注意设置一下

滑轮滚动:

pyautogui.scroll(a)

在当前鼠标位置滚动a个单位,正值向上,负值向下

 


来源:https://www.cnblogs.com/berserker-slst/p/19443924
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部