Internet-Verbindung trenne - wie gehts?
Internet-Verbindung trenne - wie gehts?
Hab bisher nicht gefunden. Ich will eine Internetverbindung (egal ob DSL-Modem oder normales Modem) trenne. Wie geht das am geschicktestens...
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
-
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
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.
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.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
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.
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.
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
And we're out of beta. We're releasing on time.
-
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
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.
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.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
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
Robert
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Wenn man ZoneAlarm benutzt, kann man sich mit der Funktion "Internetsperre aktivieren" behelfen.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

-
- Beiträge: 243
- Registriert: 29.08.2004 12:46
- Wohnort: Irgendwo im nirgendwo
- Kontaktdaten:
Nicht die spur, "Trennen fehlgeschlagen!" !Robert hat geschrieben:Klappt zumindest hier bei mir für ADSL.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
Funktioniert also nicht überall.

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.
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.
Robert
Noch ein Nachtrag: Workaround mit 'rasdial' (engl. Forum)
Geht auch bei mir, vielleicht ja diesesmal auch bei euch.
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
Robert