1

私のアプリケーションは、イベント タップを使用してキーボード イベントをキャプチャします。各イベントがどのデバイス (つまり、どのキーボード) から発生したかを知りたいです。タップが取得する CGEvent とともに、デバイスを識別する情報のようなものはありますか? NSEvent のメソッドとさまざまな CGEventField キーを見てきましたが、どれもデバイス固有ではないようです。何か助けはありますか?

4

2 に答える 2

6

USB HID デバイスを個別に操作するための Dave Dribin の優れたフレームワークである DDHidLib を参照してください。

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

(ジョイスティックについてだけではないので、そのブログ投稿の最初の段落以上を読んでください)

DDHidLib の一部の機能は、HID デバイスのキャプチャに関する Apple のセキュリティ上の懸念により、Leopard では動作しなくなりましたが、運が良ければ、必要なものが提供される可能性があります。

于 2008-10-21T22:25:08.840 に答える
3

DDHidLib はきちんとしたもので、実際、Leopard の新しい HID API 用の Delicious Library 2 用にその一部を書き直し、元の作成者に変更内容を提出しました。作成者に書き込めば、Leopard 専用のサンプル コードを入手できます。

残念なことに、新しい Leopard HID API には、通過するキーボード イベントをピークにする機能がありますが、傍受することはできません。そのため、キー イベントが発生しても問題がない限り、アプリケーション レベルのデバイス ハンドラを独自に構築することはできません。 AppKitも同様です。(これが、Delicious Library 2 で USB バーコード スキャナーを使用するときにボンキング ノイズが発生する理由です。スキャナーにピークを合わせてバーコードを読み取りますが、入力は依然として最上位のウィンドウに送信されます。ビープ音がたくさん。ため息。)

-ウィル

于 2008-10-23T01:12:06.770 に答える