LER REGISTRO WINDOWS 8 X64

CAUEFELIPE1 14/08/2013 09:20:20
#427517
Bom dia a todos!

Atualizaram minha máquina do trabalho com o Windows 8 x64.

Antes estava com o Windows 7 x86, e possuo uma aplicação (eu mesmo que desenvolvi) em VB .Net que consome uma entrada de registro, e agora no Windows 8 está dando erro de NullReference.

Já dei permissões no registro e nada. Acredito que o erro aconteça pelo fato de o Windows 8 ser o x64.

Li algo sobre KEY_WOW64_32KEY, porem não entendi como usar.

Alguém consegue me ajudar?

Obrigado
OCELOT 14/08/2013 11:39:18
#427526
Resposta escolhida
Sem você dizer o como fazia no Windows 7 x86 que funcionava e não está mais funcionando no Windows 8 x64 fica meio difícil ajudar.
CAUEFELIPE1 14/08/2013 13:54:29
#427536
Realmente, acabei não colocando a parte essencial....

Eu utilizo a linha abaixo para consumir a entrada do registro:

strconn = Registry.LocalMachine.OpenSubKey([Ô]SOFTWARE\\ProPay\\SGOSuporte[Ô]).GetValue([Ô]StringConexao[Ô]).ToString


OCELOT 14/08/2013 17:01:19
#427552
Este código deveria funcionar sem problemas no seu programa, só tem um detalhe que você deve levar em conta caso você tenha compilado o programa para x86, tente fazer isso que pode ser que resolva

Adicione o valor que você quer pelo regedit na chave

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ProPay\SGOSuporte

No seu programa você não muda nada, lá continua o mesmo caminho, o que acontece é que se o programa é de 32 bits quando ele tenta acessar qualquer chave dentro da SOFTWARE ele é automaticamente redireciona pelo Windows para a chave SOFTWARE\Wow6432Node, então se você editar manualmente o registro para adicionar a chave você precisa levar isso em consideração, já pro seu programa isso é automático

Uma coisa que eu recomendaria você a fazer é não usar o HKEY_LOCAL_MACHINE se esse valor for configurável pelo usuário, pois nesse caso ele só vai conseguir gravar nessa chave se for administrador, nestes casos o ideal é usar o HKEY_CURRENT_USER, o valor é diferente para cada usuário do Windows mas pelo menos não precisa ser administrador para poder modificar ele.
CAUEFELIPE1 15/08/2013 10:09:38
#427572
Bom dia!

Fiz a modificação no regedit e funcionou perfeito!!

Eu deixei na HKEY_LOCAL_MACHINE porque aqui na empresa, para poder importar coisas no registro a pessoa tem que estar numa [Ô]police[Ô] de administrador, e normalmente são as pessoas do service desk que logam na maquina e importam a entrada.


Muito obrigado, já vou encerrar o tópico.
Tópico encerrado , respostas não são mais permitidas