为什么我不能将鼠标点击发送到某个窗口?

时间:2011-05-04 00:21:52

标签: objective-c cocoa macos

所以我在这里偶然发现了戴夫的解决方案:http://lists.apple.com/archives/Cocoa-dev/2009/Apr/msg00764.html

这基本上模仿了另一个窗口+发送所有鼠标命令,完全有道理。我能够将信息发送到safari并浏览网页。

但是当我尝试向游戏窗口(OpenGL驱动)发送鼠标命令时,它根本没有做任何事情。

有谁能想到为什么会这样?以下是实际发送事件的相关代码:

ProcessSerialNumber psn;
CGEventRef CGEvent;
NSEvent *customEvent;

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

NSAssert(GetProcessForPID(PID, &psn) == noErr, @"GetProcessForPID failed!");

CGEventPostToPSN(&psn, CGEvent);

我知道应用程序使用以下内容来识别事件:

result = ReceiveNextEvent?(0,NULL,kEventDurationNoWait,true,& theEvent);

谢谢!

0 个答案:

没有答案