1. 程式人生 > 其它 >Win11單語言系統新增美式鍵盤的方法

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檔案

 

 

 

 

 建立完成以後,執行測試一下沒問題,重啟電腦測試,結果跟預想的一樣。

搞定收工,繼續搬磚