Colección de citas famosas - Slogan de motivación - Problema de pulsación de tecla simulada de DNF. Probé muchos métodos. Intenté agregar mensajes a la cola de mensajes y keybd_event, pero no funcionó.

Problema de pulsación de tecla simulada de DNF. Probé muchos métodos. Intenté agregar mensajes a la cola de mensajes y keybd_event, pero no funcionó.

Algunos juegos se desarrollan utilizando DirectX proporcionado por Microsoft, evitando así el mecanismo de encapsulación de mensajes del sistema operativo Windows: estos programas de juegos que utilizan la interfaz DirectX omiten Windows al leer las operaciones del teclado. El mecanismo de mensajes utiliza DirectInput. Esto se debe a que algunos juegos tienen requisitos relativamente altos de control en tiempo real, como los juegos de carreras, que requieren la respuesta más rápida a la entrada del teclado. Dado que los mensajes de Windows tienen forma de cola, habrá mucho retraso cuando se entreguen. A veces, solo se pueden entregar una docena de mensajes en un segundo. Esta velocidad no puede cumplir con los requisitos del juego. DirectInput omite los mensajes de Windows y trata directamente con el controlador del teclado, lo que por supuesto mejora mucho la eficiencia. Por lo tanto, no habrá respuesta a dicho programa independientemente de si usa PostMessage o keybd_event, porque estas funciones están en un nivel superior. Para dicho programa, tenemos que utilizar el método de leer y escribir directamente el puerto del teclado para simular eventos de hardware. Para utilizar este método para simular el teclado, primero debe comprender los conocimientos relevantes de programación de teclados. En la era DOS, cuando el usuario presiona o suelta una tecla, se generará una interrupción del teclado (si se permiten interrupciones del teclado) y el programa saltará al controlador de interrupciones del teclado en el BIOS para su ejecución. Abra el Administrador de dispositivos de Windows y podrá ver que el controlador del teclado está controlado por dos puertos. Entre ellos, &H60 es el puerto de datos, que puede leer los datos del teclado, y &H64 es el puerto de control, que se utiliza para enviar señales de control. Es decir, la información clave de este teclado se puede leer desde el puerto número &H60. Cuando se lee un byte desde este puerto, los 7 bits inferiores del byte son el código de escaneo de la clave y el bit superior indica. si la tecla se presiona o se suelta. Cuando se presiona la tecla, el bit más alto es 0, lo que se llama código de acceso. Cuando se suelta la tecla, el bit más alto es 1, lo que se llama código de ruptura. Dado que se puede obtener información clave leyendo datos de este puerto, escribir datos en este puerto puede simular la pulsación de teclas.