Ver Mensaje Individual
  #2 (permalink)  
Antiguo 04/05/2010, 11:06
Avatar de totigo
totigo
 
Fecha de Ingreso: marzo-2007
Ubicación: America
Mensajes: 103
Antigüedad: 17 años, 2 meses
Puntos: 3
Sonrisa Respuesta: Como enviar pulsaciones de teclas con Sendmessage (VB)

Para ello debes hacer uso de la API SendMessageBynum .

La cual recibe el num ascii, en este ejemplo estoy enviando el mensaje "hola mundo" a un cuadro de texto y seguidamente envio la tecla ENTER (13) a ese cuadro de texto.

Analiza el ejemplo, cualquier duda estaré atento!

Código vb:
Ver original
  1. Private Declare Function SendMessage Lib "user32" Alias _
  2.         "SendMessageA" (ByVal hwnd As Long, ByVal wMsg _
  3.         As Long, ByVal wParam As Long, lParam As Any) As Long
  4.  
  5. Private Declare Function SendMessageBynum Lib "user32" Alias _
  6.         "SendMessageA" (ByVal hwnd As Long, ByVal wMsg _
  7.         As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  8.  
  9. Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" ( _
  10.     ByVal hWnd1 As Long, _
  11.     ByVal hWnd2 As Long, _
  12.     ByVal lpsz1 As String, _
  13.     ByVal lpsz2 As String) As Long
  14.  
  15. Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _
  16.     ByVal lpClassName As String, _
  17.     ByVal lpWindowName As String) As Long
  18.  
  19. ' La constante:
  20. Private Const WM_CHAR = &H102
  21. Private Const WM_SETTEXT = &HC
  22.  
  23. ' Hwnd de la ventana
  24. Dim ret As Long
  25. Dim retV  As Long
  26.  
  27.  
  28. Private Sub Command1_Click()
  29.     retV = FindWindow("nomVentana", vbNullString)
  30.     ret = FindWindowEx(retV, 0, "nomControlTextBox", vbNullString)
  31.     Call SendMessage(ret, WM_SETTEXT, 0, ByVal CStr("hola mundo..."))
  32.     Call SendMessageBynum(ret, WM_CHAR, 13, ByVal 0)
  33. End Sub

Última edición por totigo; 04/05/2010 a las 11:12