現在、シリアル ポートから読み取る ActiveX DLL があります。ここで、USB デバイスからの入力を受け入れたいと考えています。
USB デバイスは、標準のヒューマン インターフェイス デバイスとして機能します。つまり、メモ帳を開くと、デバイスの出力がキーボードで入力されたかのようにメモ帳に表示されます。
通常、私は Key Up/Down イベントをキャプチャしますが、そのためのフォームが必要だと思いますが、私の DLL にはフォームがありません。
その入力をどのようにキャプチャできますか?
[更新] http://us.generation-nt.com/answer/anyone-know-how-read-keyboard-input-within-an-activex-dll-help-7934442.html#を見つけました。それは、しかし、そこにあるコードはAddressOf
、.BAS ファイルでのみ使用できる演算子を使用するため、DLL .CLS では使用できないため、そのままでは機能しません。
システム全体のフックを探しているのか、アプリケーション固有のフックを探しているのかさえわかりません。
うーん、http: //www.xtremevbtalk.com/showthread.php?t=77216 は、「VB でグローバルな WH_KEYBOARD フックを実装することはできません。実行中のすべてのアプリケーションのアドレス空間。」
[Upper date] フォームを 1x1 ピクセルにしGetTheData
て非表示にし、フォームをモーダルに表示してデータを収集して返す機能を持たせることができるかもしれません。入力を返すフォームを閉じます。
それはうまくいくでしょうか?誰かが実用的な例を投稿した場合、私は報奨金を授与します (フォームがタスク バーに表示されず、閉じるボタンがないことをお勧めします。ユーザーはそれを認識したり、閉じたりすることはできません。フォームは自動的に閉じる必要があります。 USB 接続の HDI から十分な入力を受信した場合)。