문제

Caps-Lock을 토글 스위치로 사용하는 프로그램을 작성하고 있습니다. 캡 슬록 키가 자연스럽게하는 것처럼 내 프로그램이 켜져 있음을 보여주기 위해 키의 LED를 설정하는 것이 좋을 것입니다.

나는 단지 내가 할 수 있다는 것을 안다 SendInput('Capslock'); 또는 실제로 캡 잠금을 켜고 끄는 것은 무엇이든. 그러나 내 앱은 타이핑 프로그램이며, 전원을 켜는 모든 캡 키를 번역하여 저/상위 케이스로 줄 수있는 모든 캡 키를 처리하고 싶지 않습니다. 나는 결국 그 길을 갈 수도 있지만이 버전에는 그렇지 않습니다.

그러나 나는 LED 조명을 켜는 데 관심이 있습니다. 없이 실제로 Caps-Lock을 켭니다. 그렇게 할 방법이 있습니까?

고맙습니다.

도움이 되었습니까?

해결책

C# at의 키보드에서 표시기 변경을위한 코드를 찾을 수 있습니다. 가짜 마모 잠금, 캡 잠금 및 스크롤 잠금 LED

다른 팁

키보드 드라이버를 쓰지 않는 한 실제 캡 잠금 장치를 토글하지 않고 LED를 전환 할 수 없다고 확신합니다. (나는 그것을 추천하지 않습니다!)

Miranda IM에 대한 플러그인이 있습니다.키보드는 Ext."Source Code C에 포함 된 LED의 제어 CODE 구현. 소스의 파일 Keyboard.c를 참조하십시오. 아마도 C#에 포트 할 수 있습니다.

소스 코드에서 가장 흥미로운 하이라이트는 다음과 같습니다.

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);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top