如何确定所有已安装键盘布局的名称?

时间:2009-09-25 12:57:55

标签: winapi keyboard

要确定有效键盘布局的名称,可以通过调用GetKeyboardLayoutName然后在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\{0}\Layout Text下查找它来获取其“数字名称”。

然而,令人费解的是,似乎没有办法将GetKeyboardLayoutList返回的语言环境标识符转换为适合在注册表中查找的“数字名称”。

有没有办法检索所有已安装的键盘布局的布局文本而不激活每个

例如,对于United States-International,GetKeyboardLayoutList会在我的系统上返回f0010809,但名称存储在00020409下(可以通过激活f0010809进行验证,调用GetKeyboardLayoutName - 将返回00020409)。

1 个答案:

答案 0 :(得分:0)

似乎没有这方面的API。然而,简单地切换到布局以确定其“数字名称”的解决方法非常有效,没有明显的副作用。

在多线程应用程序中可能不会那么好,用户可能会在这种情况下进行打字!