Estoy trabajando en un Windows de 64 bits y mi aplicación se ejecuta con privilegios elevados. Tengo un problema con la siguiente pieza muy sencilla de código:C# lee datos de registro incorrectos en el sistema operativo de 64 bits
myKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
if (myKey != null)
{
string[] HKLMvaluenames = myKey.GetValueNames();
}
Pero por alguna variedad razón HKLMvaluenames se rellena con los valores de la siguiente clave:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run
¿Hay alguna forma de evitar este problema?
¿Tiene que ejecutar el código en modo de 32 bits, debido a una dependencia externa/no administrada o algo así? –
¿Tu aplicación está compilada como una aplicación de 32 bits? Wow64 es la capa de compatibilidad de 32 bits para sistemas operativos Windows de 64 bits. – Oded
@Nick: no tengo que ejecutar en 32 bits pero también quiero que mi aplicación pueda funcionar en sistemas operativos de 32 bits (esto es muy importante). @Oded: Sí, sé lo que es wow64. Mi aplicación está compilada usando VX2010 Express, así que supongo que ni siquiera puedo elegir cómo se compila. ¿Puedo verificarlo en algún lado? – baal80