A megoldáshoz az OperatingSystem osztály lesz segítségünkre. Egy ilyen objektumot kaphatunk a Environment osztály OSVersion nevű property-én keresztül.
Így például, ha szövegesen szeretnénk megjeleníteni az operációs rendszer típusát és verzióját, akkor azt egyetlen sorral megtehetjük:
protected void Form1_Activated (object sender, System.EventArgs e)
{
label1.Text = Environment.OSVersion.ToString();
}
OSVersion property által visszaadott OperatingSystem osztálynak azonban ennél jóval több tulajdonsága is van.
A Version property-ből kapunk egy Version nevű osztályt. Ezen keresztül a verzióval kapcsolatos információkat tudhatjuk meg. Így például a Major property int típusban adja vissza a főverzió számot, míg a Minor az alverzió számot. A Build property szintén int típusban a fordítási számot adja vissza. Ha például a verziószám 5.0.32.400, akkor a Build értéke 32 lesz. A Revision property pedig az utolsó számot adja vissza, ami 400 lesz, ha az előbbi példát vesszük alapul.
A Version osztály rendelkezik még egy ToString nevű függvénnyel is, amely a verziószámot sztringgé konvertálja.
Ha két Version osztály értékeit szeretnénk összehasonlítani, akkor a CompareTo függvényhívással ezt megtehetjük. Paraméterként meg kell adnunk egy másik Version típusú objektumot, mellyel az összehasonlítást szeretnénk elvégeztetni. A visszatérési érték egy int típusú szám lesz, melynek az alábbi a jelentése:
- negatív szám esetén a paraméterként átadott Version-ban tárolt verzió kisebb
- nulla esetén a két verzió megegyezik
- pozitív szám esetén a paraméterként átadott Version-ban tárolt verzió nagyobb
Például az 1.1 kisebb verziószám, mint az 1.1.1, de az 1.5.6 újabb verziót takar, mint az 1.5.5.7.
Az OperatingSystem osztályban találunk még egy Platform nevű property-t, mely egy Platform típusú felsorolt típust tartalmaz. Ennek a property-nek az alábbiak egyike lehet az értéke:
Win32NT - Windows NT esetén
Win32Windows - Windows 95, 98, Me verziók esetén
Win32S – 16 bites Windows-on Win32S alatt
Az OperatingSystem osztályban harmadik property-e a CSD, mely egy null terminált sztring, amely az aktuálisan feltelepített szerviz csomag verzióját takarja. Például: Service Pack 1