Como saber qual layout de teclado está atualmente ativo usando o cmd no Windows 7 32bit?

2

Suponha que eu possa alternar entre três layouts de teclado, inglês, alemão e espanhol na barra de idiomas do Windows 7 32bit. Qual comando pode ser executado a partir do cmd para retornar o valor do layout atual em uso? Meu objetivo final é passar o valor retornado em um editor externo (Emacs) para que ele possa alterar a fonte do texto com base no layout de teclado atual. Ou seja, se eu escrever uma frase em inglês, a fonte será font1, se em alemão font2 e assim por diante. Mas isso só funcionará se eu puder obter algum valor retornado (seja número de localidade de país ou linha de string english , german e assim por diante) da linha de comando do Windows.

    
por doctorate 17.11.2014 / 13:23

1 resposta

2

Edit: O abaixo não vai realmente fazer o que o OP requer, pois os valores não mudam quando o teclado é trocado através do atalho da Barra de Idiomas, embora eles façam isso através do Painel de Controle. Deixando por completo.

Não consigo encontrar nenhum comando systeminfo ou Powershell documentado que possa recuperar essas informações. Eu pensei que algo como isto pode funcionar, mas infelizmente nenhum dos parâmetros para este ou outros cmdlets parecem ser capazes de obter essa configuração.

powershell -Command "& {(Get-culture).keyboardlayoutid;}"

Parece que o Windows 8 pode ter adicionado comandos do Powershell que fazem isso, mas no Windows 7 parece que você não pode detectar as alterações feitas dessa maneira.

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

Os seguintes itens retornarão os teclados atuais:

reg query "HKEY_CURRENT_USER\Keyboard Layout\Preload"

Isso retornará uma lista de todos os teclados instalados, com aquele atualmente em uso como 1 .

HKEY_CURRENT_USER\Keyboard Layout\Preload
    1    REG_SZ    00000809
    2    REG_SZ    00000407
    3    REG_SZ    00000c0a

Para referência, os valores retornados estão listados aqui: msdn.microsoft.com/en-gb/goglobal /bb895996.aspx

    
por 17.11.2014 / 13:58