InternetGetConnectedState
-
Danke das wars mit der Compilerwarnung. Man sollte richtig lesen können.

Jetzt ist nur noch das Problem mit der Verbindung an sich.
-
Hi
gehst du über einen Router ins Internet oder benutzt du direkt DFÜ?
Grüße Rapha
-
Ein Rechner über DFÜ im Netz. Der andere, auf dem das Programm läuft nur über ICS.
Aber wenn ich das Kabel zwischen beiden entferne sagt er immer noch daß eine LAN-Verbinbdung ins Inet besteht.
-
Hm,
ich glaub nicht, das die Funktion bei einem Netzwerk richtig funktioniert
Grüße Rapha
-
Warum sollte sie nicht?
Das Flag wird auf LANVerbindung gesetzt. Stimmt ja auch, aber warum gibt das Ding true zurück wenn keine aktive Verbindung besteht?
-
Achso
du meinst den Rückgabewert 
true bedeutet, dass die Funktion erfolgreich beendet wurde, false bedeutet, dass ein Fehler aufgetreten ist.
Grüße Rapha
-
Falsch.
MSDN:
BOOL InternetGetConnectedState(
LPDWORD lpdwFlags,
DWORD dwReserved
);Parameters
..
..
..
Return Values
Returns TRUE if there is an Internet connection, or FALSE otherwise.
-
Hm, ok nehms wieder zurück, war auch nur (falsch) geraten

Ich nehm mal an, dass die Funktion, wenn du einen Proxy-Server benutzt, nicht genau "herausfinden" kann, ob der Proxy auch online ist.
Grüße Rapha
-
Wie schon gesagt sagt kommt auch true zurück, wenn ich das Netzwerkkabel wegnehme (=keine Verbindung irgendwo hin).
Und dann sollte es ja wirklich egal sein, was der andere Rechner macht.
-
Ich nehme mal an, dass die, wie ich bereits gesagt habe, nicht überprüfen kann, ob auch dein Proxy-Server online ist. Vielleicht ist das der Grund, warum die Funktion bei einem Proxy-Server true zurückgibt. Sobald du ja eine Anfrage an den Proxy machst, loggt dieser sich ins Internet ein.
-
So ein Problem hatte ich auch mal (Ich gehe ins I-Net übern Hardwarefirewall)
Habs dann so gelöst.
bool CSetTime2Dlg::CheckForConnection() { BOOL isOnline = false; if (InternetCheckConnection("http://www.google.de",FLAG_ICC_FORCE_CONNECTION,0)) { isOnline = true; } return(isOnline); }Gruß Matten
-
@ Matten
Danke.
Hat nur den kleinen Hacken: Wenn der "gegnerische" Server nicht online ist gehts auch nicht.
Werds aber wahrscheinlich so machen müssen wenn keine anderen Tips kommen.@Rapha
Wer lesen kann ... :Wie schon gesagt sagt kommt auch true zurück, wenn ich das Netzwerkkabel wegnehme (=keine Verbindung irgendwo hin).
D.h.:
Wenn kein Netzwerkkabel angeschlossen ist, können da 20 Proxys laufen zu denen er keine Verbindung hat. Zu denen wird er dann auch nie eine bekommen.
-
Hi
nö schrieb:
Wenn kein Netzwerkkabel angeschlossen ist, können da 20 Proxys laufen zu denen er keine Verbindung hat. Zu denen wird er dann auch nie eine bekommen.
Natürlich nicht, hab ich nie behauptet. Ich glaube, dass, wenn der User einen Proxy verwendet, die Funktion immer true zurück gibt (da sie ja nicht überprüfen kann, ob der Proxy online ist, bzw. ob der Proxy ereichbar ist).
Hoffe mal, du hast mich jetzt richtig verstanden
Wenn du befürchtest, dass der Server, zu dem du die Anfrage mit InternetCheckConnection startest, offline ist, kannst du eine Liste von Servern testen (so habe ich es mit meinem Updateprogramm gemacht), obwohl ich nicht glaube, dass google oft offline ist

(Du könntest doch auch den Server http://windowsupdate.mircosoft.com nehmen :D)Grüße Rapha