Entwickler-Ecke

Internet / Netzwerk - "Merken" wenn Internetverbindung getrennt wird


wulfskin - Mi 23.04.03 19:47
Titel: "Merken" wenn Internetverbindung getrennt wird
Hallo!

Ich, besser gesagt mein Programm ;), würde gerne erfahren, wenn eine Internetverbindung getrent wird und welche Verbindung (anhand des Handles).
Ich habe dazu leider nichts passendes in der Hilfe und hier im Forum gefunden, es wäre also nett, wenn ihr mir helfen könntet.
Komponenten-Tipps mit Source nehme ich auch gerne entgegen, denn dann kopiere ich das wichtigste einfach raus! Aber nicht so Tipps wie "Such doch bei Torry", den ich habe schon gesucht!

Gruß wulfskin!


GruppeCN - Mi 23.04.03 20:18

Kannst du denn überprüfen, ob eine Internet Verbindung besteht(ist natürlich möglich)??? Wenn ja, dann kannst du einfach einen Timer benutzen, der immer nachprüft ob eine Verbindung besteht.


Alibi - Mi 23.04.03 20:44

Eine kleine Funnktion, um zu überprüfen, ob der Rechner online ist:

Quelltext
1:
2:
3:
4:
5:
6:
function Online:Bool;
var ConTypes:Integer;
begin
  ConTypes := INTERNET_CONNECTION_MODEM + INTERNET_CONNECTION_LAN + INTERNET_CONNECTION_PROXY;
  result := InternetGetConnectedState(@ConTypes, 0);
end;


wulfskin - Mi 23.04.03 21:53

Danke, euch beiden!

Aber sowas bringt mir nix! Ich muss zusätzlich noch wissen welche Verbindung getrennt wurde.
Also vielleicht weiss jemand noch etwas!

GRuß wulfskin!


GruppeCN - Do 24.04.03 08:08

Na ja, ich kann dir eine Funktion geben, mit der du prüfen kannst, welche Verbindung besteht(Modem, Lan,...). Würde dir das helfen???


GruppeCN - Do 24.04.03 08:27

Hier ist die Procedure. Ich habe ein Beipsielprogramm geschrieben. Kannste dir mal downloaden.


Quelltext
1:
uses WinInet;                    



Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TForm1.Button1Click(Sender:TObject);
var flags:DWord;
begin
  if InternetGetConnectedState(@flags, 0) then begin //Internet Verbindung
    checkbox1.checked := (flags AND INTERNET_CONNECTION_MODEM) <> 0; //Modem Verbindung
    checkbox2.checked := (flags AND INTERNET_CONNECTION_LAN) <> 0; //LAN Verbindung
    checkbox3.checked := (flags AND INTERNET_CONNECTION_PROXY) <> 0; //Proxy Server
   ShowMessage('Internet Verbindung vorhanden');
  end;
end;


Beispielprogramm:
Nur Exe:
http://www.gruppecn.de/download.php?link=software/internet-checker/checker.exe&prog=Internet%20Checker%20EXE
Mit Code:
http://www.gruppecn.de/download.php?link=software/internet-checker/online.zip&prog=Internet%20Checker%20Code


wulfskin - Do 24.04.03 13:42

Danke GruppeCN!

Aber das hilft mir auch net (man bin ich anspruchsvoll ;)).
wulfskin hat folgendes geschrieben:
ch muss zusätzlich noch wissen welche Verbindung getrennt wurde.
meinte ich im Sinn vom ersten Beitrag, also das ich das Handle auf die Verbindung haben muss, damit ich noch etwas mehr Informationen über die getrennte Verbindung auslesen kann.
Ich habe gerade die Eigenschaften

Quelltext
1:
2:
  TCHAR       szAutodialDll[ MAX_PATH ];
  TCHAR       szAutodialFunc[ MAX_PATH ];
zu RasSetEntryProperties gefunden. Ich werde das mal ausprobieren und darüber berichten!

Gruß wulfskin!