Поскольку класс 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;
}
}
Пока у нас все получалось, но я не уверен, насколько мне нравится просматривать реестр. Это довольно стандартная практика или есть лучший метод?
Редактировать : Вау, этот код выглядит намного красивее в предварительном просмотре. В следующий раз я подумаю над ссылками на пастин или что-то в этом роде.