Tho*_*omi 7 c++ macos mouse events
我正在用C++编写Mac OS X 10.6及更高版本的应用程序.应用程序的一部分需要模拟鼠标移动和鼠标点击.我目前通过CGEvent使用发布对象来执行此操作CGEventPost(kCGHIDEventTap, event);.
这在很大程度上是有效的 - 我可以模拟鼠标移动和点击很好,但在某些方面似乎失败了.例如:
CGEventCreateMouseEvent(...)使事件在Web浏览器中工作.这种不一致是沿着应用程序的边界.可能是什么原因?
您需要做的是说服这些应用程序实际上生成了一次单击是将鼠标向上事件的"单击状态"字段的值显式设置为1(默认为0).以下代码将执行此操作:
CGEventSetIntegerValueField(event, kCGMouseEventClickState, 1);
Run Code Online (Sandbox Code Playgroud)
鼠标按下它也必须设置为1,但是使用CGEventCreateMouseEvent()而不是CGEventCreate()可以为你完成.
我已对此进行了测试,它可以在仪表板中的"i"按钮和Spotlight搜索结果中使用.
(另外,如果您正在模拟双击,则需要将鼠标按下和鼠标按下事件的点击状态设置为2.)
| 归档时间: |
|
| 查看次数: |
4620 次 |
| 最近记录: |