Entwickler-Ecke

IO, XML und Registry - Datei ausführen mit c sharp


validas - Mo 12.09.11 14:29
Titel: Datei ausführen mit c sharp
Hallo liebes Forum.

Ich habe nun schon Stunden damit verbracht, mit hilfe von Google zu suchen wie man eine datei in c sharp ausführt... naja... wohl eher erfolgslos, deshalb wende ich mich nun an euch.

ich starte zwar einen Prozess, aber beim Ausführen des Programms geschieht nichts... -.-


C#-Quelltext
1:
2:
3:
4:
5:
            //Hier möchte ich die .pil datei ausführen
            Process MakeImage = new Process();
            MakeImage.EnableRaisingEvents = false;
            MakeImage.StartInfo.FileName = @"C:\tempSWStacker\ImageMaker.pil";
            MakeImage.Start();

was mach ich falsch? alles? synthax? überlegungsfehler? :D

oder geht das auch ganz anders?


Moderiert von user profile iconChristian S.: Topic aus WinForms verschoben am Mo 12.09.2011 um 17:04


mats74 - Mo 12.09.11 14:43

Hallo validas

Der Namespace System.Diagnostics enthält deine gewünschte Methode:


C#-Quelltext
1:
System.Diagnostics.Process.Start("C:\\tempSWStacker\\ImageMaker.pil");                    


Die Escapesequenz "\\" in der Pfadangabe musst Du beachten.
Das Standartprogramm zum Ausführen der Datei muss dem Dateityp zugewiesen sein.
Dann sollte eigentlich das Programm mit der gewünschten Datei ausgeführt werden.

Gruss
mats74


validas - Mo 12.09.11 16:54

user profile iconmats74 hat folgendes geschrieben Zum zitierten Posting springen:
Das Standartprogramm zum Ausführen der Datei muss dem Dateityp zugewiesen sein.


Nun... leider funktioniert das ganze auch so nicht..


C#-Quelltext
1:
2:
            //Hier möchte ich die .pil datei ausführen
            System.Diagnostics.Process.Start("C:\\tempSWStacker\\ImageMaker.pil");


Die .pil datei enthält nur ein paar wenige zeilen Zeichen. Diese Datei ist mit einem besonderen Programm aufrufbar..
Da mir kein Fehler an den Kopf geworfen wird, gehe ich davon aus, dass der Prozess zwar erstellt wird, aber Windows schlicht nicht weiss mit welchem Programm es das öffnen soll? kann das sein? wenn ja, wie gebe ich das "Interpreterprogramm" mit?


Christian S. - Mo 12.09.11 17:01

Hallo!

Bei vielen Programmen wird es funktionieren, die aufzurufende Datei als Parameter an das Programm zu übergeben:

C#-Quelltext
1:
System.Diagnostics.Process.Start(@"c:\programme\DeinProgramm\deinProgramm.exe"@"C:\tempSWStacker\ImageMaker.pil");                    

Sollte das nicht gehen, musst Du mal in der Doku von dem Programm schauen, welche Kommandozeilen-Parameter es versteht.

user profile iconmats74 hat folgendes geschrieben Zum zitierten Posting springen:
Die Escapesequenz "\\" in der Pfadangabe musst Du beachten.
Er hatte ein "@" vor dem String, da braucht er das nicht. Bei Pfadangaben die bessere Alternative, weil man sich einige Backslashes spart ;-)

Grüße,
Christian


C# - Mo 12.09.11 18:00

Kann es nicht sein dass dein PC den Dateityp einfach nicht kennt und nicht weis mit was er die Datei ausführen soll?
Also ich würde es einfach über den Windowsexplorer starten und die Datei als Parameter übergeben:

C#-Quelltext
1:
2:
Process proc = new Process { StartInfo = { @"C:\Windows\explorer.exe"@"C:\tempSWStacker\ImageMaker.pil" } };
proc.Start();


validas - Di 13.09.11 06:58

Vielen Dank!

Mit christians Antwort hat es nun funktioniert!
Danke auch den Anderen!