2013-03-26 11 views
6

Mam przemysłowe tablety z ekranem dotykowym z systemem Windows 7 (to one). Ma zintegrowany skaner i aparat RFID/kodów kreskowych. Oba można uruchomić za pomocą przycisku sprzętowego. Chciałbym rozpoznać, kiedy naciśnięty zostanie jeden z tych przycisków. Napisałem małą aplikację testową z GlobalKeyEventListener, ale żadne zdarzenie nie jest uruchamiane, gdy naciśnięty zostanie jeden z tych przycisków. Wszystkie normalne zdarzenia klawiatury są uruchamiane. Czy ktoś wie, czy i jak tego rodzaju zdarzenia przycisku są dostępne w Javie? Co jeszcze powinienem spróbować przed powiedzeniem klientowi, że nie jest to możliwe. Dzięki.Jak uzyskać dostęp do przycisku sprzętowego w Javie

+0

Jeśli zdarzenie nie zostanie wywołane po naciśnięciu tego określonego klawisza i zostanie uruchomione po naciśnięciu normalnego klawisza klawiatury, klucz sprzętowy nie zostanie zarejestrowany jako klucz wirtualny. Moja sugestia to posiadanie detektora zdarzeń, który patrzy na właściwość, którą zmienia przycisk sprzętowy, a kiedy to się zmieni, możesz na nim działać. –

Odpowiedz

1

Pojawi się interfejs programowania do słuchania tych przycisków i jest mało prawdopodobne, aby połączenie z wbudowaną wirtualną maszyną Java. Zajmę się pisaniem programu/usługi/cokolwiek, co słuchało tego przycisku pcha, że ​​mógłbym skompilować do biblioteki DLL systemu Windows, a następnie wywołać DLL z programu Java. DLL systemu Windows może nasłuchiwać rzeczy, a klasy Java mogą rejestrować się jako detektory zdarzeń z bibliotek DLL. Nie jest to prawdopodobnie trywialne, najtrudniejszą częścią dla mnie byłby sam program DLL (bez java tam, C lub C# lub coś, co lubi Microsoft), a następnie Java Native Interface lub API lub cokolwiek, co można nazwać DLL.

Jeśli zajdziesz tak daleko, polecam produkt, którego nazwy nie pamiętam; pozwala na wywoływanie bibliotek DLL bez użycia w ogóle kodu JNI "kleju", tzn. kiedyś trzeba było pisać kod C z bardzo specyficznym zbiorem reguł do wywoływania z Javy, a ten inny produkt ładnie eliminuje to całkowicie.

Powodzenia.

+0

Zobacz także JNA. – Puce

+0

Zależy od tego, co robi przycisk. Z podobnym problemem poradziłem sobie z całkiem banalnym rozwiązaniem. W moim przypadku był to C/ASM lub ciągle szukam zmiany własności. W moim przypadku udało mi się uruchomić moją aplikację w ramach procesu w tle, aby stale nasłuchiwać zmian właściwości w rejestrze. Zdarzy się to za każdym razem, gdy przycisk zostanie wciśnięty, gdy właściwość zmieni się i jestem w stanie na nim działać. –

Powiązane problemy