start example ejemplo .net windows version system.diagnostics diagnostics

.net - ejemplo - system.diagnostics.process c# example



¿Cómo traducir los números de versión del sistema operativo MS Windows a nombres de productos en.NET? (5)

Hay un ejemplo de C ++ en msdn http://msdn.microsoft.com/en-us/library/ms724429(VS.85).aspx , junto con una nota que alguien agregó sobre cómo envolverlo para usar en [VB]. red. Parece que el bit "faltante" que necesita es la función Win32 GetProductInfo ( referencia de PInvoke.net para esto ).

Entre esto y la respuesta de Avram, debería ser capaz de ensamblar la cadena de versión completa.

¿Cómo traducir los números de versión del sistema operativo MS Windows a nombres de productos?

Por ejemplo, en .NET las siguientes dos propiedades podrían usarse para determinar que el producto es MS Windows Vista Ultimate Edition:

Environment.OSVersion.Platform returns Win32NT

Environment.OSVersion.Version returns 6.0.6001.65536


Puede usar WMI para obtener el nombre amigable del producto ("Microsoft® Windows Server® 2008 Enterprise"):

using System.Management; var name = (from x in new ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem").Get().OfType<ManagementObject>() select x.GetPropertyValue("Caption")).First(); return name != null ? name.ToString() : "Unknown";


Si solo quieres un mensaje informativo amigable con la GUI, utilicé

My.Computer.Info.OSFullName & "(" + My.Computer.Info.OSVersion + ")"

Parece ser una prueba futura para futuras versiones de Windows


Esta es mi solución, la más rápida y sin casos seleccionados.

el resultado puede personalizarse como quieras

public static string SistemaOperativo { get { #region Dichiarazioni var osInfo = Environment.OSVersion; int platformID = (int)osInfo.Platform; int versionM = osInfo.Version.Major; int versionm = osInfo.Version.Minor; string servicePack = osInfo.ServicePack; #endregion #region Spiegazione logica /* * IT: * La chiave del dizionario è il risultato del concatenamento di * PlatformID,MajorVersion,MinorVersion, tutto convertito in Int32, * per esempio Platform ID=1 MajorVersion=4 MinorVersion=0, * il risultato è 140 ossia Windows 95 * * EN: * The key in Dictionary is the ''join'' * of PlatformID,MajorVersion,MinorVersion, in int32, * eg. Platform ID=1 MajorVersion=4 MinorVersion=0, * the result is ''140'' (Windows 95) */ #endregion Dictionary<int, string> sistemiOperativi = new Dictionary<int, string>(){ {0, "Windows 3.1"}, {140, "Windows 95"}, {1410, "Windows 98"}, {1490, "Windows ME"}, {2351, "Windows NT 3.51"}, {240, "Windows 4.0"}, {250, "Windows 2000"}, {251, "Windows XP"}, {252, "Windows 2003"}, {260, "Windows Vista/Server 2008"}, {261, "Windows 7"}, {-1, "Unknown"} }; int idUnivoco = int.Parse(string.Format("{0}{1}{2}", platformID, versionM, versionm)); string outValue = ""; if (sistemiOperativi.TryGetValue(idUnivoco, out outValue)) return string.Format("{0}{1}", outValue, servicePack); return sistemiOperativi[-1]; } }


howto net os versión

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

DO#

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