Localizar chave de registro para a configuração do método de entrada por aplicativo do Windows 8

0

Eu tive alguns problemas para adaptar um aplicativo do windows 7 para o windows 8. O problema era o windows 8 ter um método de entrada global no windows 8.

Descobri que a configuração do painel de controle "Deixe-me definir um método de entrada diferente para cada aplicativo do Windows" resolveu meu problema ( Defina o Windows 8 para o modo de idioma de entrada por aplicativo ).

Agora minha pergunta é: onde posso encontrar essa configuração no windows 8 registro ?

Eu gostaria de recuperar essa chave no meu aplicativo.

    
por Cedric Schmutz 14.11.2014 / 10:30

1 resposta

2

Essa configuração é armazenada em HKEY_CURRENT_USER \ Control Panel \ Desktop \ UserPreferencesMask. O valor do registro em si é um valor binário que representa uma máscara de bits de várias configurações. Seu formato está documentado aqui

Infelizmente, este documento está um pouco desatualizado e não contém informações sobre essa configuração específica. Ao experimentar esse valor, descobri que as configurações estão armazenadas no bit 32. Quando esse bit está ativado, a entrada alterna para cada aplicativo separadamente.

Example of HKEY_CURRENT_USER\Control Panel\Desktop\UserPreferencesMask with setting on:
9e 1e 07 80 92 00 00 00
With setting off:
9e 1e 07 80 12 00 00 00 

Aqui está um exemplo de script do Powershell para ativá-lo:

$prefMask = (Get-ItemProperty -Path 'HKCU:\Control Panel\Desktop' -Name 'UserPreferencesMask').UserPreferencesMask
if (($prefMask[4] -band 0x80) -eq 0) {
  $prefMask[4] = ($prefMask[4] -bor 0x80)
  New-ItemProperty -Path 'HKCU:\Control Panel\Desktop' -Name 'UserPreferencesMask' -Value $prefMask -PropertyType ([Microsoft.Win32.RegistryValueKind]::Binary) -Force | Out-Null
}

Foi testado em várias máquinas win8.1 (x86 e x64) e parece funcionar como esperado.

Observe que a configuração entra em vigor imediatamente, mas exibe errado na caixa de diálogo das configurações do painel de idiomas. Então você precisa fazer logoff e logon novamente para as configurações do painel para pegar a mudança.

    
por 27.03.2015 / 12:25