As teclas de atalho de idiomas são removidas na reinicialização no Windows 10

1

Eu tenho mais de dois idiomas, então acho confortável trabalhar quando as teclas de atalho são especificadas da seguinte maneira:

  • Português - Ctrl + 1
  • Alemão - Ctrl + 2
  • Sueco - Ctrl + 3

No Windows, as configurações desaparecem sempre.

Informações do SO: Windows 10 de 64 bits, versão 1803, Compilação do SO 17134.48

Por alguma razão, o Windows 7 & 8 não tem esse problema.

Alguém sabe como isso pode ser resolvido?

    
por Alex Herman 03.06.2018 / 15:53

1 resposta

1

Na verdade, encontrei uma solução alternativa, que lida perfeitamente com o problema.

  1. Faça o download deste link de utilitário gratuito
  2. Crie o arquivo * .ahk e cole o script

    ; This should be replaced by whatever your native language is. See 
    ; http://msdn.microsoft.com/en-us/library/dd318693%28v=vs.85%29.aspx
    ; for the language identifiers list.

    en := DllCall("LoadKeyboardLayout", "Str", "00000409", "Int", 1)
    de := DllCall("LoadKeyboardLayout", "Str", "00000C07", "Int", 1)
    sv := DllCall("LoadKeyboardLayout", "Str", "0000081D", "Int", 1)

    ^1::
    w := DllCall("GetForegroundWindow")
    pid := DllCall("GetWindowThreadProcessId", "UInt", w, "Ptr", 0)
    l := DllCall("GetKeyboardLayout", "UInt", pid)
    PostMessage 0x50, 0, %en%,, A
    return

    ^2::
    w := DllCall("GetForegroundWindow")
    pid := DllCall("GetWindowThreadProcessId", "UInt", w, "Ptr", 0)
    l := DllCall("GetKeyboardLayout", "UInt", pid)
    PostMessage 0x50, 0, %de%,, A
    return

    ^3::
    w := DllCall("GetForegroundWindow")
    pid := DllCall("GetWindowThreadProcessId", "UInt", w, "Ptr", 0)
    l := DllCall("GetKeyboardLayout", "UInt", pid)
    PostMessage 0x50, 0, %sv%,, A
    return


Por favor, note que nós definimos a linguagem da seguinte maneira:

sv := DllCall("LoadKeyboardLayout", "Str", "0000081D", "Int", 1)

O identificador de idioma para o sueco de acordo com o site mencionado no script é

0x081D

, o que significa que só pegamos os 3 últimos caracteres

81D

e prefixo-os com 5 zeros, por exemplo

0000081D
  1. Depois disso, você cria um arquivo * .exe usando o aplicativo mencionado
  2. Coloque o executável na pasta de reinicialização automática do Windows 10

pressione Win + R e digite

shell:startup

pressione Enter e você verá a pasta - é isso!

    
por 03.06.2018 / 16:23