una teclado tecla simular pulsaciones presionada evento detectar boton asignar c# events mouse keyboard-events kinect

teclado - sendkeys c#



Enviar eventos de teclado a otra aplicaciĆ³n en C#que no maneja eventos de Windows (5)

Esta es una solución rápida y fácil que estoy usando. Funciona bien.

InputSimulator

esta es mi situación: estamos escribiendo una aplicación que debe transformar las coordenadas de Microsoft Kinect en eventos de teclado y mouse.

Cuando necesitamos tomar el control del mouse, todo funciona según lo previsto en CUALQUIER tipo de aplicación. El problema surge cuando tenemos que enviar eventos de teclado (como pulsar la tecla o subir la tecla) a aplicaciones que no manejan eventos de Windows, como juegos, por ejemplo.

Probamos la clase SendKeys del .NET Framework, y solo funciona con aplicaciones de Windows. Cuando la aplicación es un juego como Half-Life o Doom, no podemos obtener el mismo efecto. Entonces, aquí está mi pregunta: ¿cómo podemos enviar efectivamente eventos de teclado a estas otras aplicaciones?



Necesitas simular la entrada usando SendInput . SendMessage y SendKeys tienden a funcionar al nivel de los mensajes de Windows, pero las aplicaciones DirectX no ejecutan un bucle tradicional de mensajes.

Hay una página en PInvoke.NET , pero debo confesar que no he intentado usarla.

Vea también este hilo en el sitio GameDev.net, donde alguien ha trabajado con algunos de los problemas de "dentición" que pueden encontrarse interactuando específicamente con una aplicación basada en DirectInput.


Desafortunadamente, DirectX no tiene una función de enganche incorporada; sin embargo, hay algunas bibliotecas (esta es una .Net envoltura sobre otra) que pueden hacerlo. También deberá buscar en XInput, que desaprueba DirectInput.