1

現在、シリアル ポートから読み取る 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 から十分な入力を受信した場合)。

4

2 に答える 2

1

もっと良い選択肢があると思いますが、

uesr32.dll を使用すると、このタスクを簡単に実行できます。

このリンクを参照してください

この機能を使用できるようになります

Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As Long) As Integer

この dll は、Windows でユーザーが必要とするものをすべて処理します。古い投稿を参照してください。

これが役立つことを願っています..

于 2013-07-09T04:23:30.040 に答える