Red de conocimiento informático - Espacio del host - Soy un novato en C y me gustaría hacerte una pregunta. ¿Puedes escribir un "programa clave" en C, es decir, dejar que el teclado siga presionando una determinada tecla?

Soy un novato en C y me gustaría hacerte una pregunta. ¿Puedes escribir un "programa clave" en C, es decir, dejar que el teclado siga presionando una determinada tecla?

Puede usar la función Keyevent para lograr esto, que consiste en escribir un bucle para llamar a Keyevent y liberarlo cuando se presiona una tecla continuamente.

VOID keybd_event(BYTEbVk, BYTEbScan, DWORDdwFlags, DWORDdwExtraInfo);

Windows proporciona una función API Keybd_event() que simula el teclado. Utilice esta función para bloquear las acciones del teclado en consecuencia. La función Keybd_event() desencadena un evento clave, que genera un mensaje WM_KEYDOWN o WM_KEYUP.

El prototipo de esta función es el siguiente:

VOID keybd_event(

BYTE bVk, // código de clave virtual

BYTE bScan , // Código de escaneo de hardware

DWORD dwFlags, // Especificar indicadores para varias opciones de funciones

WM_KEYDOWN, WM_KEYUP Especificar indicadores para varias opciones de funciones

DWORD dwExtraInfo. // Datos adicionales relacionados con la clave

);

Como puedes ver en el prototipo, Keybd_ event()*** tiene cuatro parámetros:

Uno es el valor de la clave virtual de la clave, como la tecla Intro de vk_return y la tecla de tabulación de vk_tab (para obtener otra información específica, consulte el Apéndice: Tabla de comparación de valores de claves de simulación común);

El segundo El parámetro es el código de escaneo, generalmente no configurado, solo use 0 en su lugar;

El tercer parámetro es el indicador de opción, si está pulsado, se establece en 0, si está pulsado, se establece a "KEYEVENTF_KEYUP";

p>

El cuarto parámetro generalmente también se establece en 0. Evento (18, 0, 0, 0);

keybd_event (115, 0, 0, 0);

keybd_event (115, 0, KEYEVENTF_KEYUP, 0); >

keybd_event(18,0,KEYEVENTF_KEYUP,0);

Escriba "KEYEVENTF_KEYUP".