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 Server Erkennung mittels GetVersionEx() (https://www.delphipraxis.net/118806-server-erkennung-mittels-getversionex.html)

Baeuerle 15. Aug 2008 08:04


Server Erkennung mittels GetVersionEx()
 
Hallo zusammen,

ich habe ein Tool welches nur auf Serverbetriebssystemen funktionieren soll.

Delphi-Quellcode:
function IsServerOS: Boolean;
var osvi            : TOSVersionInfo;
begin
Result:=False;
ZeroMemory(@osvi,sizeof(TOSVersionInfo));
osvi.dwOSVersionInfoSize := sizeof(TOSVersionInfo);
// GetVersionEx() mit der Struktur von TOSVersionInfo aufrufen
if(not GetVersionEx(osvi)) then
 begin
 // GetVersionEx() mit der Struktur von VERSIONINFOSIZE aufrufen
 osvi.dwOSVersionInfoSize := VERSIONINFOSIZE;
 if(not GetVersionEx(osvi)) then
  // Exception auslösen
  raise E_OS_Read.Create();
 end;
Result:=(osvi.wProductType=VER_NT_SERVER)or
        (osvi.wProductType = VER_NT_DOMAIN_CONTROLLER);
end;
Kann ich mit dieser Function immer eindeutig erkennen, ob es sich um ein Serverbetriebssystem handelt? Auch wenn neuere MS Serverbetriebssysteme kommen? Wäre schlecht, wenn das Tool plötzlich nicht mehr funktioniert...

thx
baeuerle

DeddyH 15. Aug 2008 08:50

Re: Server Erkennung mittels GetVersionEx()
 
Zitat:

Zitat von Baeuerle
Kann ich mit dieser Function immer eindeutig erkennen, ob es sich um ein Serverbetriebssystem handelt? Auch wenn neuere MS Serverbetriebssysteme kommen?

:glaskugel: Wer soll das denn verbindlich beantworten können? Wenn man sich aber den "Kompatibilitätswahn" von Microsoft in der Vergangenheit ansieht, ist die Wahrscheinlichkeit IMO recht groß, dass Deine Methode noch sehr lange funktionieren wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:36 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