繁体   English   中英

win32api虚拟移动鼠标

[英]win32api move mouse virtually

我正在尝试使用python模拟mouseclick

我的代码如下:

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提供了对此的支持。

看到多个鼠标/鼠标/光标? ,它指的是Windows MultiPoint Mouse SDK CPNMouse项目不再存在,AFAICT。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM