
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 elevation
muss ich diesen Workaround durchführen und cmd
zuerst 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 OSK
andere als meine aktuelle Gebietsschemaeinstellung zu verwenden, selbst wenn das Programm OSK
als anderer Benutzer ausgeführt wird. Sobald ich irgendwo im OSK
Fenster klicke, wird das Tastaturlayout auf mein Gebietsschema geändert.
Die Idee war, eines OSK
auf Russisch laufen zu lassen, während ich mit einem deutschen Tastaturlayout arbeite.
Die beste Lösung scheint also zu sein, die AutohotKey
Lö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 .ahk
Datei 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: