Is it possible to use Windows Raw Input API without a window (ie from a console application)?

前端 未结 2 1103
故里飘歌
故里飘歌 2021-01-19 14:47

Is it possible to use Windows Raw Input API without a window (ie from a console application)?

I\'ve tried using RegisterRawInputDevices but my message loops doesn\'

相关标签:
2条回答
  • 2021-01-19 14:54

    That way I did it (not sure it is the most comfortable way...):

    I have started a thread (for the task of filling my input buffer). In this thread I have created a message-only window (its hidden, and can get input datas) with an appropriate window-class.

    Then registered the raw input devices.

    This thread has its own message handler loop. In the WindowProc of the window-class I've handled the inputs.

    (For buffer, You can use boost:circular_buffer, it ROCKS! :D)

    In this solution You did need have a window, but it looks like You don't. :)

    I hope this can help.

    0 讨论(0)
  • 2021-01-19 15:11

    Do you mean RegisterRawInputDevices?

    Since the RAWINPUTDEVICE structure requires you to specify an HWND to receive the WM_INPUT messages, no it's not possible to do this without a window.

    Console applications can create windows, and the window probably can receive WM_INPUT while hidden, but you do need a window.

    0 讨论(0)
提交回复
热议问题