
¿Hay alguna manera de abrir un teclado virtual de Windows en ruso mientras mi configuración de idioma es inglés o alemán?
¿Puedo abrir un teclado virtual mediante un script o cualquier otro atajo en un idioma diferente al de mi configuración actual? De acuerdo aesta información aquíPuedo usar osk
(powershell, cmd), pero no tengo posibilidad de configurar el idioma.
Encontré una solución incómoda. De acuerdo ahttps://superuser.com/a/922767/72397Puedo utilizar un usuario diferente con la configuración regional rusa.
Entonces puedo usar este usuario para comenzar osk
. Debido a que 740: The requested operation requires elevation
necesito trabajar en esta solución y disparar otro cmd
primero (verhttps://superuser.com/a/1134561/72397).
Entonces runas /profile /savecred /user:"RUSSIAN USER" "cmd /c start osk"
inicia el osk con la configuración regional de ese usuario específico.
Edición 2: Después de algunas pruebas, me di cuenta de que no es posible tener una OSK
configuración regional diferente a mi actual, incluso si OSK
se ejecuta como un usuario diferente. Tan pronto como hago clic en algún lugar de la OSK
ventana, la distribución del teclado cambia a mi ubicación.
La idea era ejecutar uno OSK
en ruso mientras trabajo con una distribución de teclado alemana.
Entonces, la mejor solución parece ser usar la AutohotKey
solución, cambiar rápidamente al ruso y luego regresar.
Comentario privado, relacionado con SOhttps://stackoverflow.com/q/74829525/356726
Respuesta1
Necesita utilizar una herramienta de terceros.
Puedes usar el gratisAutoHotkey.
El siguiente script de ejemplo cambiará el idioma del sistema a un idioma instalado determinado e iniciará el teclado en pantalla. Aquí F11configurará el idioma en inglés de EE. UU., mientras que F12lo configurará en francés estándar. Se pueden encontrar más códigos de idioma en el artículo de Microsoft. Códigos de idioma.
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
}
Después de instalar AutoHotKey, coloque el texto anterior en un .ahk
archivo y haga doble clic en él para probar. Puede detener el script haciendo clic derecho en el ícono H verde en la barra de bandeja y seleccionando Salir. Para que se ejecute al iniciar sesión, colóquelo en el grupo Inicio en
C:\Users\USER-NAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
.
Documentación útil de AutoHotkey: