Red de conocimiento informático - Conocimiento del nombre de dominio - ¡Urgente! ¡Utilice VB para escribir un programa que presione automáticamente el teclado!

¡Urgente! ¡Utilice VB para escribir un programa que presione automáticamente el teclado!

'Agregue el temporizador de control1 (intervalo = 1000) al formulario, luego copie el siguiente código en el área de código del formulario y ejecútelo para ver el efecto.

'===Código de formularios===

Opción explícita

Función de declaración privada GetAsyncKeyState Lib "user32" (ByVal vKey siempre) como entero

Dim Begin As Boolean

Const KEYEVENTF_KEYUP = & H2

Const INPUT_MOUSE = 0

Const INPUT_KEYBOARD = 1

Const INPUT_ HARDWARE = ​​​​2

Tipo privado KEYBDINPUT

wVk como entero

wScan como entero

dwFlags como largo

tiempo mientras

dwExtraInfo mientras

tipo final

tipo privado HARDWAREINPUT

uMsg mientras

wParamL como entero

wParamH como entero

p> Tipo final

Tipo privado GENERALINPUT

dwType As Long

xi(0 a 23) como byte

tipo final

función de declaración privada SendInput Lib "user32.dll" (ByVal nInputs siempre, pInputs como GENERALINPUT, ByVal cbSize As Long) As Long

Private Declare Sub CopyMemory Lib " kernel32" Alias ​​​​"RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)

Private Sub SendKey(bKey As Byte)

Atenuar GInput(0 A 1) Como GENERALINPUT

Atenuar KInput Como KEYBDINPUT

KInput.wVk = bKey

KInput.dwFlags = 0

GInput(0).dwType = INPUT_KEYBOARD

CopyMemory GInput(0).xi(0), KInput, Len(KInput)

KInput .wVk = bKey

KInput.dwFlags = KEYEVENTF_KEYUP

GInput(1).dwType = INPUT_KEYBOARD

CopyMemory GInput(1).xi( 0), KInput, Len(KInput)

Llamar a SendInput(2, GInput(0), Len(GInput(0)))

Finalizar sub

Sub privado Form_Load( )

Me.Caption = "F9 Iniciar F12 Detener"

>

End Sub

Private Sub Timer1_Timer()

Si (GetAsyncKeyState( vbKeyF9) And & H7FFF) <> 0 entonces Begin = True

If (GetAsyncKeyState( vbKeyF12) And &H7FFF) <> 0 Then Begin = False

Me.Caption = Begin

If Begin = True Then SendKey vbKeyA

Fin Sub