在我迄今为止使用过的任何 Windows 版本(Xp、Vista、7、8)以及所有版本MSPY IME
(RTM 版本和 2010 版本)中,都存在一个令人讨厌的错误,即您无法更改或禁用中文形状切换(正常到双倍行距字符)的热键。默认值为Shift+ Space,无法从控制面板中的语言输入设置窗格中更改。以下是一些屏幕截图来显示问题:
然后按Change Key Sequence
将出现以下对话框:
禁用它不会产生任何效果,即 Windows 将忽略该设置。您会注意到,我已经设法通过使用注册表将顺序更改为Shift- ,但 WindowsNone仍然使用Shift+Space进行形状切换,这在您以更快的速度输入中文时真的很烦人(特别是当您想在英文和中文之间切换时)。
现在,在您使用对话框更改或删除该项后,设置将不会随着点击而持久Apply。更改相应的注册表值并重新启动也无济于事,如以下屏幕截图所示:
我希望任何人都有遇到过这个问题的经验。
答案1
为什么不能将Shift+Space组合更改为一些不太可能的组合,例如Alt+F12或其他组合?这与完全禁用它不同,但至少可以释放空格键。
随着更多的实验,我相信这个组合键在注册表中定义在:
HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys\00000011
。
将此注册表项导出到 .reg 文件并更改以下项:
Key Modifiers
更改为“00 C0 00 00”,表示没有“Control”或“Shift”或“Alt”。
Virtual Key
更改为 0,表示“无”。
如果这不起作用,可能需要采取更强有力的措施,例如完全删除 00000011 键。不幸的是,此主题声称 Windows 会在这些密钥更改后立即重置它们,你可以在计算机上进行验证,
(以上基于简体中文 MSPY 3.0 IME 热键注册表设置。
需要重新启动才能完全确定此类更改是否有效。
此外,作为安全措施,在修改注册表之前,请创建系统安静点。
[编辑]
看起来 Windows 不会遭受上述注册表项的更改,因此任何更改都会立即无效。
唯一可行的解决方案是使用自动热键Shift将+组合替换Space为其他组合。
一种可能性是详细的这里:“+Space::Space”。
发帖者实际上使用的是“+Space:: WinActivate”。
答案2
这个错误在 Windows 10 中仍然存在。在早期版本的 Windows 中,可以通过注册表禁用形状切换,但现在似乎已经消失了。
在已接受的答案中添加一个非常重要的事情:如果您无法让 Windows 看到您的更改,请确保您仔细检查注册表并修改 HKEY_USER 下其他名称相似的键。有时 Windows 似乎使用这些键之一而不是 HKEY_CURRENT_USER 下的键。
例如,我保证使用以下.reg 文件将组合键设置为 Ctrl+Shift+Alt+PgUp:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys\00000011]
"Key Modifiers"=hex:07,C0,00,00
"Target IME"=hex:00,00,00,00
"Virtual Key"=hex:21,00,00,00
[HKEY_USERS\S-1-5-18\Control Panel\Input Method\Hot Keys\00000011]
"Key Modifiers"=hex:07,C0,00,00
"Target IME"=hex:00,00,00,00
"Virtual Key"=hex:21,00,00,00
[HKEY_USERS\S-1-5-19\Control Panel\Input Method\Hot Keys\00000011]
"Key Modifiers"=hex:07,C0,00,00
"Target IME"=hex:00,00,00,00
"Virtual Key"=hex:21,00,00,00
[HKEY_USERS\S-1-5-20\Control Panel\Input Method\Hot Keys\00000011]
"Key Modifiers"=hex:07,C0,00,00
"Target IME"=hex:00,00,00,00
"Virtual Key"=hex:21,00,00,00
答案3
有人基于 AutoHotKey 制作了一款易于使用的应用程序,即使在 Windows 10 下也可以解决这个问题:
https://github.com/Svtter/Kill-Shift-Space
我真的觉得这是微软的一个重大设计疏忽......不知道他们当时在想什么。