Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在OSX中使用相对(相对于绝对)鼠标移动的方法?_Python_Macos_Core Graphics_Mouse_Quartz Graphics - Fatal编程技术网

Python 在OSX中使用相对(相对于绝对)鼠标移动的方法?

Python 在OSX中使用相对(相对于绝对)鼠标移动的方法?,python,macos,core-graphics,mouse,quartz-graphics,Python,Macos,Core Graphics,Mouse,Quartz Graphics,我正在开发一个控制鼠标移动的python应用程序 我使用Quartz.CoreGraphics库实现了绝对鼠标位置的完美工作,该库公开了一些用于鼠标控制的CGEvent命令(如“cgEventCreateMouseeEvent”和“CGEventPost”) 然而,我在文档中找不到任何关于鼠标相对移动的信息。我真的很想模拟实际的鼠标移动(即“x侧向,y向上”而不是“x,y”),因为使用我的应用程序的一些人有多个监视器,我想,仅仅通知操作系统鼠标移动要比自己设置位置容易得多 我的界面的性质也适合相

我正在开发一个控制鼠标移动的python应用程序

我使用Quartz.CoreGraphics库实现了绝对鼠标位置的完美工作,该库公开了一些用于鼠标控制的CGEvent命令(如“cgEventCreateMouseeEvent”和“CGEventPost”)

然而,我在文档中找不到任何关于鼠标相对移动的信息。我真的很想模拟实际的鼠标移动(即“x侧向,y向上”而不是“x,y”),因为使用我的应用程序的一些人有多个监视器,我想,仅仅通知操作系统鼠标移动要比自己设置位置容易得多

我的界面的性质也适合相对鼠标移动


在Windows中,win32 API中有一个函数,它允许使用“原始”鼠标命令,而这些命令正是我想要的。在OS X中有什么方法可以实现这一点吗?

我认为,以事件管理的方式是不可能的。您需要捕获旧的(X,Y)并自己计算增量。这意味着当你点击屏幕的末尾时会出现问题

好消息是你可以移动鼠标。因此,如果鼠标击中边缘,可以将其重新定位到中心。也可以使鼠标指针不可见。最后,您可以使用覆盖整个屏幕的跟踪矩形捕捉鼠标移动。好消息是你可以精确地模拟你想做的事情,但坏消息是这需要一些工作

这方面有用的API包括:

  • CGEventTap
    (参见
  • CGPostEvent
  • CGDisplayMoveCursorToPoint
    (请参阅)
其他参考资料包括:


我认为事件的管理方式是不可能的。您需要捕获旧的(X,Y)并自己计算增量。这意味着您在屏幕结束时会遇到问题

好消息是你可以移动鼠标。因此,如果鼠标碰到边缘,你可以将其重新定位到中心。你还可以使鼠标指针不可见。最后,你可以用覆盖整个屏幕的跟踪矩形捕捉鼠标移动。好消息是你可以精确模拟你想做的事情,但坏消息是消息是这需要一些工作

这方面有用的API包括:

  • CGEventTap
    (参见
  • CGPostEvent
  • CGDisplayMoveCursorToPoint
    (请参阅)
其他参考资料包括:


您可以添加一个设置鼠标增量的示例吗?检测位置并确保其不在屏幕上似乎很简单…您可以添加一个设置鼠标增量的示例吗?检测位置并确保其不在屏幕上似乎很简单。。。