输入法的顺序在注册表以下位置:
清除和重新编排语言栏中输入法(假设有7种输入法)的REG文件:
Windows Registry Editor Version 5.00
;先清空原序列,00000804代表“中文(中国)”
"1"="00000804"
"2"=-
"3"=-
"4"=-
"5"=-
"6"=-
"7"=-
"8"=-
;以下为重新排列(只取其中的4种):
;依次为:中文(中国)、极点五笔4、搜狗拼音、全拼、智能ABC
"1"="00000804"
"2"="e0210804"
"3"="e0200804"
"4"="e0010804"
"5"="e0040804"
以上的序号对应语言栏中上至下的顺序,做好以上REG文件,双击导入或用命令 regedit /s XXX.reg 自动导入即可。各种输入法对应在注册表中的代码如下:
00000804 中文(中国)
00000409 英文
e0100804 王码五笔86
e0220804 念青五笔
e0210804 极点五笔
e00e0804 微软拼音
e0010804 全拼
e0020804 双拼
e0040804 智能ABC
e0200804 搜狗拼音
e0xx0804 紫光拼音
e0050804 区位码
e00c0804 表形码
e0030804 郑码
实质上以上这些代码并没有明文规定(在Win中自带的除外,如:英文、微软拼音、全拼等等),如果想获取真正的代码,可以用
reg query "HKEY_CURRENT_USER\Keyboard Layout\Preload">a.txt 命令获取输入法顺序列表,然后对应语言栏中上至下的顺序,就可以获取在你系统在各输入法对应在注册表中的代码(输入法ID)。
如果用楼下 yishanju 兄提供的工具,则只需用一条命令(命令必须在 imetool 同一目录下执行):
imetool /del4:e0010804
即可从语言栏中删除“全拼”输入法,而且不需重启即生效。
既然有人关注此主题,再补上本人做的一个删除语言栏上的输入法的批处理:
以序号形式删除输入法:
@echo off&setlocal enabledelayedexpansion
set key1=HKCU\Keyboard Layout\Preload
set key2=HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layouts
:begin
cls
for /f "tokens=1-4" %%a in ('reg query "%key1%"^|findstr "REG_SZ"^|sort') do (
for /f "tokens=1,3*" %%d in ('reg query "%key2%\%%c"^|findstr "Text"') do (
set /a n+=1
echo %%a %%c %%f
)
)
echo.
set /p num=请输入你想删除的输入法前的序号:
for /l %%a in (%n% -1 1) do (
if "%%a"=="%num%" set var=A
)
if "%var%"=="A" goto delime
cls
echo 输入错误,请按任意键重新输入一个序号!
pause>nul
goto begin
:delime
cls
echo 操作中,请稍等...
(reg export "%key1%" 恢复原来设置.reg
reg delete "%key1%" /f /v "%num%"
for /f "tokens=1,2*" %%i in ('reg query "%key1%"^|findstr "REG_SZ"') do (
set /a m+=1
reg add "!key1!" /f /v !m! /d "%%k"
))>nul
cls
echo 输入法删除成功!余下的输入法(注销或重启后生效):
echo.
for /f "tokens=1-4" %%a in ('reg query "%key1%"^|findstr "REG_SZ"^|sort') do (
for /f "tokens=1,3*" %%d in ('reg query "%key2%\%%c"^|findstr "Text"') do (
echo %%a %%c %%f
)
)
ping 127.1 -n ^6>nul
以输入法ID形式删除输入法:
@echo off
set "b="
set "ime=e0010804"
for /f "tokens=1" %%a in ('reg query "HKCU\Keyboard Layout\Preload"^|find /i "%ime%"') do set "b=%%a"
if not "%b%"=="" (reg delete "HKCU\Keyboard Layout\Preload" /f /v "%b%" >nul
) else (
echo 没有发现ID为“%ime%”的输入法!&&ping 0 /n ^5>nul&exit)
for /f "tokens=1,2*" %%c in ('reg query "HKCU\Keyboard Layout\Preload"^|find "REG_SZ"') do (
set /a n+=1
call reg add "HKCU\Keyboard Layout\Preload" /f /v "%%n%%" /t REG_SZ /d "%%e" >nul
)
echo 成功删除代码为“%ime%”的输入法! 注销或重启后才生效。&&ping 0 /n ^5>nul&exit
Last edited by newxso on 2009-8-12 at 20:33 ]
The order of input methods is in the following position in the registry:
Clear and re - arrange the input methods in the language bar (assuming there are 7 input methods) REG file:
Windows Registry Editor Version 5.00
;First clear the original sequence, 00000804 represents "Chinese (China)"
"1"="00000804"
"2"=-
"3"=-
"4"=-
"5"=-
"6"=-
"7"=-
"8"=-
;The following is the re - arrangement (only take 4 of them):
;In order: Chinese (China), Jidian Wubi 4, Sogou Pinyin, Quánpīn, Zhineng ABC
"1"="00000804"
"2"="e0210804"
"3"="e0200804"
"4"="e0010804"
"5"="e0040804"
The above serial numbers correspond to the order from top to bottom in the language bar. After making the above REG file, double - click to import or use the command regedit /s XXX.reg to import automatically. The codes of various input methods in the registry are as follows:
00000804 Chinese (China)
00000409 English
e0100804 Wangma Wubi 86
e0220804 Nianqing Wubi
e0210804 Jidian Wubi
e00e0804 Microsoft Pinyin
e0010804 Quánpīn
e0020804 Shuangpīn
e0040804 Zhineng ABC
e0200804 Sogou Pinyin
e0xx0804 Ziguang Pinyin
e0050804 Quwei code
e00c0804 Biaoxing code
e0030804 Zhengma code
In fact, these codes are not clearly stipulated (except those built - in in Windows, such as: English, Microsoft Pinyin, Quánpīn, etc.). If you want to get the real code, you can use the command
reg query "HKEY_CURRENT_USER\Keyboard Layout\Preload">a.txt to get the input method order list, and then correspond to the order from top to bottom in the language bar, then you can get the code (input method ID) of each input method in your system in the registry.
If you use the tool provided by brother yishanju downstairs, you only need one command (the command must be executed in the same directory as imetool):
imetool /del4:e0010804
You can delete the "Quánpīn" input method from the language bar, and it takes effect without restarting.
Since someone pays attention to this topic, I will add a batch file to delete the input method on the language bar made by myself:
Delete input methods in serial number form:
@echo off&setlocal enabledelayedexpansion
set key1=HKCU\Keyboard Layout\Preload
set key2=HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layouts
:begin
cls
for /f "tokens=1-4" %%a in ('reg query "%key1%"^|findstr "REG_SZ"^|sort') do (
for /f "tokens=1,3*" %%d in ('reg query "%key2%\%%c"^|findstr "Text"') do (
set /a n+=1
echo %%a %%c %%f
)
)
echo.
set /p num=Please enter the serial number before the input method you want to delete:
for /l %%a in (%n% -1 1) do (
if "%%a"=="%num%" set var=A
)
if "%var%"=="A" goto delime
cls
echo Incorrect input, press any key to re - enter a serial number!
pause>nul
goto begin
:delime
cls
echo Operating, please wait...
(reg export "%key1%" Restore original settings.reg
reg delete "%key1%" /f /v "%num%"
for /f "tokens=1,2*" %%i in ('reg query "%key1%"^|findstr "REG_SZ"') do (
set /a m+=1
reg add "!key1!" /f /v !m! /d "%%k"
))>nul
cls
echo Input method deleted successfully! The remaining input methods (take effect after logging off or restarting):
echo.
for /f "tokens=1-4" %%a in ('reg query "%key1%"^|findstr "REG_SZ"^|sort') do (
for /f "tokens=1,3*" %%d in ('reg query "%key2%\%%c"^|findstr "Text"') do (
echo %%a %%c %%f
)
)
ping 127.1 -n ^6>nul
Delete input methods in input method ID form:
@echo off
set "b="
set "ime=e0010804"
for /f "tokens=1" %%a in ('reg query "HKCU\Keyboard Layout\Preload"^|find /i "%ime%"') do set "b=%%a"
if not "%b%"=="" (reg delete "HKCU\Keyboard Layout\Preload" /f /v "%b%" >nul
) else (
echo No input method with ID "%ime%" is found!&&ping 0 /n ^5>nul&exit)
for /f "tokens=1,2*" %%c in ('reg query "HKCU\Keyboard Layout\Preload"^|find "REG_SZ"') do (
set /a n+=1
call reg add "HKCU\Keyboard Layout\Preload" /f /v "%%n%%" /t REG_SZ /d "%%e" >nul
)
echo Successfully deleted the input method with code "%ime%"! It takes effect only after logging off or restarting.&&ping 0 /n ^5>nul&exit
Last edited by newxso on 2009 - 8 - 12 at 20:33 ]