【发布时间】:2011-09-08 03:21:39
【问题描述】:
我正在用 C++ 为 Mac OS X 10.6 及更高版本编写应用程序。应用程序的一部分需要模拟鼠标移动和鼠标点击。我目前通过使用CGEventPost(kCGHIDEventTap, event); 发布CGEvent 对象来做到这一点。
这在大多数情况下都有效 - 我可以很好地模拟鼠标移动和点击,但它似乎在某些方面失败了。例如:
- 在 Mozilla Firefox 和 Safari 中,我可以单击所有菜单,但无法单击网站内的链接。当我尝试时,链接突出显示,但浏览器从不跟随链接。但是,我可以右键单击一个链接,选择“在新选项卡中打开链接”,一切都按预期工作。 已解决 - 使用
CGEventCreateMouseEvent(...)创建鼠标事件可使该事件在网络浏览器中工作。 - 我可以单击“仪表板”图标来启动仪表板,但无法单击任何仪表板小部件上的“i”按钮。同样,单击 Spotlight 搜索小部件中的任何搜索结果也不起作用。
这种不一致存在于应用程序边界上。可能是什么原因?
【问题讨论】: