我正在写一个程序,使用帽子-锁作为一个切换开关。这将是很好的设置导致的关键,以显示我的程序是在或关闭,像大写锁定关键不自然。

我知道,我可能只是 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);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top