LER REGISTRO WINDOWS 8 X64
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
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
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.
Realmente, acabei não colocando a parte essencial....
Eu utilizo a linha abaixo para consumir a entrada do registro:
Eu utilizo a linha abaixo para consumir a entrada do registro:
strconn = Registry.LocalMachine.OpenSubKey([Ô]SOFTWARE\\ProPay\\SGOSuporte[Ô]).GetValue([Ô]StringConexao[Ô]).ToString
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.
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.
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.
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