Laden...

OS Bezeichnung...

Erstellt von daywa1k3r vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.483 Views
daywa1k3r Themenstarter:in
150 Beiträge seit 2005
vor 17 Jahren
OS Bezeichnung...

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!

1.274 Beiträge seit 2005
vor 17 Jahren


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

M
13 Beiträge seit 2005
vor 17 Jahren

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

Betriebssystem ermitteln

daywa1k3r Themenstarter:in
150 Beiträge seit 2005
vor 17 Jahren

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?

1.274 Beiträge seit 2005
vor 17 Jahren

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

daywa1k3r Themenstarter:in
150 Beiträge seit 2005
vor 17 Jahren

Anscheinend nicht, denn aktuell habe ich hier 3 Systeme installiert. Es ist aber auch gut so.

M
13 Beiträge seit 2005
vor 17 Jahren

Original von daywa1k3r
So werden aber nicht die Systeme wie ME oder HOME erkannt?

Ich dachte wir reden von Betriebssystemen 😁

664 Beiträge seit 2005
vor 17 Jahren

Hi

dabei wird dir wahrscheinlich folgender Artikel auf codeproject.com weiterhelfen können.
http://www.codeproject.com/csharp/osversion_producttype.asp

mfg

Christoph

906 Beiträge seit 2005
vor 17 Jahren

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.

906 Beiträge seit 2005
vor 17 Jahren

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.

3.170 Beiträge seit 2006
vor 17 Jahren

@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