我正在使用C ++编写适用于Mac OS X 10.6及更高版本的应用程序。 应用程序的一部分需要模拟鼠标移动和点击。 我目前通过使用“CGEventPost(kCGHIDEventTap,event)”来发布“CGEvent”对象来实现此目的。
这在很大程度上有效 - 我可以轻松模拟鼠标移动和点击,但在某些区域似乎会失败。例如:
- 在Mozilla Firefox和Safari中,我可以单击所有菜单,但无法单击网站内的链接。 当我尝试时,链接会被突出显示,但浏览器从未跟随链接。 但是,我可以右键单击链接,选择“在新标签页中打开链接”,然后一切正常。 使用“CGEventCreateMouseEvent(...)”创建鼠标事件可以使事件在Web浏览器中起作用。 - 我可以单击“Dashboard”图标以显示仪表板,但无法单击任何仪表板小部件上的“i”按钮。 同样,单击聚光灯搜索小部件中的任何搜索结果也不起作用。
这种不一致性跨越应用程序边界。可能是什么原因?
这在很大程度上有效 - 我可以轻松模拟鼠标移动和点击,但在某些区域似乎会失败。例如:
- 在Mozilla Firefox和Safari中,我可以单击所有菜单,但无法单击网站内的链接。 当我尝试时,链接会被突出显示,但浏览器从未跟随链接。 但是,我可以右键单击链接,选择“在新标签页中打开链接”,然后一切正常。 使用“CGEventCreateMouseEvent(...)”创建鼠标事件可以使事件在Web浏览器中起作用。 - 我可以单击“Dashboard”图标以显示仪表板,但无法单击任何仪表板小部件上的“i”按钮。 同样,单击聚光灯搜索小部件中的任何搜索结果也不起作用。
这种不一致性跨越应用程序边界。可能是什么原因?