
當我的語言設定是英語或德語時,有沒有辦法用俄語開啟虛擬 Windows 鍵盤?
我可以透過腳本或任何其他捷徑以與目前設定不同的語言開啟虛擬鍵盤嗎?根據這個訊息在這裡我可以使用osk
(powershell,cmd),但沒有機會設定語言。
我找到了一個尷尬的解決方案。根據https://superuser.com/a/922767/72397我可以使用具有俄語語言環境的不同使用者。
然後我就可以用這個用戶來啟動了osk
。因為740: The requested operation requires elevation
我需要使用這個解決方法並cmd
先解僱另一個(請參閱https://superuser.com/a/1134561/72397)。
因此,runas /profile /savecred /user:"RUSSIAN USER" "cmd /c start osk"
使用該特定使用者的區域設定啟動 osk。
OSK
編輯2:經過一些測試,我意識到即使OSK
以不同的使用者身分運行,也不可能有與目前區域設定不同的區域設定。一旦我單擊OSK
視窗上的某個位置,它就會將其鍵盤佈局更改為我的區域設定。
OSK
我的想法是在我使用德國鍵盤佈局時讓一個以俄語運行。
因此,最好的解決方案似乎是使用該AutohotKey
解決方案,快速更改為俄語,然後再返回。
答案1
您需要使用第三方工具。
您可以使用免費的自動熱鍵。
以下範例腳本會將系統語言切換為給定的安裝語言並啟動螢幕鍵盤。這裡F11將語言設定為美國英語,同時 F12將其設定為法語標準。更多語言程式碼可以在微軟文章中找到 語言程式碼。
F11::SetDefaultKeyboard(0x0409) ; english-US
F12::SetDefaultKeyboard(0x040c) ; french
SetDefaultKeyboard(LocaleID){
Global
SPI_SETDEFAULTINPUTLANG := 0x005A
SPIF_SENDWININICHANGE := 2
Lan := DllCall("LoadKeyboardLayout", "Str", Format("{:08x}", LocaleID), "Int", 0)
VarSetCapacity(Lan%LocaleID%, 4, 0)
NumPut(LocaleID, Lan%LocaleID%)
DllCall("SystemParametersInfo", "UInt", SPI_SETDEFAULTINPUTLANG, "UInt", 0, "UPtr", &Lan%LocaleID%, "UInt", SPIF_SENDWININICHANGE)
WinGet, windows, List
Loop %windows% {
PostMessage 0x50, 0, %Lan%, , % "ahk_id " windows%A_Index%
}
Sleep, 100
Run, C:\Windows\System32\osk.exe
}
安裝完AutoHotKey後,將上述文字放入一個.ahk
檔案中,雙擊進行測試。您可以透過右鍵單擊托盤欄中的綠色 H 圖示並選擇「退出」來停止腳本。若要使其在登入時執行,請將其放置在位於 的啟動群組中
C:\Users\USER-NAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
。
有用的 AutoHotkey 文件: