Dot-Net

如何將 MS Windows 作業系統版本號轉換為 .NET 中的產品名稱?

  • February 13, 2009

如何將 MS Windows 作業系統版本號翻譯成產品名稱?

例如,在 .NET 中,可以使用以下兩個屬性來確定產品是 MS Windows Vista Ultimate Edition:

Environment.OSVersion.Platform returns Win32NT

Environment.OSVersion.Version returns 6.0.6001.65536

howto net 作業系統版本

等等:

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";
}

引用自:https://stackoverflow.com/questions/545666