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)