我可以在 Windows 中開啟特定語言的虛擬鍵盤嗎?

我可以在 Windows 中開啟特定語言的虛擬鍵盤嗎?

當我的語言設定是英語或德語時,有沒有辦法用俄語開啟虛擬 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解決方案,快速更改為俄語,然後再返回。


私人評論,與SO相關https://stackoverflow.com/q/74829525/356726

答案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 文件:

相關內容