Kann ich in Windows eine virtuelle Tastatur in einer bestimmten Sprache öffnen?

Kann ich in Windows eine virtuelle Tastatur in einer bestimmten Sprache öffnen?

Gibt es eine Möglichkeit, eine virtuelle Windows-Tastatur auf Russisch zu öffnen, wenn meine Spracheinstellung Englisch oder Deutsch ist?

Kann ich eine virtuelle Tastatur über ein Skript oder eine andere Tastenkombination in einer anderen Sprache als meiner aktuellen Einstellung öffnen?diese Infos hierIch kann (Powershell, cmd) verwenden osk, habe aber keine Möglichkeit, die Sprache einzustellen.


Ich habe eine unangenehme Lösung gefunden. Lauthttps://superuser.com/a/922767/72397Ich kann einen anderen Benutzer mit dem russischen Gebietsschema verwenden.

Dann kann ich diesen Benutzer verwenden, um zu starten osk. Aus diesem Grund 740: The requested operation requires elevationmuss ich diesen Workaround durchführen und cmdzuerst einen anderen starten (siehehttps://superuser.com/a/1134561/72397).

Daher runas /profile /savecred /user:"RUSSIAN USER" "cmd /c start osk"wird OSK mit der Gebietsschemaeinstellung dieses bestimmten Benutzers gestartet.

Bearbeitung 2: Nach einigen Tests habe ich festgestellt, dass es nicht möglich ist, eine OSKandere als meine aktuelle Gebietsschemaeinstellung zu verwenden, selbst wenn das Programm OSKals anderer Benutzer ausgeführt wird. Sobald ich irgendwo im OSKFenster klicke, wird das Tastaturlayout auf mein Gebietsschema geändert.

Die Idee war, eines OSKauf Russisch laufen zu lassen, während ich mit einem deutschen Tastaturlayout arbeite.

Die beste Lösung scheint also zu sein, die AutohotKeyLösung zu verwenden, schnell auf Russisch zu wechseln und dann zurück.


Private Bemerkung, bezogen auf SOhttps://stackoverflow.com/q/74829525/356726

Antwort1

Sie müssen ein Drittanbietertool verwenden.

Sie können den kostenlosenAutoHotkey.

Das folgende Beispielskript ändert die Systemsprache auf eine bestimmte installierte Sprache und startet die Bildschirmtastatur. Hier F11wird die Sprache auf US-Englisch eingestellt, während F12auf Französisch-Standard eingestellt wird. Weitere Sprachcodes finden Sie im Microsoft-Artikel Sprachcodes.

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
}

Nachdem Sie AutoHotKey installiert haben, fügen Sie den obigen Text in eine .ahkDatei ein und doppelklicken Sie zum Testen darauf. Sie können das Skript stoppen, indem Sie mit der rechten Maustaste auf das grüne H-Symbol in der Taskleiste klicken und „Beenden“ wählen. Um es beim Anmelden auszuführen, platzieren Sie es in der Autostart-Gruppe unter
C:\Users\USER-NAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup.

Nützliche AutoHotkey-Dokumentation:

verwandte Informationen