中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-12 06:31
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]删除语言栏中的输入法命令是什么? 查看 1,870 回复 5
楼 主 [求助]删除语言栏中的输入法命令是什么? 发表于 2008-12-09 22:27 ·  中国 广东 电信
初级用户
★★
积分 131
发帖 119
注册 2007-06-12 22:50
19年会员
UID 91125
性别 男
来自 gz
状态 离线
如何用批处理删除语言栏中的输入法?
注意!!!!是用批处理删除语言栏中的输入法!!!!
不是删除输入法的文件!!!!
附件
未命名.jpg
2 发表于 2008-12-10 12:57 ·  中国 北京 鹏博士长城宽带
银牌会员
★★★★
[b]看你妹啊[/b]
积分 1,488
发帖 1,357
注册 2006-05-20 12:00
20年会员
UID 55770
状态 离线
修改注册表,,,或者用第三方工,imetool 吧

有问题请发论坛或者自行搜索,再短消息问我的统统是SB
3 发表于 2008-12-10 14:10 ·  中国 广东 广州 电信
初级用户
★★
l i u s s
积分 73
发帖 101
注册 2008-09-17 00:21
17年会员
UID 125825
性别 男
来自 GZ
状态 离线
输入法的顺序在注册表以下位置:


清除和重新编排语言栏中输入法(假设有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 ]
本帖最近评分记录 (共 2 条) 点击查看详情
评分人分数时间
tireless +5 2008-12-10 19:04
lxmxn +4 2008-12-11 01:00
4 IMETool 2.8.0 发表于 2008-12-10 14:55 ·  中国 北京 鹏博士长城宽带
银牌会员
★★★★
[b]看你妹啊[/b]
积分 1,488
发帖 1,357
注册 2006-05-20 12:00
20年会员
UID 55770
状态 离线
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
lxmxn +4 2008-12-11 01:00
附件
imetool.rar (68.78 KiB, 下载附件所需积分 1 点, 下载次数: 16)

有问题请发论坛或者自行搜索,再短消息问我的统统是SB
5 发表于 2009-07-10 08:28 ·  中国 广东 惠州 电信
新手上路
积分 1
发帖 1
注册 2009-06-20 03:36
17年会员
UID 147768
性别 男
状态 离线
谢谢,我正在找.
6 发表于 2009-08-12 11:24 ·  中国 福建 厦门 电信
初级用户
积分 74
发帖 37
注册 2007-06-28 11:47
19年会员
UID 92573
性别 男
状态 离线
好东东
论坛跳转: