Come chiudere una connessione dial up da codice (Close DUN vb net)

Recentemente mi sono imbattuto nella necessita' di poter chiudere una connessione dial up da codice, dopo svariate ricerche ero quasi sconcertato che non ci fosse una via in vb net per farlo.

Per chiudere una connessione abbiamo diverse possibilita' :

Usare il WinINet : http://msdn.microsoft.com/en-us/library/aa385473(VS.85).aspx

La funzione

InternetHangUp ( http://msdn.microsoft.com/en-us/library/aa384737(VS.85).aspx )

puo' chiudere una connessione dialup solo se e' stata aperta dalla

InternetDial (http://msdn.microsoft.com/en-us/library/aa384587(VS.85).aspx )

questa limitazione ad oggi non ha trovato ancora una soluzione.

NB: per win Vista utilizzare le funzioni RAS ( http://msdn.microsoft.com/en-us/library/aa446739(VS.85).aspx )

una bella PEZZA potrebbe essere quella di utilizzare da riga di comando la "RasDial" con il parametro [nome] / disconnect

  il nome della connessione puo' essere facilmente reperito
  tramire la GetAllNetworkInterfaces :

'carico le connessioni attive in una combobox
Dim adapters As NetworkInterface() = NetworkInterface.GetAllNetworkInterfaces

Dim adapter As NetworkInterface

 For Each adapter In adapters

if adapter.NetworkInterfaceType = NetworkInterfaceType.Ppp then ' controllo se sia una connessione dialup

ComboBox1.Items.Add(adapter.Name)

end if

Next


Dopo aver trovato la nostra connessione la possiamo chiudere :

Disconnect(combobox1.text)

qui la sub che effettua la chiusura

        Sub Disconnect(myConnection)

               Dim MyProcess As New System.Diagnostics.Process

                MyProcess.StartInfo.FileName = "rasdial"

                MyProcess.StartInfo.Arguments = Chr(34) & myConnection & Chr(34) & " /disconnect"

                MyProcess.StartInfo.UseShellExecute = False

                MyProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden

                MyProcess.Start()

                MyProcess.WaitForExit()

                MyProcess.Close()

        End Sub

FINE !

«November»
SunMonTueWedThuFriSat
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789