【发布时间】:2011-04-12 20:49:05
【问题描述】:
我正在尝试模拟鼠标单击窗口。我目前已经成功执行以下操作(我使用的是 Python,但它应该适用于一般的 win32):
win32api.SetCursorPos((x,y))
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,0,0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,0,0)
这很好用。但是,如果在我手动移动鼠标时发生单击,则光标位置会被抛出。有没有办法直接将点击发送到给定的(x,y) 坐标而不将鼠标移动到那里?我尝试过类似以下的方法,但运气不佳:
nx = x*65535/win32api.GetSystemMetrics(0)
ny = y*65535/win32api.GetSystemMetrics(1)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN | \
win32con.MOUSEEVENTF_ABSOLUTE,nx,ny)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP | \
win32con.MOUSEEVENTF_ABSOLUTE,nx,ny)
【问题讨论】:
标签: python winapi input automation mouse