PyautoGui

发布时间 2023-05-06 21:31:10作者: Fadsylar

 

 1 import time
 2 import pyautogui
 3 
 4 # Size(width=2560, height=1600) 获取屏幕像素
 5 pyautogui.size()
 6 
 7 # Point(x=1595, y=907) 获取当前鼠标坐标,返回x,y轴
 8 x, y = pyautogui.position()
 9 print(x, y)
10 
11 # 查看该像素点是否在屏幕内,返回True/False;最多为屏幕项目-1,比如屏幕最大像素为2560 * 1060,最大=2559,1059
12 pyautogui.onScreen(800, 600)
13 
14 # 将鼠标移动到500,500,绝对坐标从0,0开始计算
15 pyautogui.moveTo(500, 500)
16 
17 # duration=2 持续时间为2秒,不带duration参数时默认为0.25秒
18 pyautogui.moveTo(600, 910, duration=2)
19 
20 time.sleep(3)
21 
22 # 鼠标向右移动700,向下移动200,从相对位置开始(当前鼠标位置);上移为用负数表示
23 pyautogui.move(700, 80)
24 
25 # 鼠标按住左键拖动到像素1,1的位置(绝对坐标),持续时间为2秒,duration不带时,默认不填为0.25秒。left/right均可
26 pyautogui.dragTo(109, 300, button='left', duration=2)
27 
28 time.sleep(3)
29 
30 # 鼠标按住左键拖动,从当前位置向右移动900,向上200(相对坐标),移动时间为3秒,duration不带时,默认不填为0.25秒。left/right均可
31 pyautogui.drag(900, -200, button='left')
32 
33 # 模拟鼠标点击
34 pyautogui.click()  # 单击鼠标左键一次
35 pyautogui.click(100, 200)  # 在绝对坐标100,200单击鼠标
36 pyautogui.click(button='left')  # 单击鼠标左键一次
37 pyautogui.click(click2=2)  # 鼠标左键点击2次
38 pyautogui.click(clicks=2, intervl=0.25)  # 鼠标左键点击2次,每次间隔0.25s
39 pyautogui.click(button='right', clicks=3, interval=0.25)  # 右键点3次,每次间隔0.25s
40 pyautogui.doubleClick()  # 双击
41 pyautogui.tripleClick()  # 三击
42 
43 # 举例:获取当前鼠标的x,y轴,然后右键双击,间隔0.25s,持续时间为3s
44 x, y = pyautogui.position()
45 print(x, y)
46 pyautogui.doubleClick(x, y, button='left', interval=0.25, duration=3)
47 
48 # 鼠标的按压和释放
49 pyautogui.mouseDown(button='left')
50 pyautogui.mouseUp(button='left', x=100, y=100)
51 
52 # 鼠标滚动
53 pyautogui.scroll(1000)
54 time.sleep(3)
55 pyautogui.scroll(-1000)
56 time.sleep(3)
57 pyautogui.scroll(1000, x=100, y=100)
58 time.sleep(3)
59 
60 # 控制键盘
61 pyautogui.write("hello world!")
62 pyautogui.write("hello world!", interval=0.25)  # 输入每个字符,间隔0.25s
63 pyautogui.press("enter")
64 pyautogui.press("left")
65 pyautogui.press("up")
66 pyautogui.press("f1")
67 pyautogui.press(['x', 'y', 'z'])  # 依次按下x y z
68 pyautogui.hotkey('ctrl', 'alt', 'shift')  # 依次按住ctrl alt  shift 键不放,最后先放开shift再alt最后ctrl
69 pyautogui.keyDown('ctrl')  # 按住ctrl不放
70 pyautogui.keyDown('c')  # 按住v不放
71 pyautogui.keyUp('ctrl')  # 释放ctrl
72 pyautogui.keyUp('v')  # 释放v
73 
74 # 举例:
75 x, y = pyautogui.position()  # 获取当前鼠标xy轴
76 pyautogui.click(x, y, button='left')  # 在xy轴上单击左键一次
77 pyautogui.hotkey('ctrl', 'c')  # 按下ctrl+c
78 pyautogui.hotkey('ctrl', 'v')  # 按下ctrl+v
79 
80 # 截屏
81 pyautogui.screenshot('img.png')  # 全屏截图,不写具体路径,默认保存到当前py文件下
82 pyautogui.screenshot(region=(0, 0, 300, 400)).save('img.png')  # 也可以如下:
83 im = pyautogui.screenshot(region=(0, 0, 300, 400))
84 im.save('img.png')
85 
86 # 灰度匹配和像素匹配
87 im = pyautogui.screenshot()  # 截取屏幕
88 
89 # 获取坐标100,200对象的像素点,rgb值返回值为:元组(60, 63, 65),取值与列表一致,如tup[0] = 60
90 tup = im.getpixel((100, 200))
91 
92 # 对比坐标100,200的像素的rgb是不是(60, 63, 65),返回True/False,参数tolerance=10,表示如果rgb的误差值在10之内,返回True
93 result1 = pyautogui.pixelMatchesColor(100, 200, (60, 63, 65))
94 result2 = pyautogui.pixelMatchesColor(100, 200, (60, 69, 65), tolerance=10)
95 print(result1)  # True
96 print(result2)  # True