Вроде совершенно простой вопрос - но никак не могу найти ответ. Как (если конечно это вообще возможно) определить состояние NumLock находясь в драйвере?
кусок из KLOG: Код (Text): ... ///////////////////////////////////////// //Get and update state of CAPS LOCK key ///////////////////////////////////////// KEVENT event = {0}; KEYBOARD_INDICATOR_PARAMETERS indParams = {0}; IO_STATUS_BLOCK ioStatus = {0}; NTSTATUS status = {0}; KeInitializeEvent(&event, NotificationEvent, FALSE); PIRP irp = IoBuildDeviceIoControlRequest(IOCTL_KEYBOARD_QUERY_INDICATORS,pDevExt->pKeyboardDevice, NULL,0,&indParams,sizeof(KEYBOARD_ATTRIBUTES),TRUE,&event,&ioStatus); status = IoCallDriver(pDevExt->pKeyboardDevice, irp); if (status == STATUS_PENDING) { (VOID) KeWaitForSingleObject(&event,Suspended,KernelMode, FALSE,NULL); } status = irp->IoStatus.Status; if(status == STATUS_SUCCESS) { indParams = *(PKEYBOARD_INDICATOR_PARAMETERS)irp->AssociatedIrp.SystemBuffer; if(irp) { int flag = (indParams.LedFlags & KEYBOARD_CAPS_LOCK_ON); DbgPrint("Caps Lock Indicator Status: %x.\n",flag); ... } WDK: KEYBOARD_INDICATOR_PARAMETERS: Код (Text): LED Flag Meaning KEYBOARD_CAPS_LOCK_ON CAPS LOCK LED is on. KEYBOARD_LED_INJECTED Used by a Terminal Server. KEYBOARD_NUM_LOCK_ON NUM LOCK LED is on. KEYBOARD_SCROLL_LOCK_ON SCROLL LOCK LED is on. KEYBOARD_SHADOW Used by a Terminal Server.
это хорошо что боян значит кто-то это уже делал, мож даже кодом делился, может припомнишь где примерно видел? в ддк есть кое что но я пока не понял как это реализовать