System - Windows Version ermitteln



  • 😕 Hallo,

    ich arbeite mit Borland C++ Builder 3.0 .Wie kann ich die Windows Version ermitteln und die Informationen weiterverarbeiten, dass ich systemspezifisch eine andere Registry Datei starten kann. Habe in der Hilfe die Funktion GetVersion und GetVersionEx gefunden, allerdings funktioniert das irgendwie nicht, der Compiler erkennt ja noch nicht mal den Datentyp DWORD.

    Ich hoffe ihr könnt mir helfen.
    danke euch schon mal.

    mfg
    Steffen 😞

    [ Dieser Beitrag wurde am 08.11.2002 um 17:44 Uhr von Jansen editiert. ]



  • http://www.bcbdev.com/faqs/faq65.htm

    -junix

    <edit> Ahja, #include <windows.h> wär vielleicht auch kein Fehler (-;</edit>

    [ Dieser Beitrag wurde am 08.11.2002 um 09:17 Uhr von junix editiert. ]



  • Danke sehr.
    Funzt!!



  • hi,

    hier mal meine version der OS-Erkennung:

    // liefert den namen des betriebssystems zurück
    AnsiString GetOperationSystemName()
    {
      OSVERSIONINFO osinfo;
    
      osinfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
    
      if (!GetVersionEx(&osinfo)) return "Unbekannt";
    
      int major = osinfo.dwMajorVersion;
      int minor = osinfo.dwMinorVersion;
      int build = osinfo.dwBuildNumber;
    
      switch(osinfo.dwPlatformId)
      {
        case VER_PLATFORM_WIN32s        : return "Windows 3.1";
    
        case VER_PLATFORM_WIN32_WINDOWS :
    
          if (major == 4)
          {
            if (minor == 0)
            {
              switch(LOWORD(build))
              {
                case  951 : return "Windows 95A (OSR 1.0)";
                case 1111 : return "Windows 95B (OSR 2.0)";
                default   : return "Windows 95";
              }
            }
    
            if (minor == 3)
            {
              switch(LOWORD(build))
              {
                case 1212 : return "Windows 95B (OSR 2.1)";
                case 1214 : return "Windows 95C (OSR 2.5)";
                default   : return "Windows 95";
              }
            }
    
            if (minor == 10)
            {
              switch(LOWORD(build))
              {
                case 1998 : return "Windows 98 (Final Release)";
                case 2000 :
                case 2222 : return "Windows 98 (Second Edition)";
                default   : return "Windows 98";
              }
            }
    
            if (minor == 90)
            {
              switch(LOWORD(build))
              {
                case 3000 : return "Windows ME";
                default   : return "Windows ME";
              }
            }
          }
    
        case VER_PLATFORM_WIN32_NT      :
    
          if (major == 3) return "Windows NT 3.51";
          if (major == 4) return "Windows NT 4.0";
    
          if (major == 5)
          {
            switch(minor)
            {
              case 0 : if (build == 2195) return "Windows 2000";
    
              case 1 :
              {
                switch(build)
                {
                  case 2505 : return "Windows XP";
                  case 2600 : return "Windows XP (Service Pack 1)";
                }
              }
            }
          }
      }
    
      return "Unbekannt";
    }
    

    Edit: neuere Version

    [ Dieser Beitrag wurde am 31.05.2003 um 07:02 Uhr von Jansen editiert. ]

    [ Dieser Beitrag wurde am 31.05.2003 um 11:15 Uhr von Sunday editiert. ]


Anmelden zum Antworten