как получить детали операционной системы в коде C # - PullRequest
0 голосов
/ 25 августа 2010

мне нужно получить OsArchitecture означает биты O / S, я использовал Win32_OperatingSystem, но его "OsArchitecture" не работает для всех типов операционной системы

ManagementObjectSearcher objOSDetails = new ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem");
           ManagementObjectCollection osDetailsCollection = objOSDetails.Get();
 foreach( ManagementObject mo in osDetailsCollection )
  {
    String  _operatingSysBits = mo["OSArchitecture"].ToString();

  }

Ответы [ 2 ]

1 голос
/ 25 августа 2010

Проверка IntPtr.Size .Это будет 4 на 32-битной платформе и 8 на 64-битной платформе (если ваш процесс не работает в 32-битном режиме).

0 голосов
/ 25 августа 2010

для .NET 4.0 есть Environment.is64BitOperatingSystem

или

    ManagementObject Mo = new ManagementObject("Win32_Processor.DeviceID='CPU0'");
    object o = Mo["Architecture"];
    UInt16 sp = (UInt16)(o);

    if (sp == 0)
    {
        //86
    } else if (sp == 9)
    {
        //64
    }

    Mo.Dispose();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...