naraayanan Ответов: 4

Проверить ОС 32bit или 64bit в C#.net


Привет,
Как проверить ОС 32bit или 64bit в C#.net?Это приложение для windows?Пожалуйста, как достичь этой задачи.

4 Ответов

Рейтинг:
2

JF2015

Смотрите этот совет/трюк для нескольких решений:
32-битная или 64-битная ОС ??[^]


naraayanan

Спасибо

Рейтинг:
1

koolprasadd

это очень просто.
Вы можете проверить это, используя размер IntPtr. IntPtr sixe-это 4 для 32 - битной ОС и 8 для 64-битной ОС

if (IntPtr.Size == 8)
// 64Bit
else
// 32bit


ОПЕРАЦИОННАЯ

Используя intPtr и процесс, который мы можем искать, это OS64 бит. используйте следующий код

[DllImport("kernel32.dll", SetLastError = true, CallingConvention = CallingConvention.Winapi)]
2 [return: MarshalAs(UnmanagedType.Bool)]
3 public static extern bool IsWow64Process([In] IntPtr hProcess, [Out] out bool lpSystemInfo);
4
5 public bool Is64Bit()
6 {
7     bool retVal;
8
9     IsWow64Process(Process.GetCurrentProcess().Handle, out retVal);
10
11     return retVal;


souvikcode

Неправильный.Для приложения, нацеленного на 32-битную версию и работающего в 64-битной версии, также возвращается 32-битная версия.

Рейтинг:
1

uspatel

используйте System.Environment.Метод GetEnvironmentVariable()

Console.WriteLine(System.Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE").ToString());

and you can use as

 if (Environment.Is64BitOperatingSystem) 
   {
     return Environment.GetEnvironmentVariable("SysWOW64"); 
   }
  else
   {
      return Environment.GetEnvironmentVariable("system32");       
   }


Рейтинг:
0

Shree

Для тех, кто сейчас ищет решение,

Environment.Is64BitOperatingSystem


возвращает true для 64-битных систем и false для 32-битных.