Silence
2023年2月10日
标签: tsftool, imetool, 输入法设置工具
已有 71 条评论
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Control Panel\International\User Profile]
"Languages"=hex(7):7a,00,68,00,2d,00,48,00,61,00,6e,00,73,00,2d,00,43,00,4e,00,\
00,00,6a,00,61,00,00,00,65,00,6e,00,2d,00,55,00,53,00,00,00,00,00
"ShowAutoCorrection"=dword:00000001
"ShowTextPrediction"=dword:00000001
"ShowCasing"=dword:00000001
"ShowShiftLock"=dword:00000001
"InputMethodOverride"="0804:{6565D455-5030-4C0F-8871-83F6AFDE514F}{4D5459DB-7543-42C0-9204-9195B91F6FB8}"
"HttpAcceptLanguageOptOut"=dword:00000001
[HKEY_CURRENT_USER\Control Panel\International\User Profile\en-US]
"CachedLanguageName"="@Winlangdb.dll,-1121"
"0409:00000409"=dword:00000001
"FeaturesToInstall"=dword:000000ff
[HKEY_CURRENT_USER\Control Panel\International\User Profile\ja]
"CachedLanguageName"="@Winlangdb.dll,-1230"
"0411:{03B5835F-F03C-411B-9CE2-AA23E1171E36}{A76C93D9-5523-4E90-AAFA-4DB112F9AC76}"=dword:00000001
"FeaturesToInstall"=dword:000000ff
[HKEY_CURRENT_USER\Control Panel\International\User Profile\zh-Hans-CN]
"CachedLanguageName"="@Winlangdb.dll,-1650"
"0804:{6565D455-5030-4C0F-8871-83F6AFDE514F}{4D5459DB-7543-42C0-9204-9195B91F6FB8}"=dword:00000001
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\CTF\TIP]
[HKEY_CURRENT_USER\Software\Microsoft\CTF\TIP{03B5835F-F03C-411B-9CE2-AA23E1171E36}]
[HKEY_CURRENT_USER\Software\Microsoft\CTF\TIP{03B5835F-F03C-411B-9CE2-AA23E1171E36}\LanguageProfile]
[HKEY_CURRENT_USER\Software\Microsoft\CTF\TIP{03B5835F-F03C-411B-9CE2-AA23E1171E36}\LanguageProfile\0x00000411]
[HKEY_CURRENT_USER\Software\Microsoft\CTF\TIP{03B5835F-F03C-411B-9CE2-AA23E1171E36}\LanguageProfile\0x00000411{A76C93D9-5523-4E90-AAFA-4DB112F9AC76}]
"Enable"=dword:00000001
[HKEY_CURRENT_USER\Software\Microsoft\CTF\TIP{8613E14C-D0C0-4161-AC0F-1DD2563286BC}]
[HKEY_CURRENT_USER\Software\Microsoft\CTF\TIP{8613E14C-D0C0-4161-AC0F-1DD2563286BC}\LanguageProfile]
[HKEY_CURRENT_USER\Software\Microsoft\CTF\TIP{8613E14C-D0C0-4161-AC0F-1DD2563286BC}\LanguageProfile\0x0000ffff]
[HKEY_CURRENT_USER\Software\Microsoft\CTF\TIP{8613E14C-D0C0-4161-AC0F-1DD2563286BC}\LanguageProfile\0x0000ffff{B37D4237-8D1A-412E-9026-538FE16DF216}]
"Enable"=dword:00000001
[HKEY_CURRENT_USER\Software\Microsoft\CTF\TIP{F25E9F57-2FC8-4EB3-A41A-CCE5F08541E6}]
[HKEY_CURRENT_USER\Software\Microsoft\CTF\TIP{F25E9F57-2FC8-4EB3-A41A-CCE5F08541E6}\LanguageProfile]
[HKEY_CURRENT_USER\Software\Microsoft\CTF\TIP{F25E9F57-2FC8-4EB3-A41A-CCE5F08541E6}\LanguageProfile\0x00000804]
[HKEY_CURRENT_USER\Software\Microsoft\CTF\TIP{F25E9F57-2FC8-4EB3-A41A-CCE5F08541E6}\LanguageProfile\0x00000804{F2510000-2FC8-4EB3-A41A-CCE5F08541E6}]
"Enable"=dword:00000001
0.9.3.1发现一BUG。
测试环境Windows10 64,10.0.19044.1741。
具体是这样的,启用桌面语言栏,任务栏的语言栏按钮,会有英文(美国)和中文(中国)的两种语言,使用TSFTOOL删除顽固的英文(美国)语言时,仍旧无法彻底删除。
在语言设置处,手动添加英文(美国)语言,添加后再手动删除,此时才可彻底删尽。
这个其实不是bug,删除顽固的英文(美国)语言那个功能是不处理注册表的,只是处理某些通过 API 函数动态添加的“英文”键盘布局,这种动态添加的项目一般重启后就会消失。因为它并不在注册表中出现,所以我是把它作为一种特殊情况放在了其它菜单里。
我一直是在 Win11 下进行开发的,没有这个问题。它等效于 Windows 本身的设置/时间和语言/输入/高级键盘设置下的“使用桌面语言栏”这个功能。如果系统设置可以正常切换,则检查 PowerShell 是否被禁用,TSFTool 依赖于 PowerShell。
\HKEY_CURRENT_USER\Control Panel\Desktop\UserPreferencesMask 的第5个数设置为16进制的 12 或者 92,但有的系统可能会是 10 或者 90。
比较稳妥的办法是使用 powershell 命令进行设置,这个功能和使用桌面语言栏功能是相互关联的,共有四种状态组合,对应四个命令:
powershell -command "& {Set-WinLanguageBarOption}"
-command "& {Set-WinLanguageBarOption -UseLegacyLanguageBar}"
-command "& {Set-WinLanguageBarOption -UseLegacySwitchMode}"
-command "& {Set-WinLanguageBarOption -UseLegacySwitchMode -UseLegacyLanguageBar}"
嫌麻烦就直接用 TSFTool 的命令:
/alone:0 /alone:1
您好,请问有没有什么方法可以在两种指定的输入法间互相切换呢?
Win7的时候Ctrl+Space会在中文输入法和中文美式键盘间切换,从Win10开始就等同于输入法的中英切换了(按shift会变回中文,并非真正关闭输入法),现在即使强制打开使用中文美式键盘,在cmd里还是会被视为中文上屏
始终找不到方法在英文美式键盘和中文输入法间互相切换(两种以上输入法的情况下Win+Space和Alt+Shift都做不到互相切换)
在 TSF 框架中,各种美式键盘都不是输入法,而是键盘布局,它和输入法的处理机制是不太一样的。你s想实现的功能,要么装第三方的工具常驻后台捕捉 Ctrl+Sapce 处理切换输入法,要么可以考虑把最常用的输入法设置成默认为英文状态。
大神你好,想在开机时使用命令行增加美式键盘并设置美式键盘为默认语言
/add_name:美式键盘 /emoji:1 /alone:1 /default_name:美式键盘
此命令没有问题 ,但会有界面弹出 有支持静默的参数吗?
还是无法彻底干掉英文键盘,之前没有这种情况,不知道什么原因就一直会加载。
另外imetool最终版网上有一个2.8.3不知道是不是官方出品,而且是单文件的,如果是可以更新到这里吗?如果不是,那官方的版本是否也可以做成单文件版?
我之前说过多次,英文键盘有很多都是由一些使用了国外控件的程序自动注册进来的,得找到这个应用才能彻底干掉。imetool 从来都是绿色单文件的,附带的两个以i开头的文件是 windows2000 里的系统文件,在 Windows XP 下切换到输入法指示器模式下使用它们,这一点在程序包里附带的文件里有说明。
截获键盘消息一般是用键盘钩子之类的方法,AttachThreadInput 和 WM_INPUTLANGCHANGEREQUEST 之类的函数可以控制其它进程的输入法,不过我没有做过这方法的研究。
我很好奇,如果64位系统,运行你这个32位程序,在正常使用上会有什么区别吗?
因为不像其他大程序,64位是处于性能的需要,但小程序的话,32位能实现,64位的存在意义又在哪里呢?
既如此,为什么x86和x64不整合成一个文件,由软件来根据不同的环境读取不同的注册表值,这样一个文件岂不更好吗?
0928版本发现一问题,我在运行软件前,是使用桌面语言栏的,在运行软件后,任务栏里的语言栏图标消失,而软件仍显示打勾。我关闭软件重新运行,发现【使用桌面语言栏】已经去勾。
另外想请教,我在win7时代,是喜欢用【ctrl+空格】来切换输入法,主要是切换中文和英文,任务栏右下角处使用语言栏,并将其最小化,不显示其他图标,同时将搜狗输入法状态栏设置隐藏。这样一来,我就根据输入法的图标来判断当前输入法状态是处与中文或英文,搜狗输入法图标为S字,英文输入法图标为键盘。而且就一个图标判定,前面没有EN也没有CN的图标,这样的任务栏空间不会出现挤占
按照作者的推荐,不使用美式键盘,而是直接将搜狗输入法(以搜狗为例)设置为默认,并将其设置默认为英文状态,用ctrl+空格来切换中英文。
这样有一个问题,就是右下角的语言栏图标始终是搜狗的图标,就无法即时分辨当前是处于中文还是英文状态了。除非:
(1)设置语言栏显示其他图标。这样的坏处就是,所谓其他图标包括中英文、全半角、键盘、账户登录、设置多个按钮,挤占任务栏空间,且这些按钮都无法自定义!在切换输入法的时候,美式键盘时无其他图标,切换至搜狗时又突然显示其他图标,会发生任务栏图标位置变动。
(2)开启搜狗输入法自带的指示器,这样系统需要多一个搜狗的常驻进程,任务栏会多一个小图标。
试问是否有其他方法更好的监视当前输入法中英文状态?
我想将 打开/关闭输入法默认的CTRL+SPACE更改为CTRL,在原IMETOOL中可以改但无效,在TSFTOOL中,必须CTRL+一个组合键,没有CTRL+无了,能再提供一下吗?谢谢
2006年时我在某论坛的帖子里提到过这个问题:出现这种情况,多半是因为你电脑上安装的某个软件的问题。它在设计时使用了某种国外的控件,而这种控件会自动添加英语键盘(大概是老外开发者认为英语键盘是必须的吧),最常见的方法是调用了 UnloadKeyboardLayout/LoadKeyboardLayout 之类的函数。解决方法之一就是找到这个软件的主程序,强行修改干掉这些函数。不过对普通用户来说可能有些难度。
或者说大佬能否提供一个删除的指令?我想把它做成启动项,能开机后自动删除英文美式键盘。(其实已经查出来就是igfxCUIService1.0.0.0 Intel(R) HD Graphics Control Panel Service这个捣的鬼,但是又没办法禁用,要不显卡不正常)
应该不是 intel 显卡服务的问题,我也用它很多年了,从来没有给我添加过英文美式键盘。
删除这种键盘布局是调用的一个古老的 windows api 函数 unloadkeyboardlayout,得写程序才方便实现。我特地更新了一下 tsftool,增加了一个 /remove_eng 命令行参数来执行这个操作。
[...]臨時解決方法最簡單有效的是使用免費免安裝的「TSFTool V0.9.2.8 輸入法設置工具」(https://www.mympc.org/)的一個特別功能:「刪除頑固的英語美式鍵盤」,無須以上新增語言的步驟,一定有效,且立即生效(如下圖)。但缺點是重新開機後「Eng 英文鍵盤」又再出現。[...]
我尝试实现两个输入法之间切换的功能,想请教下如何获取当前正在使用的输入法?
比如当前正在使用微软拼音,按一个键后切换到微软五笔,再按同一个键后切回微软拼音。
在微软提供的文档上查到微软拼音输入法的标识是 0804:{81D4E9C9-1D3B-41BC-9E6C-4B40BF79E35E}{FA550B04-5AD7-411f-A5AC-CA038EC515D7},不知道该怎么使用
使用 ITfInputProcessorProfileMgr::GetActiveProfile 这个方法,参见:
https://docs.microsoft.com/en-us/windows/win32/api/msctf/nf-msctf-itfinputprocessorprofilemgr-getactiveprofile
Silence: 感谢鼓励。我也曾一度认为有技术就饭吃,现在发现在年龄这道坎面前,...