¡Intenta escribir un programa de enlace de teclado global en lenguaje C y obtendrás 100 puntos si lo logras!
Supongo que todavía no sabes qué es una dll
Pero hay buenas noticias para ti
La captura global del teclado se puede lograr a través de LogHook en el programa:
Código VC:
#include HHOOK LogHook=NULL; LALLADA DE RESULTADO LogProc(código int,WPARAM wParam,LPARAM lParam) { EVENTMSG *pEventMsg=( EVENTMSG*)lParam; if(code==HC_ACTION) { switch(pEventMsg->mensaje) { caso (WM_KEYDOWN) : BYTE bKeyState[256]; uAscii corto sin firmar[4]; UINT uScanCode; int iRet; p> p> GetKeyboardState(bKeyState); bKeyState[VK_SHIFT]=GetKeyState(VK_SHIFT); uScanCode=(pEventMsg->paramH>>16) ; iRet=ToAscii(pEventMsg-> paramL,uScanCode,bKeyState,uAscii,0); switch(iRet) { caso 0: break; caso 1: if((char)uAscii[0]== 't' || (char) uAscii[0]= ='T')//se ha presionado la tecla { MessageBox(NULL, "Se ha presionado T", "Solicitud de tecla",MB_OK) ; /************** Realice la reproducción de música usted mismo********** ****/ } p> si no ((char)uAscii[0]=='y' || (char)uAscii[0]=='Y')//Se ha presionado la tecla Y { MessageBox(NULL, "Y presionado", "Alerta de pulsación de tecla",MB_OK); /*************** *** Implementado aquí Función para detener la reproducción de música******************/ } break; Predeterminado: p> descanso; } Predeterminado: descanso; } p> } return CallNextHookEx(LogHook,code,wParam,lParam); } int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
p>{
LogHook=SetWindowsHookEx(WH _JOURNALRECORD,LogProc,hInstance,NULL);
while(1)Sleep(100);
devuelve 0;
}
LogHook se está ejecutando de forma inestable.