python控制windows的鼠标在屏幕上指定位置做点击操作

1. 导入相关包

首先导入相关包,都是python自带的,或者是anaconda环境下集成了的

from ctypes import windll
import win32api
import win32con
import time

2. 获取屏幕长和高

width = windll.user32.GetSystemMetrics(0)
height = windll.user32.GetSystemMetrics(1)
print(width, height)

在这里插入图片描述
我的屏幕宽1536,高864
屏幕左上角位置对应坐标(0, 0),右下角坐标为(1536, 864)

3. 鼠标移动至指定位置

windll.user32.SetCursorPos(900,300)

该代码执行后,鼠标会移动到(900, 300)的坐标点

4. 鼠标点击操作

win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 900, 300)
time.sleep(0.05)    
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 900, 300)

MOUSEEVENTF_LEFTDOWN为鼠标左键按住,
MOUSEEVENTF_LEFTUP为鼠标左键松开,
MOUSEEVENTF_RIGHTDOWN为鼠标右键按住,
MOUSEEVENTF_RIGHTUP为鼠标右键松开,

点击操作当然要把按住和松开一起执行,并且为了保证是成功点击了,最好在中间添加一个短时间的休眠。

上面的代码就是在(900, 300)坐标处的一次点击操作。

5. 加入在循环内实现自动点击

注意脚本的执行,别到时候没法儿用鼠标去做任何操作了,最好不要在console内执行脚本,或者留足够的休眠时间可以去停止程序。

以下脚本则会在屏幕(900, 300)处做两次左键点击,并休息5秒,循环100次。

time.sleep(1)
# 不推荐写进死循环
# while 1:
for i in range(100):

    windll.user32.SetCursorPos(900,300)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 900, 300)
    time.sleep(0.05)    
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 900, 300)
    print("点击1")
    time.sleep(0.5)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 900, 300)
    time.sleep(0.05)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 900, 300)
    print("点击2")
    time.sleep(5)

你可能感兴趣的:(python,python,windows)