versiones guia español actualizar windows console raw-input message-loop

windows - guia - qgis español



¿Es posible usar la API de entrada sin procesar de Windows sin una ventana(es decir, desde una aplicación de consola)? (2)

¿Es posible usar la API de entrada sin procesar de Windows sin una ventana (es decir, desde una aplicación de consola)?

Intenté utilizar RegisterRawInputDevices, pero mis bucles de mensajes no parecen recibir ningún evento de GetMessage y, por lo tanto, simplemente ''cuelga'' allí.


¿Te refieres a RegisterRawInputDevices ?

Como la estructura RAWINPUTDEVICE requiere que especifique un HWND para recibir los mensajes WM_INPUT , no es posible hacerlo sin una ventana.

Las aplicaciones de consola pueden crear ventanas, y la ventana probablemente puede recibir WM_INPUT mientras está oculta, pero usted necesita una ventana.


De esa manera lo hice (no estoy seguro de que sea la manera más cómoda ...):

He comenzado un hilo (para la tarea de llenar mi buffer de entrada). En este hilo he creado una ventana de solo mensaje (está oculta, y puede obtener datos de entrada) con una clase de ventana apropiada.

Luego registró los dispositivos de entrada sin procesar.

Este hilo tiene su propio bucle de manejador de mensajes. En el WindowProc de la ventana-clase, he manejado las entradas.

(Para el buffer, puedes usar boost: circular_buffer, ROCKS!: D)

En esta solución, necesitas tener una ventana, pero parece que no. :)

Espero que esto pueda ayudar.