
言語設定が英語またはドイツ語のときに、仮想 Windows キーボードをロシア語で開く方法はありますか?
現在の設定とは異なる言語でスクリプトやその他のショートカットを使用して仮想キーボードを開くことはできますか?この情報はここ(powershell、cmd)は使用できますosk
が、言語を設定する機会がありません。
私は厄介な解決策を見つけました。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フランス語標準に設定します。その他の言語コードについては、Microsoftの記事を参照してください。 言語コード。
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 ドキュメント: