Netzwerk Trennen über ListBox auswahl ! HILFE !

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von TVX.

    Netzwerk Trennen über ListBox auswahl ! HILFE !

    Hallo miteinander ich habe ein etwas schlichtes Problem dessen Antwort mich aber sehr interessiert !

    Und zwar schalt ich ein Netzwerk Adapter Mit folgendem Code ein und aus !

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. Shell("netsh interface set interface Lan-Verbindung DISABLED")
    3. End Sub
    4. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    5. Shell("netsh interface set interface Lan-Verbindung ENABLE")
    6. End Sub


    OK DAS GEHT AUCH WUNDERBAR !


    Nun soll er aber den Name der Verbindung über eine Listbox zugeführt werden (( und dann geht nichts mehr )) :!:


    ALSO STATT SO :

    VB.NET-Quellcode

    1. Shell("netsh interface set interface Lan-Verbindung DISABLED")


    SOLL ES NUN AUSSEHEN:

    VB.NET-Quellcode

    1. Shell("netsh interface set interface" + ListBox1.SelectedItem + " ENABLE")




    UND DAS IST NUN DAS GANZE KONSTRUKT :

    VB.NET-Quellcode

    1. Imports System.Net.NetworkInformation
    2. Public Class Form1
    3. Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
    4. Shell("netsh interface set interface" + ListBox1.SelectedItem + " DISABLED")
    5. End Sub
    6. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    7. ' NetzwerkInterface-Objekt
    8. Dim oInterface As NetworkInterface
    9. ' ListBox-Inhalt löschen
    10. ListBox1.Items.Clear()
    11. ' alle verfügbaten Netzwerk-Interfaces durchlaufen
    12. For Each oInterface In NetworkInterface.GetAllNetworkInterfaces()
    13. With oInterface
    14. ' nur wenn es sich um kein LoopBack/Tunnel-Interface handelt...
    15. If .NetworkInterfaceType <> NetworkInterfaceType.Loopback AndAlso .NetworkInterfaceType <> NetworkInterfaceType.Tunnel Then
    16. ' Name der Netzwerkverbindung, Status und MAC-Adresse
    17. ' in die ListBox schreiben
    18. ListBox1.Items.Add(.Name.ToString)
    19. End If
    20. End With
    21. Next
    22. End Sub
    23. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    24. Shell("netsh interface set interface" + ListBox1.SelectedItem + " ENABLE")
    25. End Sub
    26. End Class


    ?( ?( ?( Warum geht das nicht ?( ?( ?(

    Admin Rechte wurden berücksichtigt :!:


    Vielen Dank im Voraus :!:
    LG Andre..
    Ausgehend von dem Beispiel weiter oben:

    ALSO STATT SO :
    Visual Basic Quellcode
    1
    Shell("netsh interface set interface Lan-Verbindung DISABLED")
    SOLL ES NUN AUSSEHEN:
    Visual Basic Quellcode
    1
    Shell("netsh interface set interface" + ListBox1.SelectedItem + " ENABLE")


    davon kann ich nur eines sagen. Das unten wird nie das oben ergeben, da nach "interface" ein Leerraum fehlt -> "interface ". Ob dies nun der Fehler ist kann ich dir nicht sagen. Aber wenn es den Leerraum braucht möglicherweise schon. Außerdem in C# werden Strings durch + verknüpft. In VB nicht -> '&'.

    Ach ja wichtig:
    Egal welche Idioten dir sagen, dass du Shell verwenden sollst... glaubs nicht. Shell kommt ausm letzen Jahrhundert und ist mehr als veraltet. Heute wurden die ganzen alten Dinge abgelöst. In diesem Fall durch die Process Klasse. In der Kurzform kannst du "Shell" einfach durch Process.Start ersetzen und hinten die nötigen Argumente angeben. Dies entspricht der heutigen Zeit und ist auch wesentlich Flexibler als Shell...
    In deinem Fall müsste wenn mich nicht alles täuscht dies z.b. so funktionieren

    VB.NET-Quellcode

    1. Process.Start("netsh", "interface set interface Lan-Verbindung ENABLE")


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „thefiloe“ ()

    So ihr lieben ich Danke euch vielmals - ! ES GEHT !

    Das mit dem ((Option Strict On )) hab ich mir grad mal gesucht und werds mir durchlesen !

    VB.NET-Quellcode

    1. Option Strict On
    2. Imports System.Net.NetworkInformation
    3. Public Class Form1
    4. Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
    5. Process.Start("netsh", "interface set interface " & ListBox1.SelectedItem.ToString & " ENABLE")
    6. End Sub
    7. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    8. ' NetzwerkInterface-Objekt
    9. Dim oInterface As NetworkInterface
    10. ' ListBox-Inhalt löschen
    11. ListBox1.Items.Clear()
    12. ' alle verfügbaten Netzwerk-Interfaces durchlaufen
    13. For Each oInterface In NetworkInterface.GetAllNetworkInterfaces()
    14. With oInterface
    15. ' nur wenn es sich um kein LoopBack/Tunnel-Interface handelt...
    16. If .NetworkInterfaceType <> NetworkInterfaceType.Loopback AndAlso .NetworkInterfaceType <> NetworkInterfaceType.Tunnel Then
    17. ' Name der Netzwerkverbindung, Status und MAC-Adresse
    18. ' in die ListBox schreiben
    19. ListBox1.Items.Add(.Name)
    20. End If
    21. End With
    22. Next
    23. End Sub
    24. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    25. Process.Start("netsh", "interface set interface " & ListBox1.SelectedItem.ToString & " DISABLED")
    26. End Sub
    27. Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
    28. End Sub
    29. End Class


    LG Andre..