quiero hacer un codigo que envie pulsaciones a "x" ventana que no este activa con sendmessage ,pasandola un handle, como simular los eventos keydown-keyup-keypress del textbox, tengo este code:
'emisor de mensajes
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Const WM_KEYDOWN As Integer = &H100
Const WM_KEYUP As Integer = &H101
Const VK_SPACE = &H20
Private Sub cmdCommand1_Click()
Dim hwnd As Long
hwnd = Val(txtHWND) 'handle del textbox receptor
SendMessage hwnd, WM_KEYDOWN, 65, 0&
'Sleep 1000
SendMessage hwnd, WM_KEYUP, 65, 0&
End Sub
para hacer las pruebas hice otro code ya compilado donde tiene un textbox que recibira los mensajes de pulsacion y los mostrarà en otro textbox:
'receptor de mensajes
Private Sub Form_Load()
txtHwnd.Text = txt.hWnd 'muestra su handle
End Sub
Private Sub txt_KeyDown(KeyCode As Integer, Shift As Integer)
txtRes.Text = txtRes.Text & "[KeyDown] Keycode: " & KeyCode & ", Shift: " & Shift & vbCrLf
End Sub
Private Sub txt_KeyPress(KeyAscii As Integer)
txtRes.Text = txtRes.Text & "[KeyPress] KeyAscii: " & KeyAscii & vbCrLf
End Sub
Private Sub txt_KeyUp(KeyCode As Integer, Shift As Integer)
txtRes.Text = txtRes.Text & "[KeyUp] KeyCode: " & KeyCode & ", Shift: " & Shift & vbCrLf
End Sub
he corrido ambos pero no se reciben los mensajes, ademas probe agregandole una pausa con sleep pero no da resultado, que podria estar mal en este codigo?