在.NET 2.0的框架中,我们可以使用如下的方法来获取一个Windows操作系统的平台信息,如:
string os_platform = System.Environment.OSVersion.Platform.ToString();
但是,这个方法即使在64位的操作系统也始终返回的是Win32NT,所以,如果要检测一个Windows操作系统是否是64位,应该如何实现呢?
Win32NT
Rector
2020-04-23 提问
如果是.NET Framework 4.0 及以上版本,则可以直接调用Is64BitOperatingSystem属性来获取当前操作系统是否是64位的,如下:
Is64BitOperatingSystem
输出示例:
2020-04-23 回答
在.NET Framework 2.0 中,IntPtr.Size并不能返回真正的操作系统信息,你首先需要检测是否运行在64位的进程中,如果是运行在32位的进程中,则还需要调用Windows的API函数IsWow64Process进行进一步的检测,实现方法如下:
IntPtr.Size
IsWow64Process
再提供一个可以检测Windows XP系统的自定义实现方法:
以下是微软提供的一种检测操作系统位数的示例代码,如:
码龄: 3136天
专注.NET/.NET Core