更改win7/vista系统全角半角切换

Published by Xianqiao Wang on August 30th, 2014

自定义输入法切换热键
找到HKEY_CURRENT_USER\ControlPanel(控制面板)\InputMethod(输入方法)\HotKeys(热键),在其下有很多主键,我们需要关注的是前三个,名字分别为00000010/11/12,分别对应输入法开关、全半角切换和中英文标点切换。
在这三个主键下都有三个键值,含义分别是:
Key Modifiers(修饰键)表示要使用的控制键,我们需要修改的是前两个字节。第一个字节定义使用哪个键,基本值有三种:01表示Alt,02表示Ctrl,04表示Shift,要使用组合键的话请直接相加;第二个字节表示允许使用左侧还是右侧的按键,80表示只能用左侧键,40表示只能用右侧键,同理80+40=C0表示左右侧都可以用。比如想定义Ctrl+Alt为修饰键,而且只有左侧按键有效,那么就设为0380 00 00;
Target IME(目标输入法编辑器)表示要切换到的输入法。如果你要设置或修改一个直接切换到某输入法的快捷键那么可以改这个键值,对于我们举的00000010/11/12这三个主键来说还是保持0000 00 00吧;TargetIME的设置方法是:先在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\KeyboardLayouts下找到你要设置的输入法对应的主键名(可以看右边的键值),假设为01234567,这是8位16进制数,相当于4个字节。将它按2位一节分为4段,然后反过来填到TargetIME里面即可。如01234567的话,就应该填写6745 23 01;
Virtual Key(虚拟键)表示要跟的基本键,如Ctrl+S这个热键中,S就称为虚拟键。我们需要修改的也是第一个字节,只需要查到你要定义的虚拟键对应的ASCII码,转换成16进制数,填进去即可(字母键按大写字母处理,数字键一般按主键区的数字处理,因为小键盘按键的ASCII码和主键区是不同的)。如定义A为虚拟键,A对应的ASCII码是65,相当于16进制的41,那么Virtual Key就设置为41 00 00 00。
如果你要自己创建一个直接切换到某输入法的热键,那么可以直接在HotKeys项下新建名字为8位数字的主键,但请注意:键名必须从00000100开始,如果已经有这个主键则可以顺延:00000101、00000102……否则修改后不能生效。下面给大家举例。
例1.设置全半角切换键为右Shift+3。
HKEY_CURRENT_USER\Control Panel\Input Method\HotKeys\00000011下,设置KeyModifiers为0440 00 00,VirtualKey为3300 00 00。
例2.设置按Ctrl+Alt+T直接切换到搜狗(两侧都可用),设HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\KeyboardLayouts下搜狗的对应主键是E0130708。
在HKEY_CURRENT_USER\ControlPanel\Input Method\Hot Keys下新建一个主键,名字为00000100(如果已经存在则顺延),在右边窗口建立上面提到的3个键值(都是二进制值):
Key Modifiers设为03 C0 00 00;
Target IME设为08 07 13 E0;
Virtual Key设为54 00 00 00。
最后附上ASCII码表,给大家查阅(10进制,改注册表时请用计算器算出对应的16进制数值):
Space 32
Page Up 33
Page Down 34
End 35
Home 36
F1-F12 112-123
~ 126
抑音符96
分号186
等号187
逗号188
负号189
句号190
斜杠191
` 192
左括号219
反斜杠220
右括号221
引号222
A-Z 65-90
0-9 48-57 http://jingyan.baidu.com/article/5d368d1e39e8983f60c057c1.html