PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C# Betriebssystem auslesen?



pc17
10.02.2010, 14:33
Hallo!

Weiß jemand wie ich das genau Betriebssystem auslesen kann nicht nur Windows 7 sodern Windows 7 Professional oder Ultimate,...
Mit diesem Code kann ich mal das betriebssystem herausfinden:
Code:
OperatingSystem osInfo = System.Environment.OSVersion;
string strVers = string.Empty;

Console.WriteLine(osInfo);
Console.ReadKey();
und das ist dann z.B NT 5.1 Xp aber wie kann ich dann auslesen ob es Professional oder Home ist?

MfG Pc17

Garfield
10.02.2010, 15:45
Hier habe ich was gefunden: http://chaosblog.wordpress.com/2008/11/05/xp-variante/
Ich schätze, dass ein keine direkte Funktion gibt, um die Variante auszulesen. Was sollte denn auch z.B. bei Linux zurückgeliefert werden? ;-)

proofed
10.02.2010, 15:52
Hier ist der, den ich immer benutze.


using System;
using System.Collections.Generic;

namespace GetWindowsVersion
{
class Program
{
static void Main(string[] args)
{
string version = GetWindowsVersion();

Console.WriteLine(version);
Console.Read();
}

private static string GetWindowsVersion()
{
OperatingSystem oSVersion = Environment.OSVersion;
string winVersion = "";
if (oSVersion.Platform == PlatformID.Win32Windows)
{
if (oSVersion.Version.Minor == 10)
{
winVersion = "Windows 98";
}
if (oSVersion.Version.Minor == 90)
{
winVersion = "Windows Me";
}
}
if (oSVersion.Platform == PlatformID.Win32NT)
{
if (oSVersion.Version.Major == 4)
{
winVersion = "Windows NT 4.0";
}
if (oSVersion.Version.Major == 5)
{
switch (oSVersion.Version.Minor)
{
case 0:
winVersion = "Windows 2000";
break;

case 1:
winVersion = "Windows XP";
break;

case 2:
winVersion = "Windows Server 2003";
break;
}
}
if ((oSVersion.Version.Major == 6) && (oSVersion.Version.Minor == 0))
{
winVersion = "Windows Vista";
}

if ((oSVersion.Version.Major == 6) && (oSVersion.Version.Minor == 1))
{
winVersion = "Windows 7";
}
}
if (winVersion == "")
{
winVersion = "Unbekannte Windows-Version";
}
return winVersion;
}
}
}

EDIT:
Ups, das letzte hab ich überlesen >.<


proofed

pc17
10.02.2010, 15:54
okay danke das ist aber nur für Win XP.
Ich möchte es eh nur von win Versionen wissen.
und einen code der die system daten ausliest gibt es nicht?
Bei Xp kann man ja unter Systemsteuerung System sehen welches oben ist.
Irgendwo muss ja der ganze name des BS ausgegeben werden können?!

Edit:

Habe jetzt einen guten code gefunden wo aber nur Win7 Prof und home gehen was kann ich machen das mir ultimate und die restlichen win7 Version angezeigt werden?
http://www.csharp411.com/determine-windows-version-and-edition-with-c/

@proofed: ja mit diesem code kann ich das BS auslesen das ginge mit meinem auch und muss halt dann im internet wo die NT nummer googlen, aber ich möchte ja auch die genau Version wissen wie z.b; Windows 7 Ultimate

Steav
14.02.2010, 10:24
'ne Versionsangabe hat ja immer dasselbe Muster... Major Minor Build Revision auf die du auch über System.Environment zugreifen kannst. Du musst Dich also nur informieren wie die Win Versionen auf die du Prüfen willst aufgebaut sind (versionsnr-technisch) und die prüfung selber übernehmen