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檔案
建立完成以後,執行測試一下沒問題,重啟電腦測試,結果跟預想的一樣。
搞定收工,繼續搬磚