【问题标题】:How to determine the names of all installed keyboard layouts?如何确定所有已安装键盘布局的名称?
【发布时间】:2010-12-01 10:04:23
【问题描述】:

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

但是,令人费解的是,似乎无法将GetKeyboardLayoutList 返回的区域设置标识符转换为适合在注册表中查找的“数字名称”。

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

例如,对于美国-国际,GetKeyboardLayoutList 在我的系统上返回 f0010809,但名称存储在 00020409 下(可以通过激活 f0010809 并调用 GetKeyboardLayoutName 来验证 - 这将返回00020409)。

【问题讨论】:

    标签: winapi keyboard


    【解决方案1】:

    似乎没有用于此的 API。但是,为了确定其“数字名称”而短暂切换到布局的解决方法非常有效,没有明显的副作用。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-12
      • 1970-01-01
      • 1970-01-01
      • 2011-07-31
      相关资源
      最近更新 更多