Hi Leute,
hab ein kleines Problem, dass mir sehr unlogisch erscheint.. weshalb ich wahrscheinlich auch die Lösung nicht finde
Also mein Ziel ist es, ein kleines programm zu schreiben dass Netzwerkadapter dynamisch aktivieren und deaktivieren kann.
Den Befehl dazu führe ich so aus, als ob ich ihn in die cmd eintippen würde, nur dass der Name des(oder mehrerer) Netzwerkadapter/s zuvor in eine Textbox eingegeben wird und in ein *.txt geschrieben wird.
Beim nächsten Ausführen muss dann nicht wieder jeder Adapter eingetragen werden sondern es wird einfach in einer Schleife das *.txt-file ausgelesen und die Adapter deaktiviert/aktiviert.
Der Befehl den ich dazu nutze lautet:
- Netsh interface set interface LAN-Verbindung enabled
bzw.
- Netsh interface set interface LAN-Verbindung disabled
(Der Befehl funst leider unter XP Prof. nicht -.-.. aber unter Win7 problemlos)
Nun zum eigentlichen problem..
Das Deaktivieren funktioniert einwandfrei, das Textfile wird ausgelesen und die Adapter werden deaktiviert wie gewünscht.
Wenn ich die Adapter aber aktivieren will, lässt sich nur die "LAN-Verbindung" aktivieren.. obwohl mehrere Adapter im Textfile stehen! Die restlichen bleiben deaktiviert, warum?
Button "Aktivieren":
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| private void button1_Click(object sender, EventArgs e) { StreamReader r = new StreamReader("Adapter.txt"); string lineR; while ((lineR = r.ReadLine()) != null) { Process prozess1 = new Process(); prozess1.StartInfo.FileName = "netsh"; prozess1.StartInfo.Arguments = @" interface set interface " + lineR.ToString() + " enabled"; prozess1.StartInfo.RedirectStandardError = true; prozess1.StartInfo.RedirectStandardOutput = true; prozess1.StartInfo.RedirectStandardInput = true; prozess1.StartInfo.UseShellExecute = false; prozess1.Start();
System.Threading.Thread.Sleep(1000); }
r.Close(); } |
Button "Deaktivieren":
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:
| private void button2_Click(object sender, EventArgs e) { StreamReader r = new StreamReader("Adapter.txt"); string lineW; while ((lineW = r.ReadLine()) != null) { Process prozess1 = new Process(); prozess1.StartInfo.FileName = "netsh"; prozess1.StartInfo.Arguments = @" interface set interface " + lineW.ToString() + " disabled"; prozess1.StartInfo.RedirectStandardError = true; prozess1.StartInfo.RedirectStandardOutput = true; prozess1.StartInfo.RedirectStandardInput = true; prozess1.StartInfo.UseShellExecute = false; prozess1.Start();
System.Threading.Thread.Sleep(1000); }
r.Close(); } |
Wär cool wenn jemanden was dazu einfällt =)
Gruß
stitch92
Moderiert von
Kha: Quote- durch C#-Tags ersetzt