2011-12-29 7 views
6

Powiel możliwe:
OSX HID Filter for Secondary Keyboard?Jak mogę wykorzystać kluczowe zdarzenia tylko na klawiaturze z określonym HID w Mac OSX?

chciałbym napisać aplikacji Mac OSX, który przechwytuje zdarzenia klawiatury na drugiej klawiaturze i spożywać je przed inne aplikacje otrzymywać powiadomienia? Nie powiadamiaj mojej aplikacji o naciśnięciu klawisza na głównej klawiaturze komputera, tylko o drugiej. I nie chcę, aby inne aplikacje otrzymywały naciśnięcie klawisza, chcę go użyć. Czy ktoś tutaj zna najlepszy sposób, aby o tym porozmawiać?

+0

@GaretJax Twoja odpowiedź z mojego drugiego pytania doskonale rozwiązała mój problem. Oto link dla korzyści innych: [link] (http://stackoverflow.com/questions/8676135/osx-hid-filter-for-secondary-keyboard) – JayGee

Odpowiedz

0

Będziesz potrzebować IOKit, aby to zrobić. Kod wymagałby pisania kekstu i przechwytywania zdarzeń klawiatury oraz wybierania, czy mają być przekazywane do przestrzeni użytkownika. Napisanie tutaj całego podejścia byłoby zbyt złożone i duże, ale mogę zasugerować kilka odniesień.

Kod pod numerem KeyRemap4MacBook zawiera dość mały kod niskiego poziomu do odczytu i przechwycenia urządzenia.

Oto zwyczaj kext że autor napisał: https://github.com/tekezo/KeyRemap4MacBook/tree/master/src/core/kext

Proponuję zajrzeć do kodu, aby zobaczyć, jak on został przechwycony klucze, odwzorować je w zależności od konfiguracji użytkownika i wysyłać je do przestrzeni użytkownika .

+1

Masz w zasadzie rację, ale tak jak ja w międzyczasie można uniknąć pisania kextu i korzystać z biblioteki HID przestrzeni użytkownika wraz z kIOHIDOptionsTypeSeizeDevice, aby uzyskać wyłączny dostęp do wybranego urządzenia. – GaretJax

+0

Przypominam wypróbowanie przykładowego narzędzia "HID LED test tool" z Apple Documentation, która używa użytkownika space HID Manager (na OSX 10.8) i nie mam jeszcze działa poprawnie. Po wyjęciu z pudełka aplikacja ulega awarii. Wygląda na to, że przykład został zbudowany dla systemu Leopard i od tego czasu nie był aktualizowany. Nie znalazłem jeszcze żadnych najnowszych przykładów. –

Powiązane problemy