繁体   English   中英

如何识别Windows操作系统版本?

[英]How to recognize Windows OS version?

我正在开发.NET 4 WPF应用程序,该应用程序应该能够将数据导出到Excel xls工作表。 但是我需要在运行时确定它正在运行哪个版本,因为仍然有配备Windows XP和Office 97/2000的计算机。

我无法通过Windows XP,Office 97/2000上的应用程序导出xls,因为我们不拥有版本7、8或9的Office Interop库。

因此,我将在Windows XP上导出为CSV,在Windows 7和Windows 10上导出为xls。

我尝试了此代码段,但不确定是否足以识别它是Win XP,7还是10。

 public static string getOSVersion()
 {
      return Environment.OSVersion.ToString() + ", " + Environment.Version;
 }

我在Windows 10上得到这个:

 Microsoft Windows NT 6.2.9200.0, 4.0.30319.42000

这是足够的信息,还是有更好的方法来识别Windows OS名称?

System.Environment.Version将检索用于执行代码的.NET Framework的版本,因此这对您没有帮助。

实际上, System.Environment.OSVersion对象(OperatingSystem类)是获取Windows版本的正确方法。 但是,您应该执行以下操作:

public static bool IsWindowsCurrentGen()
{
  if (Environment.OSVersion.Version.Major >= 6)
    return true;
  else
    return false;
}

对于Windows Vista以上的所有版本(包括Windows Vista),都将返回true

有关“完整”参考表,请参见此StackOverflow问题 请注意,从我的角度来看,最好检测安装的Excel版本而不是OS版本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM