![]() |
Simular en una aplicacion con graficos una pulsacion de teclado Despues de intentarlo con vb 6 sin exito decidi probarlo en VB .NET.. y nada... me explico: Quiero lanzar una pulsacion simulada de teclado en un juego, he probado el tipico SendKeys.Send(tecla) que se envia mediante un timer cada X segundos. Funciona bien en aplicaciones simples de windows, pero en cuanto entro en un juego deja de funcionar... mejor dicho, el programa sigue ejecutandose de fondo (ademas de mandar la pulsacion crea un log que funciona perfectamente) pero no simula la pulsacion de la tecla en la ventana de juego. Ya que el timer funciona bien, le sigo echando la culpa al SendKeys. En VB 6 como ya dije probe varias API y alguna funcion de mas bajo nivel, pero seguia sin responder. Si alguien pudiese encaminarme para saber el problema le estaria muy agradecido :D |
Tengo entendido que SendKeys funciona solo con el formulario donde se encuentra esta instruccion. Es muy incomodo para usarlo con otras aplicaciones. Si deseas enviar pulsaciones de teclas a otras aplicaciones, como juegos o programas, tendrás que hacer uso de una API. Esa api es keybd_event Y se declara de la siguiente manera. Código: Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)Código: Const KEYEVENTF_KEYUP = &H2 'simula un suelte de la teclaCódigo: keybd_event vbKeyA, 0, 0, 0 ' Presiona la tecla A Bueno, espero que este codigo te haya servido ^^ |
Me suena muchisimo esa API, quiza ya la probe en vb 6 pero con mi memoria vete a saber... De hecho los accesos a teclas vbKey son de la version 6, en NET ya se llega a traves del enumerador "keys", pero no importa, voy a probarla y ahora te cuento como ha salido, muchisimas gracias :D:D |
Mmm me temo que no va... funciona bien pero en cuanto entro en algun juego (aunque el programa continue de fondo porque los logs se crean bien) lo que es el envio de las teclas se pierde por los abismos del ordenador. La verdad que no lo entiendo, es como si el juego se agarrase al teclado como una garrapata y no se lo dejase a ninguna aplicacion :molesto: |
| La zona horaria es GMT -6. Ahora son las 10:14. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.