2013-02-27 3 views
0

То, что я хочу добиться:Детектирование события клавиатуры и мыши Appication внутри библиотеки

Цель состоит в том, чтобы сделать библиотеку Mac OS X - dylib/расслоение/рамочный, который перехватывает все события мыши и клавиатуры из приложения, загрузили библиотеку. Я просто хочу регистрировать эти события, а не изменять их. Библиотека должна иметь API-интерфейс C, который предоставляет подробные сведения о зарегистрированных событиях.

То, что я в настоящее время сделаны:

Я реализовал два способа для обнаружения событий мыши и клавиатуры приложения внутри библиотеки, что приложение загружает:

1) Установка обработчика событий с помощью Carbon. По какой-то причине использование InstallApplicationEventHandler или InstallEventHandler (GetApplicationEventTarget(), ...) не помогло. Было возможно уловить все события, не связанные с приложением (все события, за исключением тех, которые доставляются в целевое приложение, которое загружает мою библиотеку). (http://osxbook.com/book/bonus/chapter2/altermouse/) и клавиатура (http://osxbook.com/book/bonus/chapter2/alterkeys/). Эти работы, но являются общесистемными. Я хочу, чтобы моя библиотека поймала только события, доставленные в приложение, которое его загрузило.

Кто-нибудь знает, как создать прикладную клавиатуру и мышь, а не общесистемные?

+0

«Я просто хочу регистрировать эти события» Зачем? –

+0

Это не кейлоггер, если это то, о чем вы просите. Я хочу, чтобы эта библиотека запоминала последнюю нажатую клавишу и последнюю позицию, на которую была нажата мышь. – Ivan

ответ

0

Конкретные мероприятия. Краны события могут быть созданы с использованием CGEventTapCreateForPSN. Текущий серийный номер прикладного процесса можно получить с помощью
ProcessSerialNumber currentProcess; GetCurrentProcess(&currentProcess);

Затем создайте и нажмите кнопку для этого PSN.

Смежные вопросы