Dado que la clase WMI Win32_OperatingSystem solo incluye OSArchitecture en Windows Vista, rápidamente escribí un método usando el registro para intentar determinar si el sistema actual es o no de 32 o 64 bits.¿Es esta una buena forma de determinar la arquitectura del sistema operativo?
private Boolean is64BitOperatingSystem()
{
RegistryKey localEnvironment = Registry.LocalMachine.OpenSubKey("SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment");
String processorArchitecture = (String) localEnvironment.GetValue("PROCESSOR_ARCHITECTURE");
if (processorArchitecture.Equals("x86")) {
return false;
}
else {
return true;
}
}
Nos ha funcionado bastante bien hasta ahora, pero no estoy seguro de cuánto me gusta buscar en el registro. ¿Es esta una práctica bastante estándar o hay un método mejor?
Editar: Guau, ese código se ve mucho más bonito en la vista previa. Consideraré el enlace a un pastebin o algo así, la próxima vez.