如何在 Windows 7 32 位中使用 cmd 知道当前哪种键盘布局处于活动状态?

如何在 Windows 7 32 位中使用 cmd 知道当前哪种键盘布局处于活动状态?

假设我可以从 Windows 7 32 位的语言栏中切换 3 种键盘布局,英语、德语和西班牙语。可以从 cmd 运行什么命令来返回当前使用的布局的值?我的最终目标是将返回值传递到外部编辑器(Emacs),以便它可以根据当前键盘布局更改文本的字体。也就是说,如果我用英语写一个句子,字体将是 font1,如果用德语写一个句子,字体将是 font2,依此类推。但这只有当我可以从 Windows 的命令行获取一些返回值(无论是国家/地区语言环境的数量还是字符串行englishgerman等等)时才会起作用。

答案1

编辑:下面的操作实际上不会满足 OP 的要求,因为通过语言栏快捷键切换键盘时值不会改变,即使通过控制面板切换时值会改变。为了完整性,这里就不多说了。

我找不到任何可以检索此信息的已记录的 systeminfo 或 Powershell 命令。我以为类似这样的命令可能会有用,但遗憾的是,这个或其他 cmdlet 的参数似乎都无法获取此设置。

powershell -Command "& {(Get-culture).keyboardlayoutid;}"

似乎 Windows 8 可能添加了执行此操作的 Powershell 命令,但在 Windows 7 中似乎无法检测到以这种方式所做的更改。

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

以下将返回当前键盘:

reg query "HKEY_CURRENT_USER\Keyboard Layout\Preload"

这将返回所有已安装键盘的列表,其中当前正在使用的键盘为1

HKEY_CURRENT_USER\Keyboard Layout\Preload
    1    REG_SZ    00000809
    2    REG_SZ    00000407
    3    REG_SZ    00000c0a

作为参考,返回的值列在此处:msdn.microsoft.com/en-gb/goglobal/bb895996.aspx

相关内容