Frage

Ich schreibe ein Programm, dass Anwendungen Caps-Lock als Kippschalter. Es wäre schön, die LED der Taste gesetzt, um anzuzeigen, dass mein Programm ein- oder ausgeschaltet ist, wie die capslock Schlüssel natürlich der Fall ist.

Ich weiß, dass ich konnte einfach SendInput('Capslock'); oder was auch immer tatsächlich Caps-Lock ein- und ausschalten. Aber meine app ist ein Tipp Programm, und ich will nicht mit der Übersetzung der alle Caps Schlüssel zu tun haben, dass es Anschalten würde mich in ihre untere / obere Fälle. Ich könnte diesen Weg gehen schließlich, aber nicht für diese Version.

würde ich jedoch daran interessiert sein nur auf dem LED-Licht drehen OHNE Drehen tatsächlich auf Kappen-Lock. Gibt es eine Möglichkeit, das zu tun?

Danke.

War es hilfreich?

Lösung

Sie können Code für Anzeigen auf der Tastatur von C # unter Faking num Lock, Caps Lock und Scroll-Lock-LEDs

Andere Tipps

Ich bin mir ziemlich sicher, Sie können nicht Toggle die LED ohne die tatsächlichen Caps Makeln sperren, wenn Sie einen Tastaturtreiber schrieben. (Ich bin nicht zu empfehlen!)

Es gibt Plugin für Miranda IM Namen „ Tastatur Extern benachrichtigen. “, die enthält in seiner Quellcode C Implementierung des Steuern LEDs. Siehe Datei keyboard.c in Quelle. Wahrscheinlich können Sie Portierung auf C #.

Hier sind die meisten interessanten Highlights aus dem Quellcode:

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);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top