PowerShell设置Windows10输入法顺序

系统自带的输入法设置不正常

Windosw10在安装使用一些比较旧的输入法的时候,在设置里面添加删除输入法都不太正常,比如极点五笔,一般是选项呈现灰色状态,无法添加或者删除。

设置里面添加删除输入法都不太正常

一般要借助搜狗输入自带的输入法管理器之类的工具才能更改。

搜狗输入自带的输入法管理器

其实可以直接使用PowerShell来对输入法添加删除、修改顺序。

核心语句和机制

核心语句是 New-WinUserLanguageListGet-WinUserLanguageList

可以先用搜狗之类带的输入法管理器把输入法排得着不多之后,用 Get-WinUserLanguageList 来获取当前的输入法配置。

LocalizedName项就是设置里面添加的语言

InputMethodTips项就是输入法的顺序

Get-WinUserLanguageList

其实本质上还是注册表,但是直接改注册表后重启资源管理器是不生效的,不知道是哪部分负责的,重启应该能生效吧,所以还是直接用PowerShell吧。

中文(简体,中国)语言的注册表路径:HKEY_CURRENT_USER\Control Panel\International\User Profile\zh-Hans-CN

HKEY_CURRENT_USER\Control Panel\International\User Profile\zh-Hans-CN

注意看注册表“数据“里面的数字,顺序和PowerShell里面得到的顺序、以及系统里面的输入法排序是一样的。

常用的输入法的值

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个输入法。

极点五笔比较特殊,在繁体系统下面是添加在 中文(繁体,台湾)这个语言里面的。

POWERSHELL
 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脚本,有时候不是输入法的顺序有问题,而且输入法直接没了。

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

版权声明

作者: tjxwork

链接: https://tjxblog.com/blog/2023-0003/

许可证: CC BY-NC-SA 4.0

使用者可以对本创作进行转载、节选、混编、二次创作,但不得运用于商业目的,且使用时须进行署名,采用本创作的内容必须同样采用本协议进行授权。

评论

开始搜索

输入关键词搜索文章内容

↑↓
ESC
⌘K 快捷键