Windows Raw Input APIをウィンドウなしで(つまりコンソールアプリケーションから)使用できますか?ウィンドウなしで(つまりコンソールアプリケーションから)Windows Raw Input APIを使用することはできますか?
私はRegisterRawInputDevicesを使用しようとしましたが、私のメッセージループは、GetMessageのイベントをで取得できないようです。
Windows Raw Input APIをウィンドウなしで(つまりコンソールアプリケーションから)使用できますか?ウィンドウなしで(つまりコンソールアプリケーションから)Windows Raw Input APIを使用することはできますか?
私はRegisterRawInputDevicesを使用しようとしましたが、私のメッセージループは、GetMessageのイベントをで取得できないようです。
RegisterRawInputDevices
を意味しますか?
WM_INPUT
メッセージを受信するには、RAWINPUTDEVICE
構造体にHWND
を指定する必要があるため、ウィンドウなしでこれを行うことはできません。
コンソールアプリケーションではウィンドウを作成できますが、ウィンドウにはおそらくWM_INPUT
が表示されますが、ウィンドウは必要です。
それ、私はそれをやった方法(わからない、それは最も快適な方法です...):
私は(私の入力バッファを充填する作業のための)スレッドを開始しました。 このスレッドでは、適切なウィンドウクラスを持つメッセージ専用ウィンドウ(その隠された入力データを得ることができます)を作成しました。
次に、生の入力デバイスを登録しました。
このスレッドには独自のメッセージハンドラループがあります。 ウィンドウクラスのWindowProcでは入力を処理しました。
(バッファのために、あなたはブーストを使用することができます:circular_bufferは、それがROCKS!:D)あなたが必要でした。このソリューションでは
は、ウィンドウを持っていますが、あなたがいないように見えます。 :)
私はこれが助けてくれることを願っています。
良い提案。 – jnm2
私はこのためのサンプルコードがないと思いますか? –
はい、これが私の意図です。 RAWINPUTDEVICEはhwndTargetがアクティブなウィンドウの次にNULLのため動作するようですが、WM_INPUTメッセージを取得するにはWindowProcが必要です。 –
@Adam:NULLの 'hwndTarget'が許されるかもしれませんが、それは"スレッドに送る "という意味ではありません。 'PostMessage'。ウィンドウを持っていなければ、アクティブなウィンドウがなく、 'WM_INPUT'メッセージは出ません。 –