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

下载:tsftool.rar

tsftool.png
版本历史:
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框架输入法。

命令行参数:
/? /h /help 显示此帮助内容。
/r /refresh 重载键盘布局。
/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
             2022年6月22日
    

标签: tsftool, imetool, 输入法设置工具

已有 25 条评论

  1. lomom楼猫 lomom楼猫

    根本没有下载链接

    1. 看来是眼神不太好。:D

  2. 古大虾 古大虾

    第一次也没看到,第二次在图左上发现……

    1. 我的错,把字号改粗一点。

  3. 牛逼啊没想到更新了。 牛逼啊没想到更新了。

    早几年就好了。

  4. 古大虾 古大虾

    大佬,这个工具在Win10下真的帮了大忙,能否加上设置默认输入法的功能,……还是说我没找到哈哈

  5. 大马猴 大马猴

    可以不可以付费定制一下

    1. 说出你的想法

      1. 大马猴 大马猴

        主要功能就是能够导出当前输入法列表,禁用输入法没有四秒提示,静默禁用
        能不能留个联系方式,沟通一下

        1. 更新 0.9.2.4 版本,增加上述功能。

  6. 老人 老人

    建议为默认输入法增加单快捷键打开的功能。实现一键打开默认输入法,想关闭时一键关闭。比如,使用功能键F10。

    1. 这需要常驻内存的程序来实现,不是本工具的设计方向。

  7. GoodbyeNJN GoodbyeNJN

    我尝试实现两个输入法之间切换的功能,想请教下如何获取当前正在使用的输入法?
    比如当前正在使用微软拼音,按一个键后切换到微软五笔,再按同一个键后切回微软拼音。
    在微软提供的文档上查到微软拼音输入法的标识是 0804:{81D4E9C9-1D3B-41BC-9E6C-4B40BF79E35E}{FA550B04-5AD7-411f-A5AC-CA038EC515D7},不知道该怎么使用

  8. [...]臨時解決方法最簡單有效的是使用免費免安裝的「TSFTool V0.9.2.8 輸入法設置工具」(https://www.mympc.org/)的一個特別功能:「刪除頑固的英語美式鍵盤」,無須以上新增語言的步驟,一定有效,且立即生效(如下圖)。但缺點是重新開機後「Eng 英文鍵盤」又再出現。[...]

  9. u2shana u2shana

    那个顽固的英语美式键盘,删了,过一段时间又莫名其妙冒出来,有办法彻底干掉么

    1. 2006年时我在某论坛的帖子里提到过这个问题:出现这种情况,多半是因为你电脑上安装的某个软件的问题。它在设计时使用了某种国外的控件,而这种控件会自动添加英语键盘(大概是老外开发者认为英语键盘是必须的吧),最常见的方法是调用了 UnloadKeyboardLayout/LoadKeyboardLayout 之类的函数。解决方法之一就是找到这个软件的主程序,强行修改干掉这些函数。不过对普通用户来说可能有些难度。

  10. zhq zhq

    我想将 打开/关闭输入法默认的CTRL+SPACE更改为CTRL,在原IMETOOL中可以改但无效,在TSFTOOL中,必须CTRL+一个组合键,没有CTRL+无了,能再提供一下吗?谢谢

    1. 正如你描述的那样,是不可能实现单键打开/关闭输入法的。

  11. kidzgy kidzgy

    我很好奇,如果64位系统,运行你这个32位程序,在正常使用上会有什么区别吗?

    1. kidzgy kidzgy

      我很好奇,如果64位系统,运行你这个32位程序,在正常使用上会有什么区别吗?
      因为不像其他大程序,64位是处于性能的需要,但小程序的话,32位能实现,64位的存在意义又在哪里呢?

      1. 从编程角度来说,同一个语句,在不同的环境下可能会有不同的效果,比如读写注册表的位置是不同的、默认的系统目录位置也是不同的。

        1. kidzgy kidzgy

          既如此,为什么x86和x64不整合成一个文件,由软件来根据不同的环境读取不同的注册表值,这样一个文件岂不更好吗?

          0928版本发现一问题,我在运行软件前,是使用桌面语言栏的,在运行软件后,任务栏里的语言栏图标消失,而软件仍显示打勾。我关闭软件重新运行,发现【使用桌面语言栏】已经去勾。

          另外想请教,我在win7时代,是喜欢用【ctrl+空格】来切换输入法,主要是切换中文和英文,任务栏右下角处使用语言栏,并将其最小化,不显示其他图标,同时将搜狗输入法状态栏设置隐藏。这样一来,我就根据输入法的图标来判断当前输入法状态是处与中文或英文,搜狗输入法图标为S字,英文输入法图标为键盘。而且就一个图标判定,前面没有EN也没有CN的图标,这样的任务栏空间不会出现挤占

          按照作者的推荐,不使用美式键盘,而是直接将搜狗输入法(以搜狗为例)设置为默认,并将其设置默认为英文状态,用ctrl+空格来切换中英文。

          这样有一个问题,就是右下角的语言栏图标始终是搜狗的图标,就无法即时分辨当前是处于中文还是英文状态了。除非:
          (1)设置语言栏显示其他图标。这样的坏处就是,所谓其他图标包括中英文、全半角、键盘、账户登录、设置多个按钮,挤占任务栏空间,且这些按钮都无法自定义!在切换输入法的时候,美式键盘时无其他图标,切换至搜狗时又突然显示其他图标,会发生任务栏图标位置变动。
          (2)开启搜狗输入法自带的指示器,这样系统需要多一个搜狗的常驻进程,任务栏会多一个小图标。

          试问是否有其他方法更好的监视当前输入法中英文状态?

          1. 现在系统的主流是64位,仍保留32位版本是为了顾及部分用户,但没有必要单独再增加代码。无法重现这个问题。Win10 时代没有什么好的方法,所有可行的方案都是另写一个常驻程序外挂。国人有个叫“Win10输入法经典切换”的工具,可以完全模拟 Win7 时代的 Ctrl+空格切换方式,不过记得后来收费了。另外有个叫 ImTip ( 输入法状态跟踪提示 ) 的工具,可以在输入法框里浮动显示中英文、全半角等状态,也可以一试。

添加新评论