Hallo,
ich versuche die OS Version aus zu lesen, und es funktioniert eigentlich gut. Ich hätte aber gerne statt "Microsoft Windows NT 5.1.2600“ ein „Windows XP Professional“ haben. Ich habe es jetzt über System.Environment und SystemInformation probiert. Gibt es da irgendeine Eigenschaft die mir das OS in gewünschter Form liefert? Oder vielleicht eine komplette Liste mit den Bezeichnungen, so dass ich mir eine Switch basteln kann…
Danke!
using System;
using System.Management;
using System.Windows.Forms;
namespace Hoffmann
{
public class OS
{
public static void Main()
{
try
{
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("root\\CIMV2",
"SELECT * FROM Win32_OperatingSystem");
foreach (ManagementObject queryObj in searcher.Get())
{
Console.WriteLine("-----------------------------------");
Console.WriteLine("Betriebsystem");
Console.WriteLine("-----------------------------------");
Console.WriteLine("BuildNumber: {0}", queryObj["BuildNumber"]);
Console.WriteLine("Caption: {0}", queryObj["Caption"]);
Console.WriteLine("OSLanguage: {0}", queryObj["OSLanguage"]);
Console.WriteLine("Version: {0}", queryObj["Version"]);
}
}
catch (ManagementException e)
{
MessageBox.Show("An error occurred while querying for WMI data: " + e.Message);
}
}
}
}
"Das Problem kennen ist wichtiger, als die Lösung zu finden, denn die genaue Darstellung des Problems führt automatisch zur richtigen Lösung." Albert Einstein
using System;
...
string OS()
{
OperatingSystem myOSSystem = System.Environment.OSVersion;
string myVersion = "";
if (myOSSystem.Platform == PlatformID.Win32NT)
{
if (myOSSystem.Version.Major == 4) myVersion = "Win NT 4.0";
if (myOSSystem.Version.Major == 5)
{
switch (myOSSystem.Version.Minor)
{
case 0:
myVersion = "Win 2000";
break;
case 1:
myVersion = "Win XP";
break;
case 2:
myVersion = "Win 2003 Server";
break;
}
}
// Windows Vista bekommt Major 6
}
if (myVersion != "")
return myVersion;
else
return "Betriebssystem konnte nicht ermittelt werden!";
}
...
Hallo,
danke euch beiden.
@LastGentleman
Funktioniert gut. Hat aber einen Schönheitsfehler: Die Sprache wird als LCID ausgegeben.
Nachtrag: Die ForEach läuft bei mir einmal durch. Wann würde die überhaupt mehrmals durch laufen?
@michaelklaus77
So werden aber nicht die Systeme wie ME oder HOME erkannt?
Hast recht es gibt ja nur 1 System und deshalb würde es nur einmal durchlaufen,
ich weis aber nicht ob er andere Windows installationen kennt (glaub ich aber nicht)
"Das Problem kennen ist wichtiger, als die Lösung zu finden, denn die genaue Darstellung des Problems führt automatisch zur richtigen Lösung." Albert Einstein
Anscheinend nicht, denn aktuell habe ich hier 3 Systeme installiert. Es ist aber auch gut so.
Original von daywa1k3r
So werden aber nicht die Systeme wie ME oder HOME erkannt?
Ich dachte wir reden von Betriebssystemen 😁
Hi
dabei wird dir wahrscheinlich folgender Artikel auf codeproject.com weiterhelfen können.
http://www.codeproject.com/csharp/osversion_producttype.asp
mfg
Christoph
ich bastel gerade an der C# Umsetzung meiner Delphierkennungsroutine von hier: http://www.delphipraxis.net/post326888.html#326888
dazu kommt noch Erkennung der SKU von Vista und Erkennung der Versionen der MCE + Erkennung von Windows Fundamentals for legacy PCs. Bin aber noch nicht fertig.
welche Methoden wollt ihr alle in einer WindowsVersion-KLasse haben (isWinXP, etc.)? Ich erstell dann schnell die Klasse und poste die dann hier. Mittlerweile habe ich auch raus, wie man das Windows Fundamentals for Legacy Pcs und die Vista Versionen (Ultimate, Home Basic, Premium etc) erkennt.
Dass einzigste was ich nicht weiß, ist wie man die N Reduced-Editions (also die spezialversion ohne Windows Media Player) erkennt.
@MagicAndre1981
ein enum aller unterstützten Syteme und ein einsprechender Getter würden imho völlig reichen 8)
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca