Estoy trabajando en mi propio software para operar el mouse en mi computadora usando C# y el kinect SDK. Realmente quiero intentar usarlo para jugar un juego como Red Alert, o algún tipo de RTS, o incluso solo para navegación general.Emulación de mouse en un programa diferente
El problema que he encontrado es que al usar un programa con un mouse diferente, como alerta roja o ir a una máquina virtual donde la integración del mouse no es compatible, el programa no contestará las llamadas que El programa C# está haciendo las llamadas System.Windows.Forms.Cursor, y mucho menos las llamadas mouse_event. Soy nuevo en la interfaz con Windows y lo que está sucediendo aquí, ¿alguien puede explicar/plantear una solución?
--UPDATE-- Como una actualización, todavía no estoy del todo seguro de lo que está sucediendo, pero parece haber encontrado una solución para la alerta roja en particular;
Como la alerta roja es un programa de gráficos bastante bajo, es trivial ejecutarlo en una máquina virtual específicamente para mí, estación de trabajo vmware con un cliente XP. Si usas el código mouse_event funciona bien, SIN EMBARGO, algo con lo que tuve problemas fue encontrar el código correcto para representar el movimiento del mouse. Parecería que la bandera MOVE mueve el mouse relativamente, lo que no quería, y la etiqueta absoluta no movió el mouse en absoluto. Es, de hecho, la de los que tienen produce movimiento absoluto en la pantalla, por lo que mi código para el movimiento del ratón y emulación clic terminó con este aspecto:
mouse_event((int)0x00000002, cursor.X, cursor.Y, 0, 0);
para hacer clic y
mouse_event((int)(0x00000001 | 0x00008000), x, y, 0 0);
para el movimiento del mouse, donde xey son las nuevas coordenadas de 65535 (el rango absoluto). ¿Es perfecto? Nah. Pero funciona por ahora. Creo que hay algo que ver con la forma en que Windows ignora ciertos programas cuando se ejecuta ra, ¿tal vez por el modo de compatibilidad? No tengo otro juego para probarlo en este momento, pero publicaré resultados con un modo no compatible en el futuro.
- Pete
(Sería no me deja publicar como una respuesta dentro de dos horas y tengo que dormir para tomar un vuelo por la mañana!)
Recomiendo usar la función 'SendInput' sobre la función obsoleta' mouse_event'. –