keybd_event es un proceso API para simular acciones del teclado, es decir, solo puede simular acciones del teclado en la ventana actualmente activada. Si desea enviar información del teclado a una ventana inactiva, solo puede usar otra API. A continuación se muestra mi El programa simula la ejecución de un programa de calculadora, simula la generación de caracteres en el cuadro EDITAR de la calculadora y simula todo el proceso de pulsación de teclas de 5+7=12
Crea un nuevo formulario. agregue un comando y un cuadro de texto y pegue el siguiente código
Función de declaración privada FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Función de declaración privada GetDlgItem Lib "user32" (ByVal hDlg As Long, ByVal nIDDlgItem As Long) Mientras
Función de declaración privada SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long , ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Any) As Long
Función de declaración privada PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Función de declaración privada ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Función de declaración privada SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
Const privada WM_SETTEXT = &HC
Const privada WM_KEYUP = &H101
Const privada WM_KEYDOWN = &H100
Const privada SW_SHOWNORMAL = 1
Subcomando privado1_Click()
Estático i como entero
Atenuar hwn mientras
Atenuar twn siempre
Si i = 0 entonces 'Ejecutar calculadora
Text1.Text = "Ejecutar calculadora"
hwn = FindWindow(vbNullString, " Calculator") 'El nombre de la ventana de búsqueda es 'Calculator' handle
Si hwn = 0 Entonces
Shell "calc.exe"
De lo contrario
p>
ShowWindow hwn, SW_SHOWNORMAL 'Activar ventana
SetForegroundWindow hwn
Fin si
Fin si
Si i = 1 Luego 'Envía el texto '5ZqweSC' al cuadro de texto de la calculadora'
Text1.Text = "Envía el texto '5ZqweSC' al cuadro de texto de la calculadora"
hwn = FindWindow(vbNullString , "Calcular dispositivo")
twn = GetDlgItem(hwn, 403)
SendMessage twn, WM_SETTEXT, 0, "5ZqweSC"
End If
Si i = 2 Entonces 'La Calculadora simula la tecla Esc
Text1.Text = "La Calculadora simula la tecla Esc"
hwn = FindWindow(vbNullString, "Calculator") p>
PostMessage hwn, WM_KEYDOWN, vbKeyEscape, 0
End If
Si i = 3 Then 'Calculadora simula la clave 5
Text1. Text = "Calculadora simulada clave 5"
hwn = FindWindow(vbNullString, "Calculator")
PostMessage hwn, WM_KEYDOWN, vbKey5, 0
End If
Si i = 4 Entonces 'Teclas de simulación de calculadora+
Text1.Text = "Teclas de simulación de calculadora+"
hwn = FindWindow(vbNullString, "Calculadora") p>
PostMessage hwn, WM_KEYDOWN, vbKeyAdd, 0
Finalizar si
Si i = 5 Entonces 'La calculadora simula la tecla 7
Texto1.Texto = "Clave de simulación de calculadora 7"
hwn = FindWindow(vbNullString, "Calculator")
PostMessage hwn, WM_KEYDOWN, vbKey7, 0
End If
Si i = 6 Entonces 'La calculadora simula la tecla Intro
Text1.Text = "La calculadora simula la tecla Intro"
hwn = FindWindow(vbNullString, "Calculadora") p>
PostMessage hwn, WM_KEYDOWN, vbKeyReturn, 0
Fin si
i = i
+ 1
Si i = 7 Entonces i = 0
Fin Sub