Na verdade, encontrei uma solução alternativa, que lida perfeitamente com o problema.
- Faça o download deste link de utilitário gratuito
- 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
- Depois disso, você cria um arquivo * .exe usando o aplicativo mencionado
- 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!