在不实际打开大写锁定的情况下打开键盘大写锁定指示灯的方法

2023-12-23

我正在编写一个程序,使用大写锁定 https://en.wikipedia.org/wiki/Caps_Lock作为拨动开关。如果能设置按键的 LED 来显示我的程序打开或关闭,就像 Caps Lock 键自然所做的那样,那就太好了。

我知道我可以SendInput('Capslock');或任何实际打开和关闭大写锁定的东西。但我的应用程序是一个打字程序,我不想处理翻译全大写键,打开它会让我转换成小写/大写。我最终可能会走这条路,但不是这个版本。

不过我有兴趣只打开 LED 灯without实际上打开了 Caps Lock。有没有办法做到这一点?


有一个插件米兰达·IM https://en.wikipedia.org/wiki/Miranda_IM named "“其源代码中包含控制 LED 的 C 实现。请参阅文件键盘.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);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在不实际打开大写锁定的情况下打开键盘大写锁定指示灯的方法 的相关文章

随机推荐