Domanda

La mia applicazione utilizza un tocco di evento per acquisire eventi da tastiera e vorrei sapere da quale dispositivo (ovvero da quale tastiera) proviene ogni evento. Esiste una sorta di informazione identificativa del dispositivo insieme al CGEvent che ottiene un tocco? Ho esaminato i metodi di NSEvent e le varie chiavi CGEventField, ma nessuna sembra essere unica nel suo genere. Qualche aiuto?

È stato utile?

Soluzione

Potresti dare un'occhiata a DDHidLib, l'eccellente framework di Dave Dribin per lavorare in modo indipendente con dispositivi USB HID.

http://www.dribin.org/ Dave / blog / archives / 2007/03/19 / ddhidlib_10

(non solo sui joystick, quindi leggi di più del primo paragrafo di quel post sul blog)

Alcune delle funzionalità di DDHidLib non funzionano più con Leopard, a causa di problemi di sicurezza in Apple per quanto riguarda l'acquisizione di un dispositivo HID, ma se sei fortunato potrebbe fornirti ciò di cui hai bisogno.

Altri suggerimenti

DDHidLib è pulito, e in effetti ho riscritto parti di esso per Delicious Library 2 per le nuove API HID di Leopard e ho inviato le modifiche all'autore originale - se lo scrivi puoi ottenere il codice di esempio solo Leopard.

Sfortunatamente, le nuove API Leopard HID hanno la capacità di picco agli eventi della tastiera mentre passano, ma NON di intercettarli, quindi non è possibile creare il proprio gestore di dispositivi a livello di applicazione a meno che non sia OK che gli eventi chiave siano anche su AppKit. (Questo è il motivo per cui c'è un rumore BONKING quando si utilizza uno scanner di codici a barre USB in Delicious Library 2: apro lo scanner e leggo il codice a barre, ma la digitazione viene comunque inviata alla finestra più in alto, che non lo vuole, e emette molti segnali acustici. Sospiro.)

-Wil

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top