Einzelnen Beitrag anzeigen

Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#3

Re: Windows-Version auslesen, auch XP 64-Bit und Vista?

  Alt 22. Aug 2006, 17:43
Zitat von Luzzifus:
Das funktioniert auch ganz gut, ausser unter Windows XP 64-Bit und Windows Vista. Es wird dann einfach 'cOsUnknown' zurückgegeben. Wie muss die Funktion erweitert werden, damit auch diese Betriebssysteme erfasst werden
Vista is intern ein 6.0-NT (XP war 5.1, Win2003Server 5.2).
D.h. eine erweiterung dieses case-konstrukts:
Delphi-Quellcode:
case osVerInfo.dwPlatformId of
   // Windows NT/2000
   VER_PLATFORM_WIN32_NT:
     begin
       if majorVer <= 4 then
         Result := cOsWinNT
       else if (majorVer = 5) and (minorVer = 0) then
         Result := cOsWin2000
       else if (majorVer = 5) and (minorVer = 1) then
         Result := cOsXP
       else if (majorVer = 6) then
         Result := cOsVista
       else
         Result := cOsUnknown;
        end;
natuerlich muss TOSVersionInfo auch dementsprechend erweitert werden

Was die Architektur betrifft, sollte die EnvironmentVariable "PROCESSOR_ARCHITECTURE" gute Dienste leisten.
Ein Aufruf von Delphi-Referenz durchsuchenGetEnvironmentVariable mit dem Parameter gibt (als string!) bei einem 32-Bit-OS x86 zurueck, und iirc x64 bei einem 64-Bit-System.

Allerdings: Angaben ohne Gewaehr

greetz
Mike
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat