Einzelnen Beitrag anzeigen

Andreas L.
(Gast)

n/a Beiträge
 
#9

Re: auslesen der windowsversion

  Alt 21. Mär 2004, 10:14
Etwas kürzer:
----------------

DLL deklarieren:

Delphi-Quellcode:
{$IFDEF WIN32} 
function GetVersionEx(lpOs : pointer) : BOOL; stdcall;
external 'kernel32name 'GetVersionExA';
{$ENDIF}

Procedure:

Delphi-Quellcode:
procedure GetWindowsVersion(var Major : integer;
                            var Minor : integer);
var
{$IFDEF WIN32}
  lpOS, lpOS2 : POsVersionInfo;
{$ELSE}
  l : longint;
{$ENDIF}
begin
{$IFDEF WIN32}
   GetMem(lpOS, SizeOf(TOsVersionInfo));
   lpOs^.dwOSVersionInfoSize := SizeOf(TOsVersionInfo);
   while getVersionEx(lpOS) = false do begin
     GetMem(lpos2, lpos^.dwOSVersionInfoSize + 1);
     lpOs2^.dwOSVersionInfoSize:= lpOs^.dwOSVersionInfoSize+1;
     FreeMem(lpOs, lpOs^.dwOSVersionInfoSize);
     lpOS := lpOs2;
   end;
   Major := lpOs^.dwMajorVersion;
   Minor := lpOs^.dwMinorVersion;
   FreeMem(lpOs, lpOs^.dwOSVersionInfoSize);
{$ELSE}
  l := GetVersion;
  Major := LoByte(LoWord(l));
  Minor := HiByte(LoWord(l));
{$ENDIF}
end;
Aufrufen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Major : integer;
  Minor : integer;
begin
  GetWindowsVersion(Major, Minor);
  Label1.Caption:=(IntToStr(Major));
  Label2.Caption:=(IntToStr(Minor));
end;
Greetz
  Mit Zitat antworten Zitat