通过注册表修改中文输入法快捷键以解决与Excel的冲突(Win7+Office2010+必应输入法环境)

原因

Excel选中行及选中列的快捷键分别是 Shift+Space 以及 Ctrl+Space ,但这两个快捷键在中文系统输入法中的用途是切换全/半角和切换输入法/非输入法。显然这两个重要快捷键在Excel中无法使用,非常影响效率。

初步尝试

在查阅Excel相关帮助后得知,Excel 2010的快捷键无法更改,虽然可以创建宏并指定快捷键的方式来达到目的,但这未免小题大做了。 另一方面,这两个快捷键并不受输入法自己控制,而是系统设置。系统对输入法快捷键的设置对话框可以如下方式找到: 方法一:右击输入法栏 -> 设置 -> 高级键设置 方法二:开始 -> 控制面板 -> 更改键盘或其他输入法 -> 更改键盘 -> 高级键设置 在这里能找到“输入法/非输入法切换”和“全/半角切换”,并更改按键顺序,但是当你点击确定或应用时,却会发现两个设置又被改回了 Ctrl+Space 和 Shift+Space。

解决方法

解决方法是直接修改注册表相关项目。 按 Win+R,输入 regedit 并运行。找到 HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys,分别修改其下的 00000010 和 00000011 项里的键。 每个项内有三个键:Key Modifiers, Target IME, Virtual Key,意思分别是控制键(Ctrl,Alt,Shift及其组合)、适用的输入法、虚拟键(即与控制键组合的那个键)。 键值与物理键的对应关系见附表。 修改完之后不会立刻生效,调出上面提到的高级键设置,随便修改下,按应用之后就会发现自动改成了你所设置的快捷键。

依然存在的问题

虽然在系统启动或注销后重登录时,该修改有效,但如果从休眠中恢复,快捷键又会被强制改回 Shift+Space 等。 该问题目前仍未找到解决方法。


附表一 注册表项的功能

以下项在 HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys 内。

项 功能
00000010 输入法/非输入法切换
00000011 全/半角切换
00000012 中/英文标点符号切换

更多项说明请参见:Simplified Chinese MSPY 3.0 IME Hot Key Registry Settings (Windows CE 5.0)

另外,00000070 开始的项适用于繁体输入法,00000200 开始的项用途未知。

附表二 Key Modifier的键值含义

该键的键值遵循如下规则:

      0    2    c    0    0    0    0    0
   0000 0010 1100 0000 0000 0000 0000 0000
         ^^^ ^^ 
Shift ___||| ||
  Ctrl ___|| ||
    Alt ___| ||
     Left ___||
     Right ___|
值 对应控制键
第1个字节
00 无控制键
01 Alt
02 Ctrl
03 Ctrl+Alt
04 Shift
05 Alt+Shift
06 Ctrl+Shift
07 Ctrl+Alt+Shift
第2个字节
40 右
80 左
c0 左右皆可

参考资料:Windows中与输入法和输入热键相关的Registry

附表三 Virtual Key的键值含义

值 对应虚拟键
08 退格键
09 Tab
0D 回车键
20 空格键
21 PageUp
22 PageDown
23 End
24 Home
25 左箭头
26 上箭头
27 右箭头
28 下箭头
2D Ins
2E Del
30 0
31 1
32 2
33 3
34 4
35 5
36 6
37 7
38 8
39 9
41 A
42 B
43 C
44 D
45 E
46 F
47 G
48 H
49 I
4A J
4B K
4C L
4D M
4E N
4F O
50 P
51 Q
52 R
53 S
54 T
55 U
56 V
57 W
58 X
59 Y
5A Z
70 F1
71 F2
72 F3
73 F4
74 F5
75 F6
76 F7
77 F8
78 F9
79 F10
7A F11
7B F12
BA ;/:(分号/冒号;美式键盘)
BB =/+(等号/加号)
BC ,/<(逗号/左尖括号)
BD -/_(减号/下划线)
BE ./>(句号/右尖括号)
BF //?(斜杠/问号;美式键盘)
C0 `/~(撇号/波浪号;美式键盘)
DB [/{(左方括号/左花括号)
DC /
DD ]/}(右方括号/右花括号)
DE ‘/"(单引号/双引号)

以上并非所有的虚拟键。完整的虚拟键列表见:Virtual-Key Codes

附表四 Excel快捷键列表

请参见以下几篇帮助。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注