我正在使用此代码检查机器是64位还是32位:
public static string GetOSBit()
{
bool is64bit = Is64Bit();
if (is64bit)
return "64 bit";
else
return "32 bit";
}
[DllImport("kernel32.dll", SetLastError = true, CallingConvention = CallingConvention.Winapi)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool IsWow64Process([In] IntPtr hProcess, [Out] out bool lpSystemInfo);
public static bool Is64Bit()
{
bool retVal;
IsWow64Process(Process.GetCurrentProcess().Handle, out retVal);
return retVal;
}
我有一台32位机器,它对我来说还可以。它返回“32位”。我的朋友也有32位机器,但安装了64位的虚拟机。上面的代码为她的虚拟机返回“32位”,尽管它是64位。 我在C#,。Net 2.0工作。
答案 0 :(得分:2)
函数IsWow64Process
确定指定的进程是否在WOW64下运行。因此,当调用在64位操作系统下运行的32位进程时,它基本上会返回true
。
答案 1 :(得分:-1)
您可以使用Environment.Is64BitOperatingSystem
。
有关更多答案和讨论,请参阅this question。
编辑:哦,没有看到关于.net 2.0的问题。 (保留答案供参考。)