Seite 1 von 2
Internet-Verbindung trenne - wie gehts?
Verfasst: 23.01.2005 11:26
von GPI
Hab bisher nicht gefunden. Ich will eine Internetverbindung (egal ob DSL-Modem oder normales Modem) trenne. Wie geht das am geschicktestens...
Verfasst: 23.01.2005 11:40
von DarkDragon
Also beim Normalmodem kann ich dir die RAS funktionen (siehe API-Guide) Empfehlen. Das funktioniert aber glaube ich nicht für DSL.
Also zuerst die Verbindung mit RasEnumConnections ermitteln und dann mit RasHangUp die verbindung schließen.
Bei DSL wirds in sofern schwer, da man manchmal über WLAN Manager(DT ... Manager) ins internet geht und ich nicht weiß, wie man dort überhaupt manuell die verbindung trennt.
Verfasst: 23.01.2005 12:41
von Laurin
Bei DialUp-Modems (auch eigebauten DSL-Modems) müsste DarkDragons Methode funktionieren.
Bei Internetzugang über ein Netzwerk kommt man damit allerdings nicht weit. Ich vermute daher, dass es einen gesonderten API-Befehl dafür gibt, so à la CloseInternetConnection_() oder so.
Verfasst: 23.01.2005 12:58
von DarkDragon
WNetCancelConnection
The WNetCancelConnection function breaks an existing network connection.
Declare Function WNetCancelConnection Lib "mpr.dll" Alias "WNetCancelConnectionA" (ByVal lpszName As String, ByVal bForce As Long) As Long
· lpName
Points to a null-terminated string that specifies the name of either the redirected local device or the remote network resource to disconnect from. When this parameter specifies a redirected local device, only the specified device redirection is broken. If the parameter specifies a remote network resource, only the connections to remote networks without devices are broken.
· fForce
Specifies whether the disconnection is to occur even if there are open files or jobs on the connection. If this parameter is FALSE, the function fails if there are open files or jobs.
Verfasst: 24.01.2005 18:04
von Robert
Code: Alles auswählen
ConnectionID = 1
success = InternetHangup_(ConnectionID, 0)
If Success = 0
MessageRequester("InternetConnection", "Verbindung getrennt!", #MB_ICONINFORMATION)
Else
MessageRequester("InternetConnection", "Trennen fehlgeschlagen!", #MB_ICONINFORMATION)
EndIf
Klappt zumindest hier bei mir für ADSL.
Verfasst: 24.01.2005 20:42
von ts-soft
Wenn man ZoneAlarm benutzt, kann man sich mit der Funktion "Internetsperre aktivieren" behelfen.
Verfasst: 24.01.2005 21:08
von Robert Wünsche
Robert hat geschrieben:Code: Alles auswählen
ConnectionID = 1
success = InternetHangup_(ConnectionID, 0)
If Success = 0
MessageRequester("InternetConnection", "Verbindung getrennt!", #MB_ICONINFORMATION)
Else
MessageRequester("InternetConnection", "Trennen fehlgeschlagen!", #MB_ICONINFORMATION)
EndIf
Klappt zumindest hier bei mir für ADSL.
Nicht die spur, "Trennen fehlgeschlagen!" !
Funktioniert also nicht überall.

Verfasst: 24.01.2005 22:51
von Laurin
Funzt bei mir auch nicht.
Hab hier Internet über einen Router.
Verfasst: 24.01.2005 23:33
von Robert
Hallo Robert, hallo Laurin,
schade, daß es bei euch nicht geklappt hat. Könnte vielleicht an der ConnectionId liegen, mal mit höherer Id probiert? Ich hab hier nur eine einzige, einfache Internetverbindung, also keinen Router, kein Netzwerk oder Heimnetzwerk oder dgl.
Ist aber wahrscheinlich eine komplexere Thematik, wie DarkDragon schon angedeutet hat.
Verfasst: 25.01.2005 19:43
von Robert
Noch ein Nachtrag: Workaround mit 'rasdial' (engl. Forum)
Code: Alles auswählen
Success = ShellExecute_(0, "open", "rasdial", "/disconnect", "", #SW_HIDE)
If Success > 32
MessageRequester("InternetConnection", "Verbindung getrennt!", #MB_ICONINFORMATION)
Else
MessageRequester("InternetConnection", "Leider immer noch verbunden!", #MB_ICONINFORMATION)
EndIf
Geht auch bei mir, vielleicht ja diesesmal auch bei euch.