.net - 如何将 MS Windows 操作系统版本号转换为 .NET 中的产品名称?

标签 .net windows version system.diagnostics diagnostics

如何将 MS Windows 操作系统版本号转换为产品名称?

例如,在 .NET 中,可以使用以下两个属性来确定该产品是 MS Windows Vista Ultimate Edition:

Environment.OSVersion.Platform 返回 Win32NT

Environment.OSVersion.Version 返回 6.0.6001.65536

最佳答案

howto net os version

VB:

Public Function GetOSVersion() As String
    Select Case Environment.OSVersion.Platform
        Case PlatformID.Win32S
            Return "Win 3.1"
        Case PlatformID.Win32Windows
            Select Case Environment.OSVersion.Version.Minor
                Case 0
                    Return "Win95"
                Case 10
                    Return "Win98"
                Case 90
                    Return "WinME"
                Case Else
                    Return "Unknown"
            End Select
        Case PlatformID.Win32NT
            Select Case Environment.OSVersion.Version.Major
                Case 3
                    Return "NT 3.51"
                Case 4
                    Return "NT 4.0"
                Case 5
                    Select Case _
                        Environment.OSVersion.Version.Minor
                        Case 0
                            Return "Win2000"
                        Case 1
                            Return "WinXP"
                        Case 2
                            Return "Win2003"
                    End Select
                Case 6
                    Select Case _
                        Environment.OSVersion.Version.Minor
                        Case 0
                            Return "Vista/Win2008Server"
                        Case 1
                            Return "Win7/Win2008Server R2"
                        Case 2
                            Return "Win8/Win2012Server"
                        Case 3
                            Return "Win8.1/Win2012Server R2"
                    End Select
                Case 10  //this will only show up if the application has a manifest file allowing W10, otherwise a 6.2 version will be used
                  Return "Windows 10"
                Case Else
                    Return "Unknown"
            End Select
        Case PlatformID.WinCE
            Return "Win CE"
    End Select
End Function

C#

public string GetOSVersion()
{
  switch (Environment.OSVersion.Platform) {
    case PlatformID.Win32S:
      return "Win 3.1";
    case PlatformID.Win32Windows:
      switch (Environment.OSVersion.Version.Minor) {
        case 0:
          return "Win95";
        case 10:
          return "Win98";
        case 90:
          return "WinME";
      }
      break;

    case PlatformID.Win32NT:
      switch (Environment.OSVersion.Version.Major) {
        case 3:
          return "NT 3.51";
        case 4:
          return "NT 4.0";
        case 5:
          switch (Environment.OSVersion.Version.Minor) {
            case 0:
              return "Win2000";
            case 1:
              return "WinXP";
            case 2:
              return "Win2003";
          }
          break;

        case 6:
          switch(Environment.OSVersion.Version.Minor) {
            case 0:
              return "Vista/Win2008Server";
            case 1:
              return "Win7/Win2008Server R2";
            case 2:
              return "Win8/Win2012Server";
            case 3:
              return "Win8.1/Win2012Server R2";
          }
          break;
        case 10:  //this will only show up if the application has a manifest file allowing W10, otherwise a 6.2 version will be used
          return "Windows 10";
      }
      break;

    case PlatformID.WinCE:
      return "Win CE";
  }

  return "Unknown";
}

关于.net - 如何将 MS Windows 操作系统版本号转换为 .NET 中的产品名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/545666/

相关文章:

python - 最早常用的Python版本

sql - 查询以获取 Oracle DB 版本

windows - 遍历文件夹并获取命令行输入的文件名

c# - 如何正确使用SerialPort.DiscardInBuffer?

.net - 为什么 Azure 服务总线不受防火墙和代理的影响?

c# - 子项目引用的某些 DLL 未复制到解决方案的输出文件夹

python - cl : Command line error D8021 : invalid numeric argument '/Wno-cpp'

windows - windbg:是否可以在我自己的程序中嵌入 Windgb 引擎?

r - 如何获取我的 R 版本

.net - Microsoft 的 GUID 生成器在密码学上是否安全