A megoldás taglalása előtt megemlítendő, hogy amennyiben a mellékletalkalmazást Windows 98 rendszeren futtatjuk, akkor ott nem található meg a NETAPI32.DLL állomány. Ott a SVRAPI.DLL dinamikusan szerkeszthető könyvtárra kell hivatkozni.
Az adott számítógép operációs rendszerének típusát a NetServerGetInfo API metódussal kérdezhetjük le, de nem közvetlenül. A metódushívás után a paraméterben kapott információból lehet bizonyos következtetéseket levonni erre vonatkozóan. Deklarációja a következő:

NetServerGetInfo
Osztály:
function NetServerGetInfo(
Server: PWideChar;
Level: DWord;
var BufPtr:Pointer
): LongInt;
A metódussal – attól függően, hogy milyen jellegűre van szükségünk – információkat kaphatunk a LAN egy számítógépéről. Az információ természetét a második paraméterben megadott számmal jelezhetjük. Ennek megfelelően kapunk vissza adattípusokat.
Paraméterek
Server: PWideChar
A LAN adott számítógépének nevét tartalmazó karakterlánc.
Level: DWord
Az információ típusára vonatkozó egész szám, mely meghatározza, hogy milyen típusú struktúra kapható eredményül, amennyiben meghívtuk a metódust.
var BufPtr:Pointer
A cégeredmény memóriaterületére mutató pointer.
Visszatérési érték
Amennyiben a lekérdezés sikerült, akkor a visszatérési értéke nulla.
A második paraméterben megadható egész szám háromféle lehet, melyekhez három struktúratípus tartozik.
| Szám |
Struktúra |
| 100 |
SERVER_INFO_100 |
| 101 |
SERVER_INFO_101 |
| 102 |
SERVER_INFO_102 |
A mellékelt példában most a 101 számot adjuk át a második paraméterben, és a SERVER_INFO_101 típusban kapjuk meg az eredményt. A struktúra deklarációja a következő:
Az operációs rendszer azonosítója.
sv101_platform_id : Integer;
A számítógép neve.
A verzió főszáma.
sv101_version_major : Integer;
A verzió alszáma.
sv101_version_minor : Integer;
sv101_type : Integer;
sv101_comment : PWideChar;
end;
PSERVER_INFO_101 = ^SERVER_INFO_101;
A Form szövegmezőjének kitöltésekor és a nyomógomb megnyomásakor meghívjuk az említett osztály statikus GetOSVersion metódusát, melyben elvégezzük az API hívását, és a megoldást a metódus visszatérési értéke szolgáltatja.
Amennyiben a metódushívás eredménye nulla, akkor megvizsgáljuk a mutatót. Ha az nem mutat memóriaterületre, akkor a számítógép operációs rendszere a Windows 9x családba tartozik.
Ellenkező esetben a mutató által jelzett területről beolvassuk az információkat tartalmazó adatokat a struktúrába. Amennyiben a verzió főszáma 4 vagy annál kisebb, akkor az adott gépen Windows NT fut.
info := PSERVER_INFO_101(ptr);
if info^.sv101_version_major <= 4 then
Result := 'Windows NT'
Egyébként megvizsgáljuk az alszámot is. Amennyiben az nulla, akkor a rendszer Windows 2000.
...
case info^.sv101_version_minor of
0: result := 'Windows 2000';
Amennyiben 1, akkor pedig Windows XP-ről beszélhetünk.
1: result := 'Windows XP';
...
Ha a kérdéses rendszer nem elérhető, például mert nincs a számítógép bekapcsolva, akkor azt is jelezzük.