-1

私は小さなプロジェクトに取り組んでいます。数字パッドから入力を取得し、押されたキーに基づいてマクロを実行する必要があります。ただし、特に数字パッドから読み取るのに苦労しています。stdinキー入力から読み取るだけです。実際には、テンキー USB デバイスからの生データ出力が必要です。テンキーはキーボードとは別のデバイスです。

私の調査では、 を使用してデバイス ドライバを作成する必要があることが示されていますがWindows DDK、これは私にはあまり意味がありません。別の USB 入力デバイスをキーボードとして選択したい - キーボードとして引き続き使用するため、新しいドライバーは必要ありません。入力ストリームのスコープを USB デバイスだけに変更するだけです。

また、いくつかの重要な情報が欠落している可能性があります。それで、これを行う簡単な方法はありますか?

4

1 に答える 1

2

適切なデバイスから RAW USB イベントを読み取る必要があります。MSDN の「 Raw Input」または「Human Interface Devices Reference」(Windows Driver Kit の一部) を読んで、そのコードを自分で書くことができます。

または、 read Raw USB Input on Windowsで説明されているように、libusbを使用することもできます。大まかなアイデアは次のとおりです。

  • 経由でデバイスのリストを取得しますlibusb_get_device_list()
  • で興味のあるキーボードを見つけ、ファイルをlibusb_get_device_descriptor()チェックしexamples/listdevs.cてその方法の手がかりを見つけてください。
  • 経由でデバイスを開きますlibusb_open()
  • 魔法をかけてください(イベントのポーリングが合うと思います)
  • そして..最後にデバイスを閉じます

補足: libusb は、VS2012 Express + WDK8 を使用して Windows8 上に完璧に構築されています。

于 2013-01-09T09:08:18.790 に答える