Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Simular eventos de teclado y raton en Juegos

Estas en el tema de Simular eventos de teclado y raton en Juegos en el foro de C/C++ en Foros del Web. Hola, muy buenas. Estoy haciendo un Macro Recorder y su función principal es grabar los eventos del teclado y los del ratón, y luego repetirlos. ...
  #1 (permalink)  
Antiguo 30/01/2013, 11:41
 
Fecha de Ingreso: enero-2013
Ubicación: España
Mensajes: 3
Antigüedad: 11 años, 9 meses
Puntos: 0
Pregunta Simular eventos de teclado y raton en Juegos

Hola, muy buenas.

Estoy haciendo un Macro Recorder y su función principal es grabar los eventos del teclado y los del ratón, y luego repetirlos.
En un principio funciona perfectamente, pero luego me di cuenta que no surge efecto en juegos que usen DirectX (creo).

De primeras, para simular los eventos uso keybd_event y mouse_event, ejemplo:

Código:
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
keybd_event(0x11, MapVirtualKey(0x11, 0), 0, 0); // 0x11 -> Tecla W
De ahí he probado todo lo que he encontrado en la red para que funcione en juegos, desde SendInput, DirectInput, MapVirtualKey, etc. Ninguna me ha funcionado.

No he probado SendMessage o PostMessage ya que debería pasarle el handle de la ventana, y yo quiero que sean eventos globales.

¿Alguno sabe alguna forma de hacer que funcione?

Muchas gracias de antemano.
  #2 (permalink)  
Antiguo 30/01/2013, 12:37
 
Fecha de Ingreso: enero-2012
Ubicación: Buenos Aires
Mensajes: 745
Antigüedad: 12 años, 10 meses
Puntos: 35
Respuesta: Simular eventos de teclado y raton en Juegos

Supongo que lo que sucede es que el juego no permite ese tipo de cosas, por su seguridad.
De ser así no hay mucho que puedas hacer, y menos si quieres que sean eventos globales. Además, tampoco creo que funcione con sendmessage.

  #3 (permalink)  
Antiguo 30/01/2013, 12:57
 
Fecha de Ingreso: enero-2013
Ubicación: España
Mensajes: 3
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Simular eventos de teclado y raton en Juegos

Cita:
Iniciado por carbon Ver Mensaje
Supongo que lo que sucede es que el juego no permite ese tipo de cosas, por su seguridad.
De ser así no hay mucho que puedas hacer, y menos si quieres que sean eventos globales. Además, tampoco creo que funcione con sendmessage.

Hola carbon, gracias por tu respuesta :)
No creo que sea eso, porque he probado en varios juegos con otro macro recorder llamado tinytask, y funciona perfectamente, pero con el mio no...
No se trata de un juego en sí, hablo de juegos en general. Mi objetivo sería que el macro recorder funcione bien sea cual sea la necesidad del usuario (macros, juegos, etc).
Debe haber alguna forma, pero por más que busque no consigo dar con ella.
  #4 (permalink)  
Antiguo 30/01/2013, 21:03
 
Fecha de Ingreso: enero-2012
Ubicación: Buenos Aires
Mensajes: 745
Antigüedad: 12 años, 10 meses
Puntos: 35
Respuesta: Simular eventos de teclado y raton en Juegos

Entonces creo que podrías usar SendMessage, junto con otras funciones del API como WindowFromPoint para obtener el handle a partir de la posición del mouse y así hacerlo útil de manera global.

Espero que te sirva.


Etiquetas: eventos, raton, teclado
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:00.