Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Welches Windows benutzt der User? (https://www.delphipraxis.net/6390-welches-windows-benutzt-der-user.html)

Alexander 9. Jul 2003 11:47


Welches Windows benutzt der User?
 
Hi,
wie finde ich heraus, ob das Windows ein NT-System ist oder ein 9x bzw. ME?
Steht das vielleicht in der REgistry?

Alexander 9. Jul 2003 11:59

Re: Welches Windows benutzt der User?
 
habe doch schon die Lösung gefunden, habe mal in den EDH gekuckt...
Delphi-Quellcode:
{$IFDEF WIN32} 
function GetVersionEx(lpOs : pointer) : BOOL; stdcall;
external 'kernel32' name 'GetVersionExA';
{$ENDIF}


Jetzt folgt die eigentliche Procedure:

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;

Und so ruft man die Funktion auf:

procedure TForm1.Button1Click(Sender: TObject);
var
  Major : integer;
  Minor : integer;
begin
  GetWindowsVersion(Major, Minor);
  Label1.Caption:=(IntToStr(Major));
  Label2.Caption:=(IntToStr(Minor));
end;
hat sich erledigt, habe mal in den edh gekuckt.
Dort stand diese Funmktion drinne[/delphi]

jbg 9. Jul 2003 12:09

Re: Welches Windows benutzt der User?
 
Zum Unterscheiden von NT und 9x:
Delphi-Quellcode:
case Win32Platform of
  VER_PLATFORM_WIN32_NT    : NT;
  VER_PLATFORM_WIN32_WINDOWS: Win9x;
end;

Illuminator-23-5 19. Jul 2003 15:36

Re: Welches Windows benutzt der User?
 
Unit Environ einbinden und durch den Befehl GetEnvironment('OS') erhält man die Aktuelle Windowsversion

Luckie 19. Jul 2003 19:48

Re: Welches Windows benutzt der User?
 
Zitat:

Zitat von Illuminator-23-5
Unit Environ einbinden und durch den Befehl GetEnvironment('OS') erhält man die Aktuelle Windowsversion

Und was sagt mein D6 Personal dazu :roll:
Zitat:

[Fataler Fehler] Unit1.pas(7): Datei nicht gefunden: 'Environ.dcu'


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:56 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz