¿Cómo utilizar WinIO para escribir en VB?
Primero, copie los tres archivos winio a la carpeta del programa, luego cree un nuevo proyecto con VB, agregue un módulo y agregue la siguiente declaración de función winio en el módulo:
Declare Function MapPhysToLin Lib "WinIo. dll " (ByVal PhysAddr As Long, ByVal PhysSize As Long, ByRef PhysMemHandle) As Long
Declarar la función UnmapPhysicalMemory Lib "WinIo.dll" (ByVal PhysMemHandle, ByVal LinAddr) como booleana
Declarar Función GetPhysLong Lib "WinIo.dll" (ByVal PhysAddr As Long, ByRef PhysVal As Long) como booleana
Declarar la función SetPhysLong Lib "WinIo.dll" (ByVal PhysAddr As Long, ByVal PhysVal As Long) como booleana
Declarar la función GetPortVal Lib "WinIo.dll" (ByVal PortAddr como entero, ByRef PortVal mientras, ByVal bSize como byte) como booleano
Declarar la función SetPortVal Lib "WinIo.dll" " (ByVal PortAddr como SetPortVal Lib "WinIo.dll" (ByVal PortAddr como entero, ByVal PortVal mientras, ByVal bSize como byte) como booleano
Declarar función InicializarWinIo Lib "WinIo.dll" () como booleano
Declarar la función ShutdownWinIo Lib "WinIo.dll" () como booleano
Declarar la función InstallWinIoDriver Lib "WinIo.dll" (ByVal DriverPath como cadena, modo ByVal como entero) como booleano
Declarar la función RemoveWinIoDriver Lib "WinIo.dll" () como booleana
' ----------------------- ------------ -Lo anterior es la declaración de la función WINIO------------------------------ -- -----------
Declarar función MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" (ByVal wCode As Long, ByVal wMapType As Long) As Long
' ---------------------------------- Lo anterior es la declaración de función API WIN32---- ----- ---------------------------- ---
----
Agregue este proceso nuevamente:
Sub KBCWait4IBE() 'Espera a que el buffer del teclado esté vacío
Dim dwVal As Long
Hacer
GetPortVal &H64, dwVal, 1
'Esta línea significa leer un byte del puerto &H64 y poner los datos leídos en Ingrese la variable dwVal p>
'El uso de la función GetPortVal es el número de puerto GetPortVal, la variable para guardar los datos leídos y la longitud de los datos leídos
Loop While (dwVal And & H2)
End Sub
Lo anterior es un procedimiento almacenado escrito de acuerdo con la especificación KBC, que espera un período de tiempo antes de escribir datos en el puerto del teclado, que se utilizará más adelante.
Luego agregue el siguiente procedimiento almacenado para simular operaciones clave:
Public Const KBC_KEY_CMD = &H64 'Puerto de comando de teclado'
Public Const KBC_KEY_DATA = &H60 ' Puerto de datos del teclado'
Sub MyKeyDown(ByVal vKeyCoad As Long)
'Esto se usa para simular una pulsación de tecla, con el parámetro vKeyCoad pasado como código virtual para la tecla
Atenuar btScancode siempre
btScancode = MapVirtualKey( vKeyCoad, 0)
KBCWait4IBE 'Debe esperar a que el búfer del teclado esté vacío antes de enviar datos
SetPortVal KBC_KEY_CMD, & HD2, 1 'Enviar comando de escritura del teclado
'La función SetPortVal se utiliza para escribir datos en el puerto. Su uso es el siguiente Número de puerto SetPortVal, datos a escribir, datos. por escribir Longitud de datos
KBCWait4IBE
SetPortVal KBC_KEY_DATA, btScancode, 1 'Escribir información clave, claves
End Sub
Sub MyKeyUp ( ByVal vKeyCoad As Long)
'Esto se usa para simular la liberación de una clave, el parámetro vKeyCoad pasará el código virtual de la clave
Dim btScancode As Long
btScancode = MapVirtualKey(vKeyCoad, 0)
KBCWait4IBE 'Esperar a que el buffer del teclado esté vacío
SetPortVal KBC_KEY_CMD, & HD2, 1 'Enviar comando de escritura del teclado
KBCWait4IBE
SetPortVal KBC_KEY_DATA, (btScancode Or &H80), 1 'Escribe la información clave y libera la clave
End Sub
Después de definir el proceso anterior, puedes Úselo para simular la entrada del teclado.
Agregue un control de temporizador en el módulo de formulario y luego agregue el siguiente código:
Private Sub Form_Load()
If InitializeWinIo = False Then
'Use InitializeWinIo The La función carga el controlador y devuelve verdadero si tiene éxito; de lo contrario, devuelve falso
MsgBox "¡Falló la carga del controlador!"
Descargarme
Finalizar si
Temporizador1.Interval = 3000
Temporizador1.Enabled = Verdadero