Code-Beispiel
Bestehende Verbindung(en) trennen
Lizenz: | Erster Autor: | Letzte Bearbeitung: |
k. A. | ytwinky | 27.01.2008 |
Eine bestehende Internetverbindung zu trennen, ist gar nicht so einfach..
Zur Auswahl stehen:
-Stromversorgung abschalten(die ganz harte Methode und nicht ganz ungefährlich..)
-diverse Klicks auf bunte Bildchen
-Aufruf von RasDial /d
Syntax:
Rasdial Eintrag [Benutzername [Kennwort|*]] [/DOMAIN:Domänenname]
[/PHONE:Rufnummer] [/CALLBACK:Rückrufnummer]
[/PHONEBOOK:Telefonbuchdatei] [/PREFIXSUFFIX]
Rasdial [Eintrag] /DISCONNECT
Rasdial
Das kann jedoch mit FreeBASIC so ohne Weiteres noch nicht realisiert werden ;-)
Für Windows-User bietet sich hier aber der Aufruf von API-Funktionen aus der rasapi32.dll an:
RasEnumConnections Verbindungen auflisten
RasHangUp Verbindungen trennen
Ich habe hier erstmal ein Beispiel aus dem API-Guide nach FB portiert, das meine Internetverbindung
ohne lästige Klickerei beendet. Wenn ich die FB-API Aufrufe kapiert habe, werde ich dies wohl noch
ändern, aber bis hierher war es auch schon ein langer Weg..
'+------------------------------------------------------------------------------------------+
'| Header: Bestimmen der Übergabeparameter |
'| AnzeigeCheck:|Il1 sind Alt-0124, Großes i, kleines L, Eins „ä”öüáߎę֚Üñ±¸©ø°|
Const Author="RasTrennen.Bas v017f ¸2007 by ytwinky, MD"' |
'| (Tastenkombination: keine) |
'| |
'| Zweck : Bestehende Verbindung(en) trennen.. |
'+------------------------------------------------------------------------------------------+
Const fbNull=0
Const fbOkOnly = 0 'Nur die Schaltfläche OK anzeigen
Const RAS_MAXENTRYNAME=256
Const RAS_MAXDEVICETYPE=16
Const RAS_MAXDEVICENAME=128
Const RAS_RASCONNSIZE=412
Type RasConn
dwSize As Integer
hRasConn As Integer
szEntryName(RAS_MAXENTRYNAME) As Byte
szDeviceType(RAS_MAXDEVICETYPE) As Byte
szDeviceName(RAS_MAXDEVICENAME) As Byte
End Type
Declare Function MsgBox Lib "user32" Alias "MessageBoxA" _
(ByVal hWnd As Integer, ByVal lpText As String, _
ByVal lpCaption As String, ByVal wType As Integer) As Integer
Declare Function RasEnumConnections Lib "rasapi32.dll" Alias _
"RasEnumConnectionsA" (lpRasConn As Any Ptr, lpcb As Integer _
Ptr, lpcConnections As Integer Ptr) As Integer
Declare Function RasHangUp Lib "rasapi32.dll" Alias "RasHangUpA" _
(byVal hRasConn As Integer) As Integer
'KPD-Team 1998
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@Allapi.net
'This program will close your Internet-connection, so to test this,
'you will have to open an Internet-connection.
'..naja direkt übernehmen ließ sich das Beispiel natürlich nicht ;-))
Dim lpRasConn(255) As RasConn
Dim As Integer i, j, lpcConnections=0, lpcb, ReturnCode
Dim s As String
'Set the structure's size
lpRasConn(0).dwSize=RAS_RASCONNSIZE
lpcb=RAS_MAXENTRYNAME*lpRasConn(0).dwSize
'Enumerate all the available connections
ReturnCode=RasEnumConnections(@lpRasConn(0), @lpcb, @lpcConnections)
If lpcConnections=0 Then
s="Wasn, ich bin gar nicht drin?!"
Else
s="Aktive Verbindungen=" &lpcConnections &!"\n"
For i=0 To lpcConnections-1
j=0
Do
s+=Chr(lpRasConn(i).szEntryName(j))
j+=1
Loop Until lpRasConn(i).szEntryName(j)=0 'das muß ja nicht mit Chr() gemacht werden..^^
'Hang up
ReturnCode=RasHangUp(lpRasConn(i).hRasConn)
s+=*IIF(ReturnCode=0, @" sollte getrennt sein..", @" ist mglw. noch aktiv")
Next i
End If
MsgBox fbNull, s, "RAS-Trennen", fbOkOnly
..fröhliches Trennen :D
Hinweis: Das Programm muß mit -s gui übersetzt werden..
Gruß
ytwinky
Zusätzliche Informationen und Funktionen |
- Das Code-Beispiel wurde am 28.07.2007 von ytwinky angelegt.
- Die aktuellste Version wurde am 27.01.2008 von ytwinky gespeichert.
|
|