Я работаю над приложением, которое должно иметь возможность запускать 1 из 2 сценариев, в зависимости от того, работает ли ОС под управлением x64 или x86.Можно ли определить бит ОС из CPU?
Искал вокруг, и я наткнулся на эту тему: How to detect Windows 64-bit platform with .NET?
Но, видимо, мой босс боится верхний ответ не может работать на всех ОС»наши пользователи будут работать под управлением (XP/Vista/7). Он рекомендовал этот образец кода:
private void GetCpuDetails(out string cpuType)
{
cpuType = "...";
try
{
using (RegistryKey regKey = Registry.LocalMachine)
{
using (RegistryKey subRegKey = regKey.OpenSubKey("HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0"))
{
if (subRegKey.GetValue("ProcessorNameString") != null)
{
cpuType = subRegKey.GetValue("ProcessorNameString").ToString();
}
subRegKey.Close();
}
regKey.Close();
}
}
catch
{
cpuType = "...";
}
}
Но я не понимаю, как вы могли бы определить версию ОС от CPU. Это похоже на ту же загадку, что и при использовании PROCESSOR_ARCHITECTURE, поскольку вы получите 64 или 32 бит на основе ЦП, а не ОС.
Я думаю, вы можете использовать свойство 'System.Environment.Is64BitOperatingSystem', оно вернет true, если os 64 бит otheriwise false. –
@Sudhakar Что нового в .NET 4.0, не существует в .NET 3.5 – sab669
: К сожалению, я не видел тег Framework.Спасибо за ваш вопрос. –