要确定有效键盘布局的名称,可以通过调用GetKeyboardLayoutName然后在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\{0}\Layout Text
下查找它来获取其“数字名称”。
然而,令人费解的是,似乎没有办法将GetKeyboardLayoutList返回的语言环境标识符转换为适合在注册表中查找的“数字名称”。
有没有办法检索所有已安装的键盘布局的布局文本而不激活每个?
例如,对于United States-International,GetKeyboardLayoutList
会在我的系统上返回f0010809
,但名称存储在00020409
下(可以通过激活f0010809
进行验证,调用GetKeyboardLayoutName
- 将返回00020409
)。
答案 0 :(得分:0)
似乎没有这方面的API。然而,简单地切换到布局以确定其“数字名称”的解决方法非常有效,没有明显的副作用。
在多线程应用程序中可能不会那么好,用户可能会在这种情况下进行打字!