cmd eingabe c#

02/07/2014 21:12 Pezmasta#1
Hallo Leute!

Habe ein weiteres Problem, ich habe eine winform geschrieben mit comboxen und textboxen (siehe Bild). Bis jetzt funktioniert alles, nun möchte ich aber einen weiteren button hinzufügen der dann cmd öffnet und den befehl eingibt.

Process.Start("cmd.exe" "C\" + "net use " + " comboBox2.text + "\\" + textbox6PC.text......);
und so weiter...
Funktioniert nur leider nicht.

hoffe ihr könnt mir helfen :)

EDIT:
Code:
string strCmdText;
            strCmdText = "net use " + comboBox2.Text;
            System.Diagnostics.Process.Start("CMD.exe", strCmdText);
öffnet zwar cmd aber schreibt nichts.
02/07/2014 22:37 Terreox#2
Wenn ich deine Frage richtig verstanden habe, möchtest du im Prinzip eine Textbox und einen Button haben und sobald du auf den Button klickst, soll sich ein CMD Fenster öffnen und der Befehl in der Textbox soll dort ausgeführt werden?

Sollte dies der Fall sein, kannst du einfach in den Click-Eventhandler des Buttons folgendes reinschreiben:

Code:
private void btnOpenCmd_Click(object sender, EventArgs e)
{
    Process.Start("cmd", "/C " + txtCommand.Text);
}
Das obige Beispiel öffnen ein CMD Fenster und führt den Befehl aus, der in txtCommand steht.


Nochmal zu deinem Code:
Code:
Process.Start("cmd.exe" "C\" + "net use " + " comboBox2.text + "\\" + textbox6PC.text......);
Dein Code kann gar nicht (richtig) funktionieren.
Fangen wir beim Befehl an:
Code:
"C\" + "net use " + " comboBox2.text + "\\" + textbox6PC.text.....);
Ist komplett falsch konkateniert (zusammengefügt).
Das Ergebnis deiner Konkatenation wäre:
Code:
"C\net use  comboBox2.text + "\\" + textbox6PC.text.....");
Also im Prinzip zwei strings getrennt durch ein \\.

Richtig und schöner wäre:
Code:
"C\ net use " + comboBox2.Text + " \\\\ " + textbox6PC.Text + .....
Bitte denk dran, dass die Eigenschaft Text von ComboBox groß geschrieben wird. Also comboBox2.Text anstatt comboBox2.text.

Desweiteren versuchst du glaub ich ein \\ einzufügen.
Falls du wirklich 2 \ haben willst, musst du \\\\ eingeben, da \ eine Escapesequenz markiert.
\\ ergibt im Endeffekt also \ und \\\\ dann \\.

Dann musst du noch beachten, dass C\ keinen Befehl in der aufgerufenen CMD ausführt sondern /C.

Und zu guter Letzt fehlt noch ein , zwischen "cmd.exe" und deiner Befehlszeichenkette.
02/07/2014 22:50 Pezmasta#3
Super schon mal danke! :)

hier aber noch ein fehler:
Fehler 1 Der Name "Process" ist im aktuellen Kontext nicht vorhanden.
02/07/2014 22:53 Terreox#4
Einfach Process durch System.Diagnostics.Process ersetzen oder in die using System.Diagnostics; oben in die usings eintragen.
02/07/2014 23:06 Pezmasta#5
Bekommt ein dankeschön für die hilfe :)

Hier mein code:
Code:
 Process.Start("cmd.exe", "/C net use " + comboBox2.Text + "\\\\" + textBox6pc.Text +
                "\\" + textBoxO.Text + " " + "user:/" + textBoxB.Text + " " + textBox8pwo.Text);