2017-02-16 34 views
5

Mam własną klawiaturę i skaner kodów paskowych USB, który działa jak druga klawiatura.Rejestr zdarzeń drugiej klawiatury

Chciałbym użyć głównej klawiatury do sterowania komputerem (jak zwykle) i drugiej klawiatury (która jest w rzeczywistości skanerem kodów kreskowych), aby rejestrować wszystkie dane wejściowe do pliku.

Czy można to zrobić?

Chodzi o to, że mogę być w Internecie, w programie Word, Excel lub w czymkolwiek innym. Używałbym głównej klawiatury do pisania do tych procesów, podczas gdy w tle druga klawiatura (skaner kodów kreskowych) mogłaby jednocześnie pisać, ale do pliku dziennika. Program, którego mógłbym użyć w tym momencie, nigdy nie dowiedziałby się o drugim wejściu klawiatury.

enter image description here

Dzięki, wszelkie sugestie są bardzo mile widziane.

+0

Polecam zapoznanie się z sterownikami urządzeń systemu Windows. Dzięki temu dowiesz się, jak dodać hak do drugiej klawiatury. –

Odpowiedz

1

Możesz użyć Raw Input API do monitorowania zdarzeń klawiatury zanim system operacyjny je przetworzy. Interfejs API pokaże, które urządzenie wysyła każde zdarzenie, dzięki czemu można rejestrować zdarzenia tylko ze skanera.

Jednak interfejs Raw Input API nie pozwala na blokowanie danych wejściowych, więc aby zablokować przetwarzanie zdarzeń skanera jako normalnych zdarzeń klawiatury, należy użyć ustawienia SetWindowsHookEx(), aby skonfigurować hak klawiatury, który odrzuca zdarzenia.

Jednak SetWindowsHookEx() nie zgłasza, które urządzenie wysyła każde zdarzenie, więc będziesz musiał ręcznie koordynować oba interfejsy API. Gdy Raw Input wykryje zdarzenie klawiatury, ustaw flagę na podstawie urządzenia, z którego pochodzi wydarzenie. Gdy hak wykryje odpowiednie zdarzenie, sprawdź flagę i zamknij zdarzenie, jeśli flaga wskazuje urządzenie skanera.

Zobacz Combining Raw Input and keyboard Hook to selectively block input from multiple keyboards na CodeProject.