问题描述:
windows 系统下,设置->键盘->输入语言热键->高级键设置 里可以找到如下图所示的选项,通过“更改按键顺序”按钮进行更改后可修改切换中英文的快捷键:
但是在实际使用中会出现以下问题:
1. 修改后的快捷键只针对“微软拼音输入法”起效,针对第三方输入法无效。
2. 重启后修改的快捷键会重置到默认设置(即 ctrl + space),尤其是在安装了第三方输入法的情况下。
问题分析:
结合https://zhuanlan.zhihu.com/p/133632205的分析,目前推测问题发生的具体原因为:
1. 用户在 GUI 界面进行更改的内容会被保存在 HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys\00000010 中。

2. 第三方输入法读取的是 HKEY_USER\.DEFAULT\Control Panel\Input Method\Hot Keys\00000010 中的快捷键信息。

3. 第三方输入法不存在时,GUI 界面读取的是 1 中的快捷键信息,此时修改快捷键是能够在 GUI 界面中看到的;但存在第三方输入法时,通常第三方输入法都是直接读取的 2 中的快捷键信息,因此在 GUI 界面中看到的就是重置回原来的设置(即 ctrl + space),就算再次修改 GUI 的快捷键,但是因为 GUI 界面不会直接修改 2 中的注册表,因此重启后快捷键会重置。
问题解决:
将 HKEY_USER\.DEFAULT\Control Panel\Input Method\Hot Keys\00000010 中的快捷键设置手动修改为 HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys\00000010 中的设置即可。
具体修改方式可参考如下文章:
3. ASCII 表