elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  [SOLUCIONADO] Utilizar keybd_event para simular "@" "\" "/" y otros...
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [SOLUCIONADO] Utilizar keybd_event para simular "@" "\" "/" y otros...  (Leído 14,014 veces)
yovaninu


Desconectado Desconectado

Mensajes: 349



Ver Perfil
[SOLUCIONADO] Utilizar keybd_event para simular "@" "\" "/" y otros...
« en: 19 Noviembre 2013, 05:49 am »

hola, he estado usando la api keybd_event para simular presionar teclas normales y otras pero para realizar una simulacion de combinacion de teclas como por ej. Alt+64 no me funciona, lo he estado haciendo asi:

Código:
Public Const Alt_iz = &HA4

Código:
    
    Call keybd_event(Alt_iz, 0, 0, 0) 'presionamos Alt Izquierdo
    Pulsar_Tecla (vbKeyNumpad6) 'presionamos 6 numerico
    Pulsar_Tecla (vbKeyNumpad4) 'presionamos 4 numerico
    Call keybd_event(Alt_iz, 0, KEYEVENTF_KEYUP, 0) 'soltamos la tecla Alt Izquierdo

La funcion Pulsar_Tecla es simple:

Código:
Sub Pulsar_Tecla(Tecla As Long)
    Call keybd_event(Tecla, 0, 0, 0)
    Call keybd_event(Tecla, 0, KEYEVENTF_KEYUP, 0)
End Sub

Y no funciona, alguien podria echarme una mano, y con otros simbolos? como por ej. el "/" o el "\".

Desde ya gracias por su ayuda.




« Última modificación: 23 Noviembre 2013, 06:07 am por yovaninu » En línea

Danyfirex


Desconectado Desconectado

Mensajes: 493


My Dear Mizuho


Ver Perfil
Re: [AYUDA] Utilizar keybd_event para simular "@" "\" "/" y otros...
« Respuesta #1 en: 19 Noviembre 2013, 20:50 pm »


podrías usar sendkeys

SendKeys "%" & Chr(64)


saludos


En línea

yovaninu


Desconectado Desconectado

Mensajes: 349



Ver Perfil
Re: [AYUDA] Utilizar keybd_event para simular "@" "\" "/" y otros...
« Respuesta #2 en: 20 Noviembre 2013, 01:27 am »

SendKeys no me sirve, aún así desearia hacerlo con la API, he estado buscando pero no hay mucho sobre lo que pido, Gracias de todas formas.
En línea

Danyfirex


Desconectado Desconectado

Mensajes: 493


My Dear Mizuho


Ver Perfil
Re: [AYUDA] Utilizar keybd_event para simular "@" "\" "/" y otros...
« Respuesta #3 en: 20 Noviembre 2013, 05:01 am »

Pues como dices no hay mucho sobre lo que pides solo MSDN  :rolleyes:  :laugh:


Bueno me puse a leer un poco en MSDN y te arme un ejemplo:


Código
  1. 'Constantes para las teclas y otros
  2.  
  3. Const KEYEVENTF_KEYUP = &H2
  4. Const VK_LMENU = &HA4   'Alt Izquierdo
  5. Const VK_RMENU = &HA5   'Alt Derecho
  6. Const VK_NUMPAD6 = &H66 '6
  7. Const VK_NUMPAD4 = &H64 '4
  8. Const VK_LSHIFT = &HA0  'Shift Izquierdo
  9. Const VK_NUM7 = &H37    'Numero 7  Barra de división "/"
  10. Const VK_OEM_5 = &HDC   'Barra inversa \
  11.  
  12.  
  13. Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
  14. Private Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyW" (ByVal wCode As Long, ByVal wMapType As Long) As Long
  15.  
  16.  
  17.  
  18.  
  19.  
  20. Private Sub Command1_Click()
  21. Text1.SetFocus
  22.  
  23. 'Enviar @ Arroba
  24. Call keybd_event(VK_LMENU, MapVirtualKey(VK_LMENU, 0), 0, 0)
  25. Call keybd_event(VK_NUMPAD6, MapVirtualKey(VK_NUMPAD6, 0), 0, 0)
  26. Call keybd_event(VK_NUMPAD4, MapVirtualKey(VK_NUMPAD4, 0), 0, 0)
  27. Call keybd_event(VK_NUMPAD6, MapVirtualKey(VK_NUMPAD6, 0), KEYEVENTF_KEYUP, 0)
  28. Call keybd_event(VK_NUMPAD4, MapVirtualKey(VK_NUMPAD4, 0), KEYEVENTF_KEYUP, 0)
  29. Call keybd_event(VK_LMENU, MapVirtualKey(VK_LMENU, 0), KEYEVENTF_KEYUP, 0)
  30.  
  31.  
  32. 'Enviar / Barra de division
  33. Call keybd_event(VK_LSHIFT, MapVirtualKey(VK_LSHIFT, 0), 0, 0)
  34. Call keybd_event(VK_NUM7, MapVirtualKey(VK_NUM7, 0), 0, 0)
  35. Call keybd_event(VK_NUM7, MapVirtualKey(VK_NUM7, 0), KEYEVENTF_KEYUP, 0)
  36. Call keybd_event(VK_LSHIFT, MapVirtualKey(VK_LSHIFT, 0), KEYEVENTF_KEYUP, 0)
  37.  
  38.  
  39. 'Enviar \ Barra inversa
  40. Call keybd_event(VK_RMENU, MapVirtualKey(VK_RMENU, 0), 0, 0)
  41. Call keybd_event(VK_OEM_5, MapVirtualKey(VK_OEM_5, 0), 0, 0)
  42. Call keybd_event(VK_OEM_5, MapVirtualKey(VK_OEM_5, 0), KEYEVENTF_KEYUP, 0)
  43. Call keybd_event(VK_RMENU, MapVirtualKey(VK_RMENU, 0), KEYEVENTF_KEYUP, 0)
  44.  
  45.  
  46. End Sub
  47.  


Espero te sriva de algo. te dejo solo enviando "@"  "\"  "/" es cuestion de ver las VirtualKey correspondiente para armas los otros. saludos
En línea

yovaninu


Desconectado Desconectado

Mensajes: 349



Ver Perfil
Re: [AYUDA] Utilizar keybd_event para simular "@" "\" "/" y otros...
« Respuesta #4 en: 23 Noviembre 2013, 06:06 am »

Excelente Dany, tenia la sospecha de que debia indagar mas a cerca de MapVirtualKey pero la falta de tiempo me desanimó.

Me ha servido de mucho, una gran solución. Saludos y exitos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines