4

ウィンドウなしで(つまり、コンソールアプリケーションから)Windows Raw Input APIを使用することは可能ですか?

RegisterRawInputDevicesを使用してみましたが、メッセージループがGetMessageからイベントを取得していないようであるため、「ハング」します

4

2 に答える 2

7

そのように私はそれをしました(それが最も快適な方法かどうかはわかりません...):

スレッドを開始しました(入力バッファーを埋めるタスク用)。このスレッドでは、適切なウィンドウクラスを使用してメッセージのみのウィンドウ(非表示で、入力データを取得できます)を作成しました。

次に、生の入力デバイスを登録しました。

このスレッドには、独自のメッセージハンドラループがあります。window-classのWindowProcで、入力を処理しました。

(バッファの場合、boost:circular_bufferを使用できます。ROCKS!:D)

このソリューションでは、ウィンドウが必要でしたが、そうではないようです。:)

これがお役に立てば幸いです。

于 2011-07-25T03:48:38.980 に答える
2

どういう意味RegisterRawInputDevicesですか?

この構造では、メッセージを受信するためにRAWINPUTDEVICEを指定する必要があるため、ウィンドウなしでこれを行うことはできません。HWNDWM_INPUT

コンソールアプリケーションはウィンドウを作成でき、ウィンドウはおそらくWM_INPUT非表示のときに受信できますが、ウィンドウは必要です。

于 2011-07-23T14:44:42.887 に答える