我正在尝试使用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)
然而,这会移动真正的鼠标,因此会扰乱用户。它们是一种发送该事件但不移动鼠标的方式吗?
答案 0 :(得分:1)
如果您坚持伪造输入以自动执行此操作,那么您将遇到当前问题。当您伪造输入时,系统将像实际输入一样响应。您可以将光标恢复到其原始位置,但用户将看到它轻弹。这真的不是一件好事。
您需要的是一个不涉及伪造输入的问题解决方案。当然,你没有详细说明问题,只有你的解决方案,所以我们必须猜测问题。看起来您正在尝试自动化某些外部应用程序。该平台通过UIAutomation提供支持。
答案 1 :(得分:0)
请参阅Multiple mouse/mice/cursor?,其中提到Windows MultiPoint Mouse SDK。 CPNMouse项目已不复存在,AFAICT。