的方式来又在键盘上的帽子-锁光没有实际转上帽子-锁?
-
20-09-2019 - |
题
我正在写一个程序,使用帽子-锁作为一个切换开关。这将是很好的设置导致的关键,以显示我的程序是在或关闭,像大写锁定关键不自然。
我知道,我可能只是 SendInput('Capslock');
或什么要实际上把帽子-锁和关闭。但我的程序是一个打字节目,并且我不想要处理的翻译所有帽子的钥匙,打开它会给我进入他们低/上层情况。我可能会走这条路最终,但不是这个版本。
我会的但是有兴趣只是打开的LED灯 没有 实际上转上帽子-锁。是否有任何方式做到这一点吗?
谢谢你。
解决方案
你可以找到代码变化的指标在键盘上从C#在 伪造num锁,caps lock和滚动锁定指示灯
其他提示
我敢肯定你不能没有切换实际大写锁定,除非你正在编写一个键盘驱动程序切换LED。 (我不建议这一点!)
有插件米兰达IM名为“键盘通知分机”,其中包含在它的源代码C实现控制的LED。查看源文件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);
不隶属于 StackOverflow