Nézzük sorban. A szükséges függvény az InetIsOffline.

InetIsOffline
BOOL InetIsOffline(
DWORD dwFlags,
);
Az InetIsOfflien függvény segítségével eldönthetjük, hogy az adott számítógépen aktuálisan van-e élő internet kapcsolat vagy sem.
Paraméterek
DWORD dwFlags
Jelenleg nem használt. Értéke mindig 0.
Visszatérési érték
Igaz, ha van internet kapcsolat.
A példaprogram
Mivel a Delphi unit-jaiban nem deklarált az InetIsOffline függvény, ezért ezt magunknak kell megtennünk. Így deklaráljuk a függvényt, mely a Help leírása szerint a Shell32.dll rendszer állományban van.
function InetIsOffline(dwFlags: DWORD): boolean; stdcall; external 'Shell32.dll';
Ha ezek után megpróbálnánk futtatni a programot, akkor az lehet, hogy hibaüzenettel elszállna mondván, hogy Shell32-ben nincs ilyen függvény. Mivel a Help - e cikk írásakor - még határozottan állítja, hogy márpedig ott van, a programunk viszont ennek az ellenkezőjét, így sok lehetőségünk nem marad.
Tegyük a következőt: a Shell32.dll-t cseréljük le az Url.dll-re. Így már futni fog a programunk is.
function InetIsOffline(dwFlags: DWORD): boolean; stdcall; external 'url.dll';
Ennek oka az, hogy régebbi verziójú operációs rendszereknél még a Shell32-ben volt ez a függvény, mely később átkerült az Url.dll-be.
Ezek után a felhasználása már tényleg egyszerű:
procedure TForm1.Button1Click(Sender: TObject);
begin
if InetIsOffline(0) then begin
Form1.Caption:='off';
end else begin
Form1.Caption:='on';
end;
end;