Autor Beitrag
stitch92
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mi 18.04.12 11:19 
Hi Leute,

hab ein kleines Problem, dass mir sehr unlogisch erscheint.. weshalb ich wahrscheinlich auch die Lösung nicht finde :D

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":
ausblenden 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)  //Aktivieren
        {
            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":
ausblenden 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) //Deaktivieren
        {
            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();

                //Console.WriteLine(lineW);
                
                System.Threading.Thread.Sleep(1000);
            }

            r.Close();
            
        }


Wär cool wenn jemanden was dazu einfällt =)

Gruß
stitch92

Moderiert von user profile iconKha: Quote- durch C#-Tags ersetzt
stitch92 Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mo 23.04.12 12:01 
Weiß niemand ne Antwort? =(

Kann das vllt jemand mal bei sich einfügen und schauen ob es bei ihm funktioniert?

THX
stitch92