Domanda

Sto scrivendo un programma che utilizza caps-lock, come un interruttore a levetta. Sarebbe bello per impostare il LED del tasto per dimostrare che il mio programma è acceso o spento, come il tasto capslock fa naturalmente.

Lo so che ho potuto solo SendInput('Capslock'); o qualsiasi altra cosa per trasformare in realtà caps-lock on e off. Ma la mia app è un programma di battitura a macchina, e io non voglio avere a che fare con la traduzione dei tasti di tutto in maiuscolo che accenderlo mi avrebbe dato nelle loro lettere maiuscole inferiori /. Potrei seguire questa strada alla fine, ma non per questa versione.

Vorrei però essere interessato solo accendere la luce LED SENZA in realtà accendendo caps-lock. Esiste un modo per farlo?

Grazie.

È stato utile?

Soluzione

È possibile trovare il codice per modificare gli indicatori sulla tastiera da C # a Faking bloc num, blocco maiuscole e scorrere led serratura

Altri suggerimenti

Sono abbastanza sicuro che non è possibile attivare o disattivare il LED, senza alternare il blocco delle maiuscole reale, a meno che non si stesse scrivendo un driver di tastiera. (Non sto raccomandando che!)

Ci sono plug-in per Miranda IM denominato " tastiera Notifica Ext. ", che contiene nella sua attuazione C codice sorgente di led di controllo. Vedere file tastiera.e in origine. Probabilmente si può portarlo a C #.

Qui ci sono punti salienti più interessanti dal codice sorgente:

mir_snprintf(aux1, sizeof(aux1), "Kbd%d", i);
mir_snprintf(aux2, sizeof(aux2), "\\Device\\KeyboardClass%d", i);
DefineDosDevice(DDD_RAW_TARGET_PATH, aux1, aux2);

mir_snprintf(aux1, sizeof(aux1), "\\\\.\\Kbd%d", i);
hKbdDev[i] = CreateFile(aux1, GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);

...

result |= DeviceIoControl(hKbdDev[i], IOCTL_KEYBOARD_SET_INDICATORS, &InputBuffer, DataLength, NULL, 0, &ReturnedLength, NULL);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top