Feedback

C# - OS Version & Name mit WMI

Veröffentlicht von am 03.12.2014
(0 Bewertungen)
Man kann natürlich den Namen der Windows Version anhand verschiedener Teile von .NET und des Systems ermitteln. Einfacher dürfte es jedoch über die WMI sein.
Das hat noch einen schönen Nebeneffekt - die Werte sind immer aktuell, auch ohne Codeanpassung. D.h., dass selbst die Win10 TP schon die korrekten Werte ausgibt.

Zusätzlich benötigte Verweise
System.Management.dll

Benötigte Namespaces
System
System.Management
System.Linq
/// <summary>
/// Stellt Informationen über das Betriebssystem Bereit.
/// </summary>
public static class OSVersion
{
    /// <summary>
    /// Initialisiert die Werte der Eigenschaften.
    /// </summary>
    static void init()
    {
        using (var mos = new ManagementObjectSearcher("SELECT Caption, Version FROM Win32_OperatingSystem"))
        {
            var attribs = mos.Get().OfType<ManagementObject>();
            caption = attribs.FirstOrDefault().GetPropertyValue("Caption").ToString() ?? "Unknown";
            version = new Version((attribs.FirstOrDefault().GetPropertyValue("Version") ?? "0.0.0.0").ToString());
        }
    }

    static string caption = null;
    static Version version = null;

    /// <summary>
    /// Ruft den Namen des Betriebssystems ab.
    /// </summary>
    public static string Caption
    {
        get
        {
            if (caption == null)
                init();
            return caption;
        }
    }
    /// <summary>
    /// Ruft die Versionsnummer des Betriebssystems ab.
    /// </summary>
    public static Version Version
    {
        get
        {
            if (version == null)
                init();
            return version;
        }
    }
}

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!