Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi InternetGetConnectedState funktioniert nicht mit Netzwerk (https://www.delphipraxis.net/34753-internetgetconnectedstate-funktioniert-nicht-mit-netzwerk.html)

mh166 27. Nov 2004 19:52


InternetGetConnectedState funktioniert nicht mit Netzwerk
 
Hi Leute,

ich benutze folgenden Code, um herauszufinden, ob ich online bin (ausm EDH):
Delphi-Quellcode:
function TfrmMain.IsOnline: Boolean;
var
dlvFlag : DWord;
begin
Result:=False;
dlvFlag := Internet_Connection_Modem + Internet_Connection_Lan + Internet_Connection_Proxy;
If InternetGetConnectedState ( @dlvFlag, 0 ) = True Then
Result:=dlvFlag = 81;
end;
Bei mir (direkt über IDSN-Modem) funktioniert auch einwandfrei. Nur mein Kumpel geht über LAN online und da klappt das nich. Ich hab auch schon probiert die + durch or zu ersetzen, aber es hat nich geklappt... :(

Jemand ne Idee, woran das liegen könnte oder wie man anders rausbekommen kann, ob man online ist?

mfg, mh166

supermuckl 27. Nov 2004 20:01

Re: InternetGetConnectedState funktioniert nicht mit Netzwer
 
das wird wohl daran liegen das nicht aktiv überprüft wird, ob man wirklich ins internet kommt, da wohl nur der proxy gesehen wird vom router ( lan ) und das soll dan online heissen ;)

Luckie 27. Nov 2004 20:02

Re: InternetGetConnectedState funktioniert nicht mit Netzwer
 
Nun ja, sobald er mit dem andern Computer verbunden ist, über den er ins Internet geht, ist er eben online. Die Funktion kann eben nicht entscheiden, ob der andere Rechner mit dem man verbunden ist, im Raum nebenan steht oder oder beim Provider im Keller.

Ich rufe eine Seite aus dem Internet auf und wenn ich da drankomme bin ich online (zu 95%, die Seite könnte auch down sein). Günstigerweise steht auf der Seiet auch meine IP, so dass ich die auch gleich habe: www.luckie-online.de/myip.php

mh166 27. Nov 2004 20:22

Re: InternetGetConnectedState funktioniert nicht mit Netzwer
 
Jetzt frag ich mich allerdings, ob es wirklich praktisch is, 2x pro Sekunde diese Webseite aufzurufen... :?

mfg, mh166

Luckie 27. Nov 2004 20:29

Re: InternetGetConnectedState funktioniert nicht mit Netzwer
 
Zitat:

Zitat von mh166
Jetzt frag ich mich allerdings, ob es wirklich praktisch is, 2x pro Sekunde diese Webseite aufzurufen... :?

Wenn du meine Traffic-Kosten übernimmst, darfst du das gerne machen.

Warum musst du das so oft wissen?

Christian Seehase 27. Nov 2004 20:42

Re: InternetGetConnectedState funktioniert nicht mit Netzwer
 
Moin mh166,

Zitat:

Zitat von mh166
Ich hab auch schon probiert die + durch or zu ersetzen,

wobei Du auch grundsätzlich bleiben solltest.

In diesem Falle spielt es ausnahmsweise mal keine Rolle, da die Funktion in den Flags einen Wert zurückliefert, und nicht auswertet, was in der Variablen steht.

Deine Funktion müsste eigentlich nur so aussehen:

Delphi-Quellcode:
function TfrmMain.IsOnline: Boolean;

var
  dlfFlag : DWORD;

begin
  Result := InternetGetConnectedState (@dlvFlag,0);
end;

mh166 27. Nov 2004 20:45

Re: InternetGetConnectedState funktioniert nicht mit Netzwer
 
Zitat:

Zitat von Luckie
Wenn du meine Traffic-Kosten übernimmst, darfst du das gerne machen.

Öhm... ne... ;)

Zitat:

Warum musst du das so oft wissen?
Ich hab ein PlugIn für SharpBar (ein Teil von SharpE) geschrieben. DIeses prüft alle 0.5 Sekunden mit IsOnline (s.o.), ob ich on bin und gibt dann dementsprechend Sounds aus. Das 2x pro Sekunde is, damit es relativ schnell auf den Wechsel des Status reagiert.

Hättest du also ne Idee, wie man das machen könnte?

mfg, mh166

Christian Seehase 27. Nov 2004 20:48

Re: InternetGetConnectedState funktioniert nicht mit Netzwer
 
Moin mh166,

wie kommst Du eigentlich auf die Abfrage nach dvfFlags = 81?

Wenn dann müsstest Du (dvfFlags and INTERNET_CONNECTION_OFFLINE) = 0 prüfen.

mh166 27. Nov 2004 21:10

Re: InternetGetConnectedState funktioniert nicht mit Netzwer
 
Ich komm da gar nich drauf... Ich habs nur so ausm EDH üebrnommen.

Ich werd mal das mit nur diesem @Flag probieren. Mal sehen, obs klappt... ABer hat sonst jemand ne IDee, wie man - ressourcensparend aber trotzdem zuverlässig - 2x pro Sekunde checken kann, ob man online is?

mfg, mh166


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:46 Uhr.

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