Red de conocimiento informático - Problemas con los teléfonos móviles - Teclado simulado a nivel de controlador VB, si es posible, venga.

¡Gracias!

Teclado simulado a nivel de controlador VB, si es posible, venga.

¡Gracias!

Declarar la función MapPhysToLin Lib "WinIo.dll" (ByVal PhysAddr mientras, ByVal PhysSize mientras, ByRef PhysMemHandle) mientras

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>

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!