zugreifen Ich habe eine industrielle Touchscreen-Tablet-Gerät mit Windows7 (diese one). Es hat einen integrierten RFID/Barcode Scanner und Kamera. Beide können über einen Hardware-Button gestartet werden. Ich würde gerne erkennen, wenn eine dieser Tasten gedrückt wird. Ich habe eine kleine Test-App mit einem GlobalKeyEventListener geschrieben, aber wenn eine dieser Schaltflächen gedrückt wird, wird kein Ereignis ausgelöst. Alle normalen Tastaturereignisse werden ausgelöst. Weiß jemand, ob und wie auf diese Art von Schaltflächenereignissen in Java zugegriffen werden kann? Was sollte ich noch versuchen, bevor ich dem Kunden sage, dass es nicht möglich ist. Danke.Wie kann ich eine Hardware-Taste in Java
Antwort
Es wird eine Programmierschnittstelle für das Abhören dieser Tasten geben, und es ist unwahrscheinlich, dass eine Verbindung zu einer Java Virtual Machine besteht. Ich würde ein Programm/Service/was auch immer für diese Taste hören würde schreiben schiebt, dass ich in eine Windows-DLL kompilieren könnte, und dann würde ich die DLL aus dem Java-Programm aufrufen. Windows-DLLs können auf Dinge warten, und Java-Klassen können sich selbst als Listener für Ereignisse aus den DLLs registrieren. Es ist wahrscheinlich nicht trivial, der schwierigste Teil für mich wäre das DLL-Programm selbst (kein Java dort, C oder C# oder etwas, das Microsoft mag), gefolgt von der Java Native Interface oder API oder was auch immer, um die DLL zu nennen.
Wenn Sie so weit kommen, empfehle ich ein Produkt, dessen Name ich nicht erinnere; Es erlaubt Ihnen, DLLs aufzurufen, ohne irgendeinen JNI-Code zu verwenden, d. h. früher mussten Sie C-Code mit einem sehr spezifischen Satz von Regeln schreiben, um Java aufzurufen, und dieses andere Produkt eliminiert das vollständig.
Viel Glück.
Werfen Sie auch einen Blick auf JNA. – Puce
Hängt davon ab, was der Knopf tut. Ich habe ein ähnliches Problem mit einer ziemlich trivialen Lösung gemeistert. In meinem Fall war es entweder C/ASM oder ständig nach Eigentumsänderung suchen. In meinem Fall konnte ich meine Anwendung als Teil eines Hintergrundprozesses ausführen, um ständig auf Änderungen der Eigenschaften in der Registrierung zu warten. Dies würde jedes Mal auftreten, wenn die Taste gedrückt wurde, während sich die Eigenschaft änderte, konnte ich darauf reagieren. –
- 1. Wie kann ich eine Liste vertrauenswürdiger Stammzertifikate in Java erhalten?
- 2. Wie kann ich eine Multimap in Java auf Android erstellen
- 3. Wie kann ich eine JProgressBar in Java zurücksetzen?
- 4. Wie kann ich eine Java-Datei in einem anderen aufrufen?
- 5. Wie kann ich eine Java-Klasse in Clojure umwandeln?
- 6. Wie kann ich eine Liste mit Generics in Java umwandeln?
- 7. , wie kann ich eine Klasse MessagingService in Java
- 8. Wie kann ich eine Zeichenfolge in Java korrekt formatieren?
- 9. Wie kann ich eine statische Methode in Java (jUnit4) leicht
- 10. Wie kann ich eine Download-Dateioption in JAVA Swing haben?
- 11. Wie kann ich erklären, warum eine Dateilöschung in Java fehlschlägt?
- 12. Wie kann ich eine JavaScript-Datei von Java in GWT
- 13. Wie kann ich eine Superklassenmethode in einer Unterklasse verwenden java
- 14. Wie kann ich eine NumberFormatException in Java vermeiden?
- 15. Wie kann ich eine Webseite mit Abhängigkeiten in Java herunterladen?
- 16. Wie kann ich eine Abfrage/Abrufen in JAVA?
- 17. Wie kann ich eine Scala Objektreferenz in Java übergeben?
- 18. Wie kann ich eine Java Enumeration in einen Stream umwandeln?
- 19. Wie kann ich Java umwandeln
- 20. Wie kann ich Bilder in Java überlagern?
- 21. Wie entkomme ich eine Zeichenkette in Java?
- 22. Wie erkenne ich eine Dateikategorie in Java?
- 23. Wie lösche ich eine JList in Java?
- 24. Wie durchlaufe ich eine Enum in Java?
- 25. Wie kann ich \ mit/in Java ersetzen?
- 26. wie kann ich in Java verwenden BigInteger
- 27. Wie kann ich in Java tweenen?
- 28. Wie kann ich Datentyp in Java erweitern
- 29. Wie kann ich ResultSet in Java sortieren?
- 30. Wie kann ich lua in Java einbetten?
Wenn das Ereignis nicht ausgelöst wird, wenn Sie diese bestimmte Taste drücken und wenn Sie die normale Tastaturtaste drücken, wird der Hardwareschlüssel nicht als virtueller Schlüssel registriert. Mein Vorschlag wäre, einen Ereignis-Listener zu haben, der auf die Eigenschaft schaut, die Hardware-Taste ändert, und sobald es sich ändert, können Sie darauf handeln. –