我开始使用 kbd.h 在 Windows 上处理键盘布局。我通过 kbdxx.dll 了解了 scancode->keycode 部分,但在处理修饰键(shift、Ctrl、Alt)方面遇到了困难,尤其是这些键状态的二进制编码如何与键码一起使用。
由于 kbd.h 中的描述对我没有帮助,我正在寻找更多关于此的文献。
在哪里可以找到有关键盘的更多信息,尤其是修改键所在的部分?
除了 SDK 中的
kbd.h
和 示例键盘布局之外,没有关于键盘布局格式的官方文档。
这些结构和标志有一些非官方的描述: https://github.com/lelegard/winkbdlayouts
您需要更具体地说明布局的哪一部分有问题。键盘布局 DLL 中的表用于描述如何执行以下任务:
x00
、xE0
和0xE1
;但它也可以使其在Shift/Alt/Ctrl
上可变-修饰符,在一定程度上)。VK_
名称和当前列号转换为“事件”:NOP
,或 UTF-16 代码点,或键盘 FSM1⁾ 的状态号,或“查找长串事件”。VK_
名称和当前列号转换为UTF-16代码点序列。¹⁾ 这种有限状态机的功能非常有限。
我怀疑你只需要看看例子。琐碎的文件将由 MSKLC 生成(如果需要,使用其
kbdutool
将 UI 创建的 .klc
文件转换为 C)。其他重要的例子可能是这个源代码分发中的C文件(从
ooo-us
等翻译而来)—— 我试图在C文件中添加尽可能多的注释。
有关“比真正的初学者想要看到的更多信息”,请参阅我的文档