Поскольку класс WMI Win32_OperatingSystem включает только OSArchitecture в Windows Vista, я быстро написал метод с использованием реестра, чтобы попытаться определить, является ли текущая система 32 или 64-битной.
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;
}
}
До сих пор это хорошо для нас работало, но я не уверен, как мне нравится просматривать реестр. Это довольно стандартная практика или есть лучший метод?
Изменить: Ого, этот код выглядит намного красивее в предварительном просмотре. В следующий раз я буду рассматривать связь с пастебином или что-то в этом роде.