¿Puedo abrir un teclado virtual en un idioma específico en Windows?

¿Puedo abrir un teclado virtual en un idioma específico en Windows?

¿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 elevationnecesito trabajar en esta solución y disparar otro cmdprimero (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 OSKconfiguración regional diferente a mi actual, incluso si OSKse ejecuta como un usuario diferente. Tan pronto como hago clic en algún lugar de la OSKventana, la distribución del teclado cambia a mi ubicación.

La idea era ejecutar uno OSKen ruso mientras trabajo con una distribución de teclado alemana.

Entonces, la mejor solución parece ser usar la AutohotKeysolució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 .ahkarchivo 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:

información relacionada