我正在尝试用 python 模拟鼠标点击
我的代码如下:
class Mouse(object):
def __init__(self):
self.x_res = win32api.GetSystemMetrics(0)
self.y_res = win32api.GetSystemMetrics(1)
def rightClick(self, x, y):
nx = x*65535/self.x_res
ny = y*65535/self.y_res
win32api.mouse_event(win32con.MOUSEEVENTF_ABSOLUTE|win32con.MOUSEEVENTF_MOVE,nx,ny)
win32api.Sleep(200)
win32api.mouse_event(win32con.MOUSEEVENTF_ABSOLUTE|win32con.MOUSEEVENTF_RIGHTDOWN,x,y,0,0)
win32api.Sleep(200)
win32api.mouse_event(win32con.MOUSEEVENTF_ABSOLUTE|win32con.MOUSEEVENTF_RIGHTUP,x,y,0,0)
win32api.Sleep(700)
我使用这样的代码:
mouse = Mouse()
win32api.Sleep(2000)
x = 2520
y = 414
mouse.leftClick(x, y)
然而,这会移动真正的鼠标,因此会干扰用户。它们是一种发送该事件但不真正移动鼠标的方法吗?
最佳答案
如果您坚持伪造输入来自动执行此操作,那么您将陷入当前的问题。当您伪造输入时,系统将像真实输入一样做出响应。您可以将光标返回到其原始位置,但用户会看到它在闪烁。这实在不是什么好事。
您需要的是一个不涉及伪造输入的问题解决方案。当然,你没有详细说明问题,只有你的解决方案,所以我们只能猜测问题。看起来您正在尝试自动化某些外部应用程序。该平台通过 UIAutomation 提供对此的支持。
关于python - win32api虚拟移动鼠标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22183683/