Frage

Meine Anwendung verwendet ein Ereignis tippt auf Tastaturereignisse zu erfassen, und ich möchte wissen, welches Gerät (das heißt, die Tastatur) jedes Ereignis herkommt. Gibt es eine Art von Gerät identifizierenden Informationen zusammen mit dem CGEvent, dass ein Hahn bekommt? Ich habe bei NSEvent Methoden sieht, und die verschiedenen CGEventField Tasten, aber keiner von ihnen scheint geräte eindeutig zu sein. Jede Hilfe?

War es hilfreich?

Lösung

Sie können einen Blick auf DDHidLib, Dave Dribin ausgezeichneten Rahmen für die Arbeit mit USB-HID-Geräte unabhängig nehmen wollen.

http://www.dribin.org/ dave / Blog / Archiv / 2007/03/19 / ddhidlib_10

(nicht nur über Joysticks, so lesen Sie mehr als der erste Absatz dieser Blog-Post)

Einige der Funktionalität von DDHidLib funktioniert nicht mehr unter Leopard, aufgrund einiger Sicherheitsbedenken bei Apple in Bezug auf ein HID-Gerät aufnehmen, aber wenn Sie Glück haben, es könnte Ihnen, was Sie brauchen.

Andere Tipps

DDHidLib ist ordentlich, und in der Tat habe ich neu geschrieben Teile davon für Delicious Library 2 für neueren HID APIs Leopard und legte die Änderungen zurück an den ursprünglichen Autor - wenn Sie ihn schreiben Sie den Leopard-nur Beispielcode erhalten.

Leider HID die neue Leopard-APIs die Fähigkeit, auf Tastaturereignisse Spitze haben, wie sie vorübergehen, aber nicht, um sie abzufangen, so können Sie Ihre eigenen Anwendungsebene Gerätesekundanten nicht bauen, es sei denn, es ist OK, dass die wichtigsten Ereignisse geht aber auch auf die AppKit, wie gut. (Aus diesem Grund ist ein Bonking Lärm gibt es, wenn Sie einen USB-Barcode-Scanner in Delicious Library 2 verwenden - ich Peak bei dem Scanner und lesen Sie den Barcode, aber dann wird die Eingabe noch an das oberste Fenster gesendet, die es nicht wollen, und piept viel. Seufz.)

-Wil

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top