我正在开发一个控制鼠标移动的 python 应用程序。
我使用 Quartz.CoreGraphics 库使绝对鼠标位置完美工作,该库公开了一些用于鼠标控制的 CGEvent 命令(例如“CGEventCreateMouseEvent”和“CGEventPost”)。
但是,我在文档中找不到有关相对鼠标移动的任何内容。我真的很想模拟实际的鼠标移动(即“x横向,y向上”而不是“x,y”),因为使用我的应用程序的一些人有多个显示器,我想这会更容易通知操作系统有鼠标移动,而不是自己设置位置。
我的界面的性质也适合相对鼠标移动。
在 Windows 中,win32 API 中有一个函数允许使用“原始”鼠标命令来完成我正在寻找的任务。有什么方法可以在 OS X 中实现这一点吗?
最佳答案
我认为事件管理方式并非不可能。您需要捕获旧的 (X,Y) 并自己计算增量。这意味着当您到达屏幕末尾时将会遇到问题。
好消息是您可以移动鼠标。因此,如果鼠标碰到边缘,您可以将其重新定位到中心。您还可以使鼠标指针不可见。最后,您可以使用覆盖整个屏幕的跟踪矩形来捕获鼠标移动。因此,好消息是您可以精确地模拟您想要做的事情,但坏消息是这需要一些工作。
对此有用的 API 包括:
CGEventTap
(请参阅 Quartz Event Services ReferenceCGPostEvent
CGDisplayMoveCursorToPoint
(参见Quartz Display Services Reference)
其他 SO 引用包括:
关于python - 在 OS X 中使用相对(而不是绝对)鼠标移动的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14765578/