Teclado simulado a nivel de controlador VB, si es posible, venga.
¡Gracias!
Declarar la función UnmapPhysicalMemory Lib "WinIo.dll" (ByVal PhysMemHandle, ByVal LinAddr) como booleana
Declarar la 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 booleano
Declarar la función GetPortVal Lib "WinIo.dll" () como booleano
Declarar la función ShutdownWinIo Lib "WinIo.dll" () como booleano p> p>
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 booleano
' ------------------------------------ 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--------------------------------- -------- ----------
Const pública KBC_KEY_CMD = &H64 'Puerto de comando del teclado
Const pública KBC_KEY_DATA = &H60 'Teclado puerto de datos
Sub KBCWait4IBE() 'Esperar a que el búfer del teclado esté vacío
Dim dwVal As Long
Hacer
GetPortVal &H64 , dwVal, 1
'Esta línea lee un byte del puerto & y lee la longitud
'Loop While (dwVal As Long
Dim dwVal As Long
Hacer
'Wa
para que el buffer del teclado esté vacío
Dim dwVal As Long
Dim dwVal As Long p> Loop While (dwVal And & H2)
End Sub
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
Dim btScancode As Long
btScancode = MapVirtualKey(vKeyCoad, 0)
KBCWait4IBE 'Debe esperar a que el buffer 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 número de puerto SetPortVal, los datos que se escribirán y la longitud de los datos que se escribirán.
KBCWait4IBE
SetPortVal KBC_KEY_DATA, &.btScancode, 1 'Escribe la información de la clave, presiona la tecla
End Sub
Sub MyKeyUp( ByVal vKeyCoad As Long)
'Esto se usa para simular la liberación de una clave, el parámetro vKeyCoad se pasará como 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 un comando de escritura del teclado
KBCWait4IBE
p>SetPortVal KBC_KEY_DATA, (btScancode Or &H80), 1 'Escribe la información clave y suelta la clave
End Sub
Lo anterior ¡El código debe colocarse en el módulo, no en la ventana!
Esta vez 100 % sin texto en rojo, ¡puntos de bonificación!