La Red de Conocimientos Pedagógicos - Currículum vitae - Traducción de Delfos

Traducción de Delfos

La declaración es la siguiente:

Declarar la función MapVirtualKey Lib "usuario 32" alias "MapVirtualKeyA" (ByVal wCode es Long, ByVal wMapType es Long) como Long

El parámetro wCode indica el código a convertir, el parámetro wmatype indica qué convertir y por qué. Si el código virtual se convierte en código de escaneo, wmatype se establece en 0, si el código de escaneo virtual se convierte en código virtual, wmatype se establece en 1, si el código virtual se convierte en código ASCII, wmatype se establece en 2. Creo que con estos podemos construir el parámetro lParam del evento de teclado. La siguiente es una función que construye parámetros lParam:

Declarar la función MapVirtualKey Lib "usuario 32" alias "MapVirtualKeyA" (ByVal wCode es Long, ByVal wMapType es Long) como una función Long

MakeKeyLparam (la misma longitud que ByVal VirtualKey, la misma longitud que la bandera ByVal)

El parámetro VirtualKey representa el código virtual de la tecla y la bandera representa si la tecla se presiona o suelta, representado por dos constantes WM_KEYDOWN y WM_KEYUP.

Dim s como una cadena

Los bits 24-31 de Dim Firstbyte se utilizan como parámetro lparam de la cadena.

Si flag = WM_KEYDOWN Entonces 'Si presionas la tecla.

Firstbyte = "00 "

Otros

Firstbyte = "C0 " 'Si es una clave de liberación.

Terminará si...

El código de escaneo tenue tiene la misma longitud

Obtenga el código de escaneo de la llave

escaneo code = MapVirtualKey(VirtualKey, 0)

Dim Secondbyte As String 'Los 16-23 bits del parámetro lparam son los códigos de escaneo de clave virtual.

segundo byte = Derecha(" 00 " & hexadecimal (código de escaneo), 2)

s = primer byte. El byte de segundos y "0001" '0001' son los bits 0 a 15 del parámetro lparam, es decir, el número de transmisiones y otra información extendida.

MakeKeyLparam = Val(" & H " & amps)

Finalizar función

Si esta función se llama así, por ejemplo, presionando la tecla A, Entonces lparam = makekeylparam (VK_A, WM_Keydown), muy simple. Vale la pena señalar que incluso si establece el valor del parámetro lParam al enviar el mensaje, el sistema aún puede restablecer el parámetro según la situación al entregar el mensaje, por lo que el valor de lParam en el mensaje recibido por el programa de destino puede ser diferente del valor cuando lo enviaste diferente. Entonces, si eres vago, configúralo en 0, lo que no afectará a la mayoría de los programas, jaja.

Bien, hemos completado el trabajo anterior, ahora podemos enviar mensajes de teclado al programa de destino. Primero, obtenga el identificador del control desde el cual el programa de destino acepta este mensaje. Por ejemplo, si el identificador de destino es 12345, entonces presionamos y soltamos la tecla A para simular el objetivo, así: (Para simplificar, el parámetro lParam no se construye y solo se pasa 0).

Correo 12345, WM_KEYDOWN, VK_A, 0 & amp presiona la tecla a.

Información postal 12345, WM_UP, VK_A, 0 & amp liberar una clave

Lo encontré en línea.