系统自带的输入法设置不正常
Windosw10在安装使用一些比较旧的输入法的时候,在设置里面添加删除输入法都不太正常,比如极点五笔,一般是选项呈现灰色状态,无法添加或者删除。
一般要借助搜狗输入自带的输入法管理器之类的工具才能更改。
其实可以直接使用PowerShell来对输入法添加删除、修改顺序。
核心语句和机制
核心语句是 New-WinUserLanguageList
、Get-WinUserLanguageList
可以先用搜狗之类带的输入法管理器把输入法排得着不多之后,用 Get-WinUserLanguageList
来获取当前的输入法配置。
LocalizedName
项就是设置里面添加的语言
InputMethodTips
项就是输入法的顺序
其实本质上还是注册表,但是直接改注册表后重启资源管理器是不生效的,不知道是哪部分负责的,重启应该能生效吧,所以还是直接用PowerShell吧。
中文(简体,中国)
语言的注册表路径:HKEY_CURRENT_USER\Control Panel\International\User Profile\zh-Hans-CN
注意看注册表“数据“里面的数字,顺序和PowerShell里面得到的顺序、以及系统里面的输入法排序是一样的。
常用的输入法的值
1#常用的输入法的值
2
3#zh-Hans-CN 搜狗拼音
40804:{E7EA138E-69F8-11D7-A6EA-00065B844310}{E7EA138F-69F8-11D7-A6EA-00065B844311}
5
6#zh-Hans-CN 搜狗五笔
70804:{E7EA138F-69F8-11D7-A6EA-00065B844310}{E7EA1390-69F8-11D7-A6EA-00065B844311}
8
9#zh-Hans-CN #微软拼音
100804:{81D4E9C9-1D3B-41BC-9E6C-4B40BF79E35E}{FA550B04-5AD7-411F-A5AC-CA038EC515D7}
11
12#zh-Hans-CN #微软五笔
130804:{6A498709-E00B-4C45-A018-8F9E4081AE40}{82590C13-F4DD-44F4-BA1D-8667246FDF8E}
14
15#zh-Hans-CN #极点五笔
160804:E0010804
17
18#zh-Hans-TW #极点五笔
190404:E0010404
脚本代码
下面直接放脚本,还是比较好理解的。
因为公司里面有两种语言的系统,所以做了判断。
脚本主要作用就是按顺序添加:搜狗拼音、搜狗五笔、极点五笔、纯英文输入 这4个输入法。
极点五笔比较特殊,在繁体系统下面是添加在 中文(繁体,台湾)
这个语言里面的。
1# 设置Win10输入法顺序.ps1
2
3if ((Get-WinSystemLocale).Name -eq "zh-CN") {
4 #如果系统语言是简体
5 $UserLanguageList = New-WinUserLanguageList -Language "zh-Hans-CN" #生成 中文(简体,中国)
6 $UserLanguageList.Add("en-US") #添加 英文(美国)
7
8 $UserLanguageList[0].InputMethodTips.Clear()
9 $UserLanguageList[0].InputMethodTips.Add('0804:{E7EA138E-69F8-11D7-A6EA-00065B844310}{E7EA138F-69F8-11D7-A6EA-00065B844311}') #搜狗拼音
10 $UserLanguageList[0].InputMethodTips.Add('0804:{E7EA138F-69F8-11D7-A6EA-00065B844310}{E7EA1390-69F8-11D7-A6EA-00065B844311}') #搜狗五笔
11 $UserLanguageList[0].InputMethodTips.Add('0804:E0010804') #极点五笔
12
13 Set-WinUserLanguageList -LanguageList $UserLanguageList -Force
14}
15else {
16 #如果系统语言不是简体(是繁体)
17 $UserLanguageList = New-WinUserLanguageList -Language "zh-Hans-CN" #生成 中文(简体,中国)
18 $UserLanguageList.Add("zh-Hant-TW") #添加 中文(繁体,台湾)
19 $UserLanguageList.Add("en-US") #添加 英文(美国)
20
21 $UserLanguageList[0].InputMethodTips.Clear()
22 $UserLanguageList[0].InputMethodTips.Add('0804:{E7EA138E-69F8-11D7-A6EA-00065B844310}{E7EA138F-69F8-11D7-A6EA-00065B844311}') #搜狗拼音
23 $UserLanguageList[0].InputMethodTips.Add('0804:{E7EA138F-69F8-11D7-A6EA-00065B844310}{E7EA1390-69F8-11D7-A6EA-00065B844311}') #搜狗五笔
24
25 $UserLanguageList[1].InputMethodTips.Clear()
26 $UserLanguageList[1].InputMethodTips.Add('0404:E0010404') #极点五笔
27
28 Set-WinUserLanguageList -LanguageList $UserLanguageList -Force
29}
顺便给一个输入法不见了的处理bat脚本,有时候不是输入法的顺序有问题,而且输入法直接没了。
1: 修复输入法消失.bat
2
3taskkill /F /IM ChsIME.exe
4start C:\Windows\system32\ctfmon.exe
5REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "ctfmon.exe" /t REG_SZ /d "C:\Windows\system32\ctfmon.exe" /f
运行效果
这是运行完脚本之后的效果
注册表里面也变了
原文作者:tjxwork
原文链接:https://www.tjxblog.com/blog/2023-0003
发布时间:2023-02-05
评论