如何识别WindowsOS版本?
How to recognize Windows OS version?
我正在开发 .NET 4 WPF 应用程序,此应用程序应该能够将数据导出到 Excel xls 工作表。但是,我需要在运行时解决它 运行 的版本,因为仍然有安装 Windows XP 和 Office 97/2000 的计算机。
我无法通过我在 Windows XP、Office 97/2000 上的应用程序导出 xls,因为我们没有 Office Interop 库版本 7、8 或 9。
因此,我将在 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 class) 确实是获取 Windows 版本的正确方法。但是你应该这样做:
public static bool IsWindowsCurrentGen()
{
if (Environment.OSVersion.Version.Major >= 6)
return true;
else
return false;
}
这将 return true
以上所有内容(包括)Windows Vista。
"full" 参考 table 参见 this Whosebug question。请注意,从我的角度来看,检测安装的 Excel 版本而不是 OS 版本会更好。
我正在开发 .NET 4 WPF 应用程序,此应用程序应该能够将数据导出到 Excel xls 工作表。但是,我需要在运行时解决它 运行 的版本,因为仍然有安装 Windows XP 和 Office 97/2000 的计算机。
我无法通过我在 Windows XP、Office 97/2000 上的应用程序导出 xls,因为我们没有 Office Interop 库版本 7、8 或 9。
因此,我将在 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 class) 确实是获取 Windows 版本的正确方法。但是你应该这样做:
public static bool IsWindowsCurrentGen()
{
if (Environment.OSVersion.Version.Major >= 6)
return true;
else
return false;
}
这将 return true
以上所有内容(包括)Windows Vista。
"full" 参考 table 参见 this Whosebug question。请注意,从我的角度来看,检测安装的 Excel 版本而不是 OS 版本会更好。