风过无痕,生命如烟

每个人生下来都是天使,不过这个世界上也存在着恶魔。恶魔是天使变的,因为这个世界充满了诱惑。

导航

Win11单语言系统添加美式键盘的方法

个人习惯系统默认输入法是美式键盘。新买的笔记本自带的是Win11的操作系统, 默认是中文语言,卸载了微软自带的输入法,换成了搜狗。

然后想添加美式键盘作为默认的输入法。

百度以后进行下列操作

在设置=>时间和语言=>语言和区域=>首选语言中添加美国英语

这时候发现输入法状态栏里面多出来了一个ENG,完美!~~开始搬砖…………

搬砖结束以后关机,第二天打开电脑,WTF,美式键盘怎么不见了。

检查设置发现美国英语还在里面啊,什么鬼,交换了一下语言顺序,再改回去,发现美式键盘又冒出来了。

然后第三天开机美式键盘又不见了T_T

发现设置里面的美国英语一栏里面有一行字:你的Windows许可证只支持一种显示语言,WTF。

百度以后说是需要升级Windows Pro才能显示多种语言,需要小一千块。为了个美式键盘花费1000块,不划算啊。

想起来交换首选语言列表就可以让美式键盘恢复,能不能通过脚本完成交换首选语言列表呢?然后开启自动执行这个脚本

说试就试

决定直接用PowerShell来搞,不要问我为什么不用BAT,直觉告诉我要选PS的。谷歌关键字"powershell preferred language"(不要问为什么这里用谷歌不用百度, 问就是专业的还是要找谷歌,也许会有人问那你怎么知道首选语言是preferred language呢?我也不知道啊,我百度的。神马?有人说谷歌访问不了?打死我也不会供出梯子来的)

直接来到Windows官网文档关于Set-WinUILanguageOverride的函数说明

发现里面有: sets a user-preferred display language的字样

先试试这个函数, 文档提示这个函数需要传入一个 -Language的参数,是使用的语言名称,这个名称明显是需要符合一定规则的,怎么知道中文和美国英语对应的名称呢

翻文档看到有一个Get-WinUserLanguageList函数, 在PowerShell里面执行,得到简体中文的名称是zh-Hans-CN, 美式英语的名称是en-US

再执行命令: Set-WinUILanguageOverride -Language zh-Hans-CN

然后没有什么反应,说明Set-WinUILanguageOverride不是我要找的

继续翻文档,有一个函数叫做Set-WinUserLanguageList,应该是设置语言列表的。试试这个

$OldList = Get-WinUserLanguageList
$Temp = $OldList[0]
$OldList[0] = $OldList[1]
$OldList[1] = $Temp

Set-WinUserLanguageList -LanguageList $OldList

刷新设置页面,咦,起作用了,美式键盘也出现了,就是你了。

接下来是完整的PS脚本

Write-Host "Start first switch preferred language"
$OldList = Get-WinUserLanguageList
$Temp = $OldList[0]
$OldList[0] = $OldList[1]
$OldList[1] = $Temp

Set-WinUserLanguageList -LanguageList $OldList -Force

Write-Host "Start second switch preferred language"


$Temp = $OldList[0]
$OldList[0] = $OldList[1]
$OldList[1] = $Temp

Set-WinUserLanguageList -LanguageList $OldList -Force

Write-Host "Update US keyboard done."

喂,兄弟, 输出的日志为什么是英文啊?我不会告诉你我一开始写的是中文,后面发现输出到文件变成乱码了,结果就改英文了,反正也无关紧要的。PS大神不要嘲讽我中文日志都不会输出,懒得去搜索了,第一次写PS脚本。

接下来就是开启运行脚本

百度一下 "powershell 开机运行" (又换百度了啊?说好的专业的要找谷歌的呢?我的地盘我做主)

找到这篇文章:https://www.jianshu.com/p/a82c6bb91422

需要写一个BAT脚本来运行PS脚本啊,简单,我们来个五鬼搬运法:

照搬上面文章里面的CMD文件就好

 

 

 

在Windows开始菜单,搜索Task打开<计划任务程序>

 

创建一个新任务, 注意要选上使用最高权限运行

 

 触发器为登录时

 

 操作添加上面那个CMD文件

 

 

 

 

 创建完成以后,运行测试一下没问题,重启电脑测试,结果跟预想的一样。

搞定收工,继续搬砖

 

posted on 2022-04-15 11:37  hyamw  阅读(2042)  评论(1编辑  收藏  举报