1

在 MacOS X 中是否可以将鼠标单击发送到特定窗口?

我已经设法通过CGPostMouseEvent. 我要控制的窗口相互重叠,所以我的下一个想法是在触发点击之前将正确的窗口放在前面。它可以工作,但最终会一团糟…… ;-)

4

3 回答 3

4

可以通过未记录的方式向 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 邮件列表上的整个线程

于 2009-05-13T11:30:57.413 回答
1

您可能会使用Accessibility APIs

它有点复杂,但它应该可以工作。

于 2009-04-07T18:18:10.573 回答
1

也许您可以使用窗口管理器 API:SetUserFocusWindow(),然后创建鼠标事件。

于 2009-04-07T18:31:10.200 回答