import win32gui
import win32api
import win32con
import time
def LeftClick():
# FindWindow(类名, 窗口名)
handle0 = win32gui.FindWindow(None, "SenseRover Mini刷机工具")
# 将窗口从任务栏处显示出来,句柄是父级窗口,需要每次都最小化到任务栏才可进行下一次
# win32gui.ShowWindow(handle0, win32con.SW_RESTORE)
# 强制将窗口调到最前
win32gui.SetForegroundWindow(handle0)
# 激活父级窗口,其实是可以省略这一步的,SetForgroundWindow(HWND hwnd)就有激活的作用
win32gui.SetActiveWindow(handle0)
# 我也不明白在此处用BM_CLICK、为什么不可以单击,必须要用mouse_event
"""
handle1 = win32gui.FindWindowEx(handle0, None, None, None)
#win32gui.SendMessage(win32gui.FindWindowEx(handle1, None, None, None), win32con.BM_CLICK, 0, 0)
win32gui.SendMessage(win32gui.FindWindowEx(handle1, None, None, None), win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, (25 << 16 | 26))
win32gui.SendMessage(win32gui.FindWindowEx(handle1, None, None, None), win32con.WM_LBUTTONUP, win32con.MK_LBUTTON, (25<<16|26))
"""
# 设置鼠标位置
win32api.SetCursorPos([526, 301])
# 鼠标左键down|up,x偏移量,y偏移量(鼠标左键单击)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN|win32con.MOUSEEVENTF_LEFTUP, 0, 0)
time.sleep(30)
# FindWindowEx(父柄,None,None,None)寻找父柄之后的第一个子柄
# 此处用BM_CLICK没问题
handle2 = win32gui.FindWindowEx(win32gui.FindWindow(None, "提示"), None, None, None)
win32gui.SendMessage(handle2, win32con.BM_CLICK, 0, 0)
# 尝试使用LBUTTONDOWN/UP也可以实现单击,(22<<16|34)是按键中间相对于按键左上角的坐标,34是x,22是y
# win32gui.SendMessage(handle2, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, (22<<16|34))
# win32gui.SendMessage(handle2, win32con.WM_LBUTTONUP, win32con.MK_LBUTTON, (22<<16|34))
for i in range(10000):
print("开始第%d次烧录" % (i+1))
LeftClick()
print("第%d次烧录完成" % (i+1))
windows模拟鼠标点击相应按键(可后台运行)
最新推荐文章于 2025-04-17 12:02:38 发布