Estoy encontrando un comportamiento extraño con un módulo .NET accediendo al Windows Registry usando la clase RegistryKey.¿Accediendo al registro de Windows usando .NET?
Por ejemplo, he escrito un módulo .NET, testcom.dll, que accede al registro. Este archivo testcom.dll es utilizado tanto por una aplicación nativa de 32 bits como por una de 64 bits. Mi requisito es obtener el valor de una clave de registro (la ruta es HKEY_LOCAL_MACHINE\SOFTWARE\Test\MyParameters
y el nombre de la clave es Age
). Esta clave "Age" estará en el registro de 32 bits en máquinas de 32 bits y el registro de 64 bits (no WOW64) en máquinas de 64 bits.
En una máquina de 64 bits, cuando una aplicación de 32 bits utiliza testcom.dll, la clave "Edad" se busca en el registro WOW64. Cuando una aplicación de 64 bits usa testcom.dll, se busca la clave "Edad" en el registro de 64 bits.
Mi requisito es leer la clave en el registro de 64 bits en máquinas de 64 bits, sea cual sea la aplicación utiliza el archivo testcom.dll. ¿Cómo puedo hacer esto?
Eso es extraño. Cuando una vez escribí una aplicación que buscaba claves y valores en el registro, tuve que modificar manualmente la ruta para las claves de aplicación de 32 bits cuando se ejecutaba en un sistema operativo de 64 bits. ¿Podría publicar algún código, tal vez? Para ver si su método de carga de las claves difiere de la mía? –
También la aplicación era una aplicación de 32 bits. No buscó WOW64 de manera predeterminada. –