如何禁用Windows中文输入法中的形状切换热键?

如何禁用Windows中文输入法中的形状切换热键?

在我迄今为止使用过的任何 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

我真的觉得这是微软的一个重大设计疏忽......不知道他们当时在想什么。

相关内容