Portanto, nosso software é usado por um de nossos clientes em versões legadas do Windows porque eles estão em um ambiente industrial e vazio e têm o Windows XP e um monte de servidores antigos que são as únicas coisas que funcionam para eles. Alguns deles são de 64 bits.
Lendo o registro, noto que, em alguns casos, nosso aplicativo de 32 bits pode ler diretamente a entrada abaixo na janela de 64 bits - o que teoricamente não deveria ser possível:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer
e extraia o número da versão do valor da string "Versão".
No entanto, se criarmos uma chave no mesmo PC
HKEY_LOCAL_MACHINE\SOFTWARE\Our Software
e adicionarmos um valor de string como "Último serviço", ela não poderá ser lida.
As permissões e propriedade são as mesmas da entrada do IE quando tentamos adicioná-la sem sucesso.
Continuar \\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Our Software\Last Service Date
funciona, é claro, mas por que, se algumas outras coisas podem ir para a parte "normal" do registro e serem legíveis, outras não? Seria mais fácil e limpo ao extrair dados do aplicativo ler a data do serviço, e crítico se ela fosse adicionada incorretamente ao HKEY_LOCAL_MACHINE padrão por descuido.
Estou esquecendo de algo?
Você encontrou o Redirecionador de Registro :
Algumas chaves de registro de aplicativos, como
HKEY_LOCAL_MACHINE\Software
são sempre redirecionadas. A maioria das seções do registro não é redirecionada.Um programa de 32/64 bits ainda pode forçar o acesso à versão de 64/32 bits do registro, incluindo sinalizadores especiais na solicitação, conforme descrito no artigo Acessando uma visualização alternativa do registro . Consulte também Exemplo de redirecionamento de registro no WOW64 .