在 MacOS X 中是否可以将鼠标单击发送到特定窗口?
我已经设法通过CGPostMouseEvent
. 我要控制的窗口相互重叠,所以我的下一个想法是在触发点击之前将正确的窗口放在前面。它可以工作,但最终会一团糟…… ;-)
可以通过未记录的方式向 Cocoa 应用程序发送事件
CGEventPostToPSN
这是来自 Dave Keck 的一些代码示例。他在邮件列表上贴了一份小申请。
customEvent = [NSEvent mouseEventWithType: [event type]
location: [event locationInWindow]
modifierFlags: [event modifierFlags] | NSCommandKeyMask
timestamp: [event timestamp]
windowNumber: WID
context: nil
eventNumber: 0
clickCount: 1
pressure: 0];
CGEvent = [customEvent CGEvent];
CGEventPostToPSN(&psn, CGEvent);
为了存档它,我在 paste.org 上粘贴了更多源代码
供参考: cocao-dev 邮件列表上的整个线程
您可能会使用Accessibility APIs。
它有点复杂,但它应该可以工作。
也许您可以使用窗口管理器 API:SetUserFocusWindow(),然后创建鼠标事件。