Почему я не могу отправить щелчок мышью в определенное окно? - PullRequest
2 голосов
/ 04 мая 2011

Итак, я наткнулся на решение Дейва здесь: http://lists.apple.com/archives/Cocoa-dev/2009/Apr/msg00764.html

Это в основном имитирует другое окно + отправляет все команды мыши, имеет полный смысл. Мне удалось отправить информацию в сафари и перемещаться по сети.

Но когда я пытаюсь отправить команду мыши в игровое окно (с поддержкой 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);

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...