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