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

我已经设法通过CGPostMouseEvent将点击发送到整个屏幕。
我要控制的窗口彼此重叠,所以我的下一个想法是在触发点击之前将适当的窗口置于最前面。它可以正常工作,但最终会一团糟... ;-)

最佳答案

可以通过未记录的事件将事件发送到Cocoa应用程序

CGEventPostToPSN


这是Dave Keck的一些代码示例。他发布了一个小应用程序on the mailing list

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);


要存档,我在

pasteie.org上粘贴了more source code

供参考:整个thread on cocao-dev mailing list

10-08 16:58