C# Debugmode im Programm

Blechdose

Ensign
Registriert
Mai 2008
Beiträge
148
Hallo,

ich schreibe zur Zeit ein kleines Programm, mit dem man später CMD-Dateien schreiben soll. Soweit so gut. Nun habe ich ja z.B. ein kleines Skript im Programm geschrieben und möchte diese natürlich auch testen, ohne vorher es zu speichern und dann zu öffnen, hier also meine Frage;

Kann man einen "Debugmodus" in sein Programm einbauen, dass dann gerade das ebene CMD-Skript ausführt?

Ich dachte irgendwie daran, das Skript an einen Ort zwischenzuspeichern und es dann von dort aus automatisch zu starten, sobald der Anwender den Debugbutton klickt?!

Ist sowas überhaupt möglich wenn ja, wie kann ich das realisieren?

Vielen Dank für antworten ;)
 
Ja das geht schau dich mal um zum Thema "Threads" da kann man dann Programme starten. habs leider grad nicht genau im Kopf wie es geht.

EDIT
Process Klasee nicht Thread ;)
 
Zuletzt bearbeitet:
erstmal vielen dank für die antwort,

gibt es da auch codebeispiele? Ich möchte das ja im prinzip so aussehen lassen, wie in Visual Studio wenn man dort den Debuggingmodus startet (also mit button > cmd programm startet)
 
Code:
System.Diagnostics.Process.Start(System.Environment.SystemDirectory+"\\NOTEPAD.EXE");

Das fürht Notepad aus... einfach deine Bat/Cmd angeben mit richtigem Pfad dann sollte das gehen. wenn du ein Button hast einfach das Clickereignis benutzen

http://dotnetperls.com/process-start-net
 
Zuletzt bearbeitet:
ah super, damit werde ich es mal testen!

noch eine frage, wie kann die datei temporär speichern, ohne savefiledialog, damit diese auch ausgeführt werden kann und wenn es geht nach abschluss wieder gelöscht wird?
 
Zuletzt bearbeitet:
Ne temporäre Datei erzeugst du so:
PHP:
string filename = Guid.NewGuid().ToString() +".bat";
string tempFilePath = Path.Combine(Path.GetTempPath(), filename);
StreamWriter sw = new StreamWriter(tempFilePath);

string text = "taskmgr";

sw.Write(text);
sw.Close();

Process.Start(tempFilePath);

Löschen geht dann mit:
PHP:
File.Delete(tempFilePath);
 
Zuletzt bearbeitet:
ich hab das nun so gelöst:
Code:
            using (StreamWriter writer = new StreamWriter(SysVerz + @"\\UNBENANNT.cmd"))
            {
                writer.Write(this.richTextBox1.Text.Replace("\n", "\r\n"));
            }

            

            Process.Start(SysVerz + "\\UNBENANNT.cmd");
            saved = true;

ohne löschen allerdings. Vielen dank für die Hilfe.
 
Zurück
Oben