分类 默认分类 下的文章

TSFTool 是 IMETool 输入法设置工具的继承者,支持在 Windows 10/11/Windows Server 2019 操作系统下,支持新的 TSF 输入法框架,并部分兼容旧的 IMM 输入法框架。

下载:tsftool.rar

tsftool.png
版本历史:
0.9.3.1:修订命令行参数 /remove_eng 失效问题,去除无用的 /? 参数。同时发现程序在最新版的 Windows11 下有时退出后仍在进程中,尚未找到原因。
0.9.3.0:解决命令行输入两个以上参数时,程序界面不自动退出的问题。将启用/禁用输入法的延时改为5秒。修正默认输入法设置为“美式键盘”时程序不能正确识别的问题。优化“每个窗口使用不同输入法”设置的生效速度。
0.9.2.9:增加命令行参数 /remove_eng,对应其它菜单下的删除顽固的英语美式键盘功能(不删除注册表项目)。
0.9.2.8:修订因输入法名称中含有空格和大写字母带来的命令行参数 bug,受影响的命令:
add_name/del_name/move_name/default_name/hotkey_name。
0.9.2.7:修改导出/导出配置文件格式,解决某些特殊情况下可能出现冲突的问题。
0.9.2.6:增加导出/导出配置功能(在其它功能菜单下)。去除 0.9.2.5 增加的禁用所有输入法功能。
0.9.2.5:增加禁用所有输入法功能(因为必须保留至少一个输入法,故全部禁用后保留了一个美式键盘)。
0.9.2.4:增加导出输入法列表功能。取消等待4秒的对话框。
0.9.2.3:修正两处 bug。
0.9.2.2:旧的 IMM 框架输入法在列表中显示为绿色。增加删除按钮,从注册表中删除无用输入法项目交由用户处理。
0.9.2.1:在启用/禁用输入法后强制延时4秒,避免系统操作太慢可能会导致程序报错。此版本可以清除小狼毫等输入法卸载后在注册表中的残留项目。
0.9.2.0:增加命令行参数支持;增加帮助窗口;一些细微的程序内部调整。
0.9.1.3:修补从 0.9.1.0 版本开始遗漏的写入键盘切换热键的部分代码(感谢 waiting 的提醒)。
0.9.1.2:旧版本的 Windows10 不支持表情符号面板功能,TSFTool 启动时会报错。此版本修订这一问题。
0.9.1.1:某种输入法禁用时,如果其已被设置为默认输入法,则将默认输入法改为语言列表。英文键盘布局在禁用/启用时,增加一个延时关闭的提示对话框,以免操作过快引起异常。增加删除顽固存在的英语美式键盘布局功能。
0.9.1.0:全部重写代码,使用不同的方式处理,支持旧的 IMM 框架输入法,修复一些 Bug。此版本需要管理员权限。增加 32 位版本,32位版本也可以正常支持 64 位的 Windows10。
0.9.0.0:初始版本,只支持 TSF框架输入法。

命令行参数:
/r /refresh 重载键盘布局。
/remove_eng 删除顽固的英语美式键盘(不删除注册表项目)。
/caps 使用 Caps Lock 键关闭大写。
/shift 使用 Shift 键关闭大写。
/alone:0 各个窗口使用相同的输入法。
/alone:1 各个窗口使用独立的输入法。
/bar:0 关闭桌面状态栏。
/bar:1 打开桌面状态栏。
/emoji:0 表情符号面板自动关闭。
/emoji:1 表情符号面板不自动关闭。
/layout:0/1/2/3 键盘布局切换热键:0:禁用;1:Ctrl+Alt;2:Alt+Shift;3:` 。
/lang:0/1/2/3 输入语言切换热键:0:禁用;1:Ctrl+Alt;2:Alt+Shift;3:` 。
/add_num:<输入法序号> 按序号添加到输入法列表。
/add_name:<输入法名称> 按名称添加到输入法列表。
/del_num:<输入法序号> 按序号从输入法列表中禁用。
/del_name:<输入法名称> 按名称从输入法列表中禁用。
/del_all 禁用列表中所有输入法。
/move_num:<输入法序号> <新序号> 将指定序号的输入法移动到新位置。
/move_name:<输入法名称> <新序号> 将指定名称的输入法移动到新位置。输入法名称中如有空格,需要用双引号括起来。
/langlist 使用语言列表替代默认输入法。
/default_num:<输入法序号> 将指定序号的输入法设置为默认输入法。
/default_name:<输入法名称> 将指定名称的输入法设置为默认输入法。
/export_enabled_list: <文件名> 导出当前使用的输入法列表。
/export_disabled_list: <文件名> 导出禁用的输入法列表。
/hotkey_num:<输入法序号> 按序号指定输入法热键,不填写热键表示删除热键。
/hotkey_name:<输入法名称> 按名称指定输入法热键,不填写热键表示删除热键。输入法名称中如有空格,需要用双引号括起来。
/switchkey:<a/b/c> 设置通用切换热键。a: 打开关闭输入法;b: 全角半角切换;c: 中英
文标点切换。

热键格式: 分两部分,以空格分隔,左侧为控制键,右侧为字符键,如:ctrl 5、shift home、ctrl+alt d 等。
左侧控制键列表如下(不分大小写):
Alt
Ctrl
Left_Ctrl
Right_Ctrl
Ctrl+Alt
Shift
Left_Shift
Right_Shift
Alt+Shift
Ctrl+Shift
Left_Ctrl+Shift
Right_Ctrl+Shift
Ctrl+Alt+Shift

右侧字符键列表如下:
0~9、a~z、-=,.;'[]\等常规字符
? 因 / 被定义为参数的前导符,用 ? 来代表 /
~ 数字1左侧那个 ` 字符
BACKSPACE
TAB
ENTER
HOME
END
PGUP
PGDN
INS
DEL
LEFT
RIGHT
UP
DOWN
F1~F12
NUM0~NUM9 小键盘的0~9
NUM+
NUM-
NUM*
NUM? 代表小键盘的 /
NUM.
LEFT_WINDOW 左徽标键
RIGHT_WINDOW 右徽标键
APPS 应用程序键

几点说明:
一、关于热键

  1. 切换热键修改后立即生效,但只对新打开窗口有效,原有窗口仍是旧的热键有效。
  2. 切换热键可以单独选择左/右控制键,但是重启后会变回左右双键同时有效,这是 Windows 的设置功能混乱造成的,重载键盘布局即可重新生效。可以点击设置工具右下角的“刷新”按钮,也可以由命令行执行 tsftool /r 或 tsftool /refresh 重载键盘布局。
  3. TSF 类型的输入法和旧的IMM类型输入法能使用的热键范围有所不同。TSF 输入法的控制键不分左右,虽然Windows10 的相关设置界面里显示 Alt 键只能用左 Alt,实际右 Alt 键也有效,故在命令行中指定 TSF 输入法热键时不再加 left 前缀,如:alt、ctrl+alt 等。另外,TSF输入法不能使用 Windows 键和 APPS 键。
  4. IMM输入法的控制键可单独区分左右,但只能使用 ctrl、shift、ctrl+shift这三组控制键组合,如:ctrl、left_ctrl、right_ctrl+shift 等等。打开/关闭输入法、全角/半角切换和中英文标点切换的热键定义范围和 IMM 输入法一致。Windows10 目前不再定义全局的全半角切换和中英文标点切换热键,但有时候也会有效,所以暂时保留了这两组切换热键设置。
  5. 因为 / 被定义为命令行参数的前导符,从命令行指定热键时使用其上档键 ? 来代替 /,小键盘的 / 用 num? 代替。
  6. 输入法热键的重码检查暂时只在当前当前语言下进行,其它语言自行注意即可。功能待以后改进。但是三组通用切换热键允许不同语言重码,互不影响。
  7. 在 Windows10 的热键设置中对“~”键的定义有误,无法生效,为保持兼容性本工具也保留了这个定义;另 Windows10 热键设置中定义的“抑音符”实际为小键盘的数字0。

二、关于键盘布局

  1. Windows10 从 1903 版本开始,已经无法正常将中文简体-美式键盘显示在输入法列表中了(实际是存在并启用的)。为了方便一些老用户,我在程序的输入法列表里硬加了一个“美式键盘”,以蓝色显示,可以正常使用。但是我发现,当切换到美式键盘后,是无法用打开/关闭输入法的切换热键“Ctrl+空格”切换到其它输入法的,只有改用切换键盘布局热键“Ctrl+Shift”或徽标键+空格键。我个人建议是禁用美式键盘,然后把最常用的输入法设置初始状态为“英文”,再用“Ctrl+空格”就可以正常切换了。
  2. 暂时只支持 0409 这一种英文键盘布局。
  3. 因为某些原因,在对美式键盘进行启用、禁用操作时,刷新需要 3~4 秒,注意操作不要太快。

三、其它

  1. 所有设置修改后立即生效,没有设计“确定”、“应用”这类功能。
  2. 本工具支持 Windows10 32/64 位版本和 Windows Server 2019,32 位版本程序在 64 位操作系统下运行正常。Windows7/8 等以前的操作系统的设置实际差异较大,不再支持。
  3. 如果安装了多种语言的输入法,可以从底部的已安装语言列表中切换进行设置。
  4. 输入法列表中显示为“粗体” 的条目表示此输入法已设置为默认输入法,可以从列表上点击右键,从弹出菜单里修改相关设置。
  5. 每种语言下应至少保留一种输入法或键盘。
  6. 如果要添加/删除某些输入法语言,请转到操作系统的设置/时间和语言/语言下进行设置。尝试过直接删除语言,发现容易造成输入法状态混乱,暂时取消了这个功能。
  7. 偶尔会出现工具里的输入法列表和实际的输入法列表不太一致的现象,来回调整几次刷新刷新就会正常。主要原因是因为 Windows 在语言选项中的输入法列表和任务栏上的输入法列表是两个不同的配置,有时候条目数量和顺序会不一致,通过输入法工具设置会纠正这个问题。
  8. 某些输入法(如小狼毫)在卸载不完全时,TSFTool 的输入法列表里可能会存在空行,以后的版本会想办法解决这个问题( 0.9.2.1 版本已解决)。
  9. 要下载 TSFTool,可以去我的个人网站:https://www.mympc.org

             Silence
             2023年2月10日
    

  • 导出配置
    使用“其它功能”菜单下的“导出配置”功能,或者命令行 tsftool /savecfg: bak.cfg,生成配置文件 bak.cfg。配置文件为 INI 格式,文件编码格式为 utf-8,内容如下:

    [0804_list]
    1=微软五笔|{6A498709-E00B-4C45-A018-8F9E4081AE40}|0804|{34745C63-B2F0-4784-8B67-5E12C8701A31}|{82590C13-F4DD-44F4-BA1D-8667246FDF8E}|00000000|Ctrl+5
    2=微软拼音|{81D4E9C9-1D3B-41BC-9E6C-4B40BF79E35E}|0804|{34745C63-B2F0-4784-8B67-5E12C8701A31}|{FA550B04-5AD7-411F-A5AC-CA038EC515D7}|00000000|
    [0804_disabled]
    1=小狼毫|{A3F4CDED-B1E9-41EE-9CA6-7B4D0DE6CB0A}|0804|{34745C63-B2F0-4784-8B67-5E12C8701A31}|{3D02CAB6-2B8E-4781-BA20-1C9267529467}|00000000
    2=美式键盘|{00000000-0000-0000-0000-000000000000}|0804|{34745C63-B2F0-4784-8B67-5E12C8701A31}|{00000000-0000-0000-0000-000000000000}|04090804
    [0804_switchkey]
    layout=Ctrl+Shift
    language=Alt+Shift
    CAPS=Caps Lock
    Ime/NonIme Toggle=Ctrl+SPACE
    Symbol Toggle=Shift+SPACE
    Shape Toggle=Ctrl+.
    [0804_other]
    SwitchMode=1
    LanguageBar=0
    InputEmoji=1
    DefaultIME=0

    说明:
    配置文件中所有内容均为可选,使用时只须填写需要修改的内容即可。
    [0804_list] 小节为简体中文下的输入法列表。在小节下的内容中,等号左边的序号可以任意填写,导入配置时以此行的位置为准;等号右边以“|”分隔为七部分,最后一段为快捷键,没有的话留空。
    [0804_disabled] 小节在导入配置时并不使用。生成此小节的目的是为了方便填写 [0804_list] 小节。
    [0804_switchkey] 小节为通用的切换热键。
    [0804_other] 小节对应界面上其它设置部分。其中 SwitchMode(每个窗口使用不同输入法)功能在 Windows 11 下可能会因为执行过慢而不生效。DefaultIME 指的是默认输入法,取值为 0 表示使用语言列表,其它值对应 [0804_list] 小节下输入法各行的位置;如果将某输入法设置为默认,系统会自动将其提到输入法列表首位。

  • 导入配置
    以如下配置为例:

    [0804_list]
    1=小狼毫|{A3F4CDED-B1E9-41EE-9CA6-7B4D0DE6CB0A}|0804|{34745C63-B2F0-4784-8B67-5E12C8701A31}|{3D02CAB6-2B8E-4781-BA20-1C9267529467}|00000000
    2=微软五笔|{6A498709-E00B-4C45-A018-8F9E4081AE40}|0804|{34745C63-B2F0-4784-8B67-5E12C8701A31}|{82590C13-F4DD-44F4-BA1D-8667246FDF8E}|00000000|
    3=微软拼音|{81D4E9C9-1D3B-41BC-9E6C-4B40BF79E35E}|0804|{34745C63-B2F0-4784-8B67-5E12C8701A31}|{FA550B04-5AD7-411F-A5AC-CA038EC515D7}|00000000|
    [0804_other]
    DefaultIME=1

    此配置的功能是在输入法列表中保留小狼毫、微软五笔和微软拼音三种,并将小狼毫设置为默认输入法。使用“其它功能”菜单下的“导入配置”功能,或者命令行 tsftool /loadcfg: bak.cfg

imetool.rarIMETool 最后一个版本是 2.8.3,更新于2010年1月15日,存档一个以作纪念。注意:只支持 XP 及以前版本,不支持现在流行的 Windows 10/11 等操作系统。
imetool.png

声明:IMETool 为免费软件,非商业使用无须授权,但不得对软件本身做任何修改。允许个人开发的免费输入法软件将其加入安装包使用,但安装包内不得包含有广告插件或流氓软件。

IME TOOL 支持中英文界面,适用于 Win98/ME/2000/XP/2003 操作系统,部分兼容 Windows 7。
主要功能:
一、动态调整输入法顺序而无须重启。
二、切换输入法指示器和高级文字服务方式。
三、任意设置输入法热键
Windows 本身的输入法热键设置功能限制很多,2000/XP 下更是如此,你不得不设置 ctrl+shift+3 这样的三键热键。IME Tool 让你可以自由地设置各种热键,基本键(ctrl、alt、shift)共有六种组合,辅助键有 91 个可选,如用左 Alt+左 Window 键激活龙文五笔,shift+down 激活紫光拼音。当然,有些热键组合是不能用的,如 shift+数字字母键。
四、注册表错误项目修正
1、自动删除输入法列表中不存在的输入法项目,位置:
HKEY_CURRENT_USER\Keyboard Layout\preload
2、检查注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts
下的内容,如果某分支对应的输入法文件不存在,则删除此分支(需要管理员权限)。
3、自动删除输入法从列表中删除后可能遗留的激活热键设置,位置:
HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys
五、输入法键盘定义功能,适用于非英文键盘(需要管理员权限)。
六、安装删除输入法
IME TOOL 可以安装标准格式的输入法。自行复制 ime 和 mb 文件到系统目录中,然后使用 imetool 的安装输入法功能指定输入法名称和 ime 文件即可。
IME TOOL 可以从注册表中删除不需要的输入法,但并不删除文件。
七、其它功能
打开输入法属性、打开关闭输入法状态条等。支持命令行参数,支持运行脚本。
另外修正了老版本存在的一些小 bug。

局限:
1、在 Win9x 下设置的输入法热键不能立即生效,必须重启。在 Win95/NT 系统下有更多的功能限制。

注意:
1、用 IME Tool 设置的一些热键在 Windows 本身的输入法设置中会无法正确显示,但不影响使用。
2、繁体、韩文、日文系统下的打开关闭输入法等切换键设置在注册表中的位置不同,因条件所限我没有做进一步测试功能是否有效。
3、在 IME Tool 中刚添加的输入法不能立即设置属性。
4、如果使用输入法指示器方式时,在系统目录下未发现 internat.exe 和 indicdll.dll 文件,将会自动复制当前目录下的此二文件过去(如果存在)。

命令行参数说明:

/? /h /help 显示此帮助
/on 启用 internat.exe 或 ctfmon.exe
/off 禁用 internat.exe 或 ctfmon.exe
/internat 输入法指示器风格
/ctfmon 高级文字服务风格
/status:<0/1> <0>: 关闭输入法状态条,<1>: 显示输入法状态条
/caps 用 Caps 键关闭大写
/shift 用 Shift 键关闭大写
/switch:<0/1/2/3><a/b> <0>: 不使用切换语言和切换键盘布局热键

                <1>: 仅使用切换语言热键
                <2>: 仅使用切换键盘布局热键
                <3>: 同时使用切换语言和切换键盘布局热键
                <a>: 切换语言热键使用Ctrl+Shift
                <b>: 切换键盘布局热键使用Ctrl+Shift

/hotkey:<1/2/3/a/b/c>,[hotkey] 指定输入法热键

                <1/2/3..>,指定第1、2、3.. 个输入法的热键
                <a> 指定打开/关闭输入法的热键
                <b> 指定全角/半角切换的热键
                <c> 指定中英文标点切换的热键
                如果留空则删除热键
                [hotkey] 热键值,如:ctrl+space

/add1:,[hotkey] 按名称添加输入法到列表
/add2:,[hotkey] 按文件名添加输入法到列表
/add3:,[hotkey] 按 ID 添加输入法到列表
/del1:<1/2/3> 按顺序从列表中删除输入法
/del2: 按名称从列表中删除输入法
/del3: 按文件名从列表中删除输入法
/del4: 按 ID 从列表中删除输入法
/install:[name],,[hotkey] 安装输入法
/uninstall1: 按名称从注册表删除输入法
/uninstall2: 按文件从注册表删除输入法
/uninstall3: 按 ID 从注册表删除输入法
/move1:, 按名称调整输入法顺序, 为调整后的序号,下同
/move2:, 按文件名调整输入法顺序
/move3:, 按 ID 调整输入法顺序
/load: 从配置文件调入参数

[hotkey] 格式: Ctrl+Shift_8_Left,如果同时使用左右键,则可以写为:
Ctrl+Shift_8。
注意:要在命令行参数设置“/”和“,”作为辅助热键时,为避免和参数前导符和分隔符冲突,应写为“?”和“~”,如:ctrl_?_right、alt_~
要安装一个输入法到注册表时,须手工复制文件,xx.ime 文件必须复制到系统目录中。使用 /install 参数安装时,xx.ime 文件名前不能加路径,如:
imetool /install:中文(简体) - 智能 ABC,winabc.ime

欢迎测试并反馈 bug。

更新:
2.8.3 版,去除安装输入法时多余的弹出窗口(调试程序用,以前版本忘记屏蔽)。
2.8.2 版,兼容 Windows 7,但存在如下问题:输入法顺序调整功能不正常,安装输入法功能有问题暂时禁用。另外关闭了输入法指示器模式。
2.8.1 版,修正网友提出的在命令行无法设置“,”热键问题(改用“~”符号),主程序增加版本信息资源。为避免一些弱智杀毒软件误报病毒的问题,不再使用 upx 压缩,体积由 50K 增加至 119K。
2.8.0 版,修正“APPS”(右键菜单键)热键误设为右 Windows 键的问题。
2.7.9 版,修正热键选择为“无”,确定后程序非法操作的问题。
2.7.8 版,修正在输入法风格里连续点击同一个模式单选框时,输入法切换热键会来回切换问题。
2.7.7 版,修正 /off 参数无效问题;修正 /del1 参数指定了不存在的序号时出错的问题。
2.7.6 版,改进显示某些输入法名称不正确的问题(如微软拼音2007),6月24日增补一处界面中的繁体提示信息,未更新版本号。
2.7.5 版,修订 2.7.2 版出现的在某些情况下输入法列表显示错位的情况。
2.7.4 版,增加繁体显示界面;修改 internat.exe 和 ctfmon.exe 在注册表中的值,以和系统保持一致。
2.7.3 版,修订子窗口的一些问题。
2.7.2 版,增强对 VISTA 的兼容性;改进输入法列表中输入法名称的显示方式;增加自定义输入法名称功能(仅对高级文字服务模式有效,点击列表中输入法名称或按 F2 进行修改,如应用后看不到效果,注销或重启即可);修订在 2003 下列表可能不显示的问题,修订一些 bug。
2.7.1 版,修订重复热键可能无法取消的 bug。
2.7.0 版,修订热键重复提示的 bug。
2.6.9 版,增加一种修复注册表重复项目功能。
2.6.8 版, 增加三个命令行参数,用以调整输入法顺序。改善输入法状态条显示问题。增加一些状态条显示信息。帮助文档改用 utf-8 格式保存。
2.6.7 版,修订上一版本在 2003 下无法正常显示输入法列表的问题(此问题是由我使用的新版本控件bug引起)。
2.6.6 版,增加两个命令行参数,修订以命令行方式添加输入法时在某些情况下添加多余输入法的问题。
2.6.5 版,使高级文字服务和输入法指示器风格下的输入法切换热键保持一致,文字提示稍做调整,便于用户理解。增加常见问题说明。
2.6.4 版,程序内部一些调整。
2.6.3 版,程序内部一些调整。
2.6.2 版,解决某些情况下可能会使输入法指示条消失的问题(注:经仔细测试,此问题并未解决,具体原因不明,待研究)。
2.6.1 版,实现了带参数运行时完全隐藏主界面。
2.6.0 版,修复使用 /install 参数时在某种情况下会运行出错的 bug。参数中的分隔符由竖线改为逗号。
2.5.9 版,将自动复制 internat.exe/indicdll.dll 的源路径由当前路径改为 imetool.exe 所在路径。在程序左上角菜单中增加命令行参数提示。
2.5.8 版,修改键盘定义对话框丢失下拉列表问题(真是莫名其妙),一些细节调整。
2.5.7 版,修订其它切换热键的设置按钮文字不会随左边的下拉列表切换的 bug。
2.5.6 版,应网友要求取消气球提示,改为状态栏提示。
2.5.5 版,增强对语言栏丢失时的修复功能(有时需要注销后方可生效)。
2.5.4 版,修订设置热键时小键盘某些键值不对的问题。
2.5.3 版,修订启动时检测输入法风格可能不对的 bug。
2.5.2 版,本修订添加输入法时图标显示的一处 bug。高级/从注册表删除输入法时可在输入法显示框中用鼠标滚轮切换不同的输入法。
2.5.1 版,修订一些程序上的 bug,添加关于信息。
2.5.0 版,支持命令行参数、支持从脚本调入参数运行。
2.4.5 版,修订安装输入法时导致出错的问题。
2.4.4 版,继续修订 bug。
2.4.3 版,修正 2.4.2 版未完全修正的问题。
2.4.2 版,修正点击应用按键后一些显示状态错位问题。
2.4.1 版,修正热键设置窗口状态显示不正常问题。
2.4.0 版,重新调整界面布局。增加应用按钮。安装 ime 文件时可以自动获取文件信息做为输入法名称。调整程序处理流程。
2.3.1 版,更新:大写关闭键设置后可立即生效;在输入法列表的不同列上双击可分别打开属性和热键设置。压缩包中的 internat.exe 做了修改,在其右键上选择属性可打开 imetool。另外修订一些 bug。
2.3.0 版,增加安装删除输入法功能;增加一些项目的浮动提示;增加可安装输入法(语言)的范围;修正一些小的 bug。改变版本号的命名方式便之规范化。
2.22 版,一些内部项目的调整
2.21 版,修订会误删除某些注册表项目的 bug。
2.2 版,可以将排列第一位的输入法立即设为默认输入法而无须重启。
2.12 版,修正输入法打开关闭等热键无法取消的 bug。
2.11 版,修正某些情况下程序会无法运行的 bug。

本压缩包中附带的 internat.exe 和 indicdll.dll 为从 Windows 2000 Pro 简体中文版中提取并修改过,适用于 XP/2003。

                    Silence
                    2010.1.15