ウィンドウなしで(つまり、コンソールアプリケーションから)Windows Raw Input APIを使用することは可能ですか?
RegisterRawInputDevicesを使用してみましたが、メッセージループがGetMessageからイベントを取得していないようであるため、「ハング」します。
ウィンドウなしで(つまり、コンソールアプリケーションから)Windows Raw Input APIを使用することは可能ですか?
RegisterRawInputDevicesを使用してみましたが、メッセージループがGetMessageからイベントを取得していないようであるため、「ハング」します。
そのように私はそれをしました(それが最も快適な方法かどうかはわかりません...):
スレッドを開始しました(入力バッファーを埋めるタスク用)。このスレッドでは、適切なウィンドウクラスを使用してメッセージのみのウィンドウ(非表示で、入力データを取得できます)を作成しました。
次に、生の入力デバイスを登録しました。
このスレッドには、独自のメッセージハンドラループがあります。window-classのWindowProcで、入力を処理しました。
(バッファの場合、boost:circular_bufferを使用できます。ROCKS!:D)
このソリューションでは、ウィンドウが必要でしたが、そうではないようです。:)
これがお役に立てば幸いです。
どういう意味RegisterRawInputDevices
ですか?
この構造では、メッセージを受信するためにRAWINPUTDEVICE
を指定する必要があるため、ウィンドウなしでこれを行うことはできません。HWND
WM_INPUT
コンソールアプリケーションはウィンドウを作成でき、ウィンドウはおそらくWM_INPUT
非表示のときに受信できますが、ウィンドウは必要です。