Benutzer mit den meisten Antworten
Problem bei ausführen einer EXE-Datei.

Frage
-
Ich habe ein Problem:
Ich habe mein Programm, also die EXE. In dem selben Ordner befinden sich 6 weitere Ordner und in jedem Ordner gibt es je eine Datei, die "Pong.exe" heißt. Wenn ich eine Exe-Datei dann ausführen möchte (System.Diagnostics.Process.Start("0\\Pong.exe");), funktioniert das nicht, also der Prozess startet für 2 Sekunden und dann, ohne das das Programm startet, wird der Prozess wieder geschlossen.
Wenn ich eine Exe-Datei sofort in dem Ordner habe, wo die Exe von meinem Programm habe (System.Diagnostics.Prozess.Start("Pong.exe");) dann öffnet das Programm die Datei und es funktioniert.
Jetzt habe ich keine Ahnung, wo das Problem liegt.
Ich hoffe ihr könnt mir helfen
- Typ geändert Robert BreitenhoferModerator Montag, 28. Februar 2011 07:50 Frage
Antworten
-
Hallo M.,
- > (System.Diagnostics.Process.Start("0\\Pong.exe");
das ist sehr unsauber, weil es vom aktuellen Verzeichnis abhängt (was sich das durch verschiedenste Umstände ändern kann) - das vermeide möglichst immer!
Hier eine sauberere Implementation:
using System.Diagnostics; using System.IO; using System.Windows.Forms; namespace WinOrdner { public partial class Form1 : Form { public Form1() { InitializeComponent(); NeuesProgrammAufrufen("0", "Pong.exe"); } private void NeuesProgrammAufrufen(string ordner, string programmName) { ProcessStartInfo psi = new ProcessStartInfo(); psi.WorkingDirectory = Path.Combine(Application.StartupPath, ordner); psi.FileName = Path.Combine(psi.WorkingDirectory, programmName); Process.Start(psi); } } }
ciao Frank- Als Antwort markiert Robert BreitenhoferModerator Montag, 28. Februar 2011 07:50
-
Hallo,
da kann man nur raten:
Vermutlich findet das Programm (Spiel?) benötigte Dateien nicht.
Du solltest über die Eingabeaufforderung (cmd.exe) testen, ob das gleiche Verhalten auch dort auftritt.
Wechsele dazu in das Verzeichnis und starte das Programm ebenso mit [Verzeichnis]\pong.exeWenn ja, musst Du herausfinden, welche Dateien zusätzlich in dem Verzeichnis benötigt werden.
Mit C#/.NET hat das dann aber nichts mehr zu tun.
Gruß Elmar
- Als Antwort markiert Robert BreitenhoferModerator Montag, 28. Februar 2011 07:50
Alle Antworten
-
Hallo,
da kann man nur raten:
Vermutlich findet das Programm (Spiel?) benötigte Dateien nicht.
Du solltest über die Eingabeaufforderung (cmd.exe) testen, ob das gleiche Verhalten auch dort auftritt.
Wechsele dazu in das Verzeichnis und starte das Programm ebenso mit [Verzeichnis]\pong.exeWenn ja, musst Du herausfinden, welche Dateien zusätzlich in dem Verzeichnis benötigt werden.
Mit C#/.NET hat das dann aber nichts mehr zu tun.
Gruß Elmar
- Als Antwort markiert Robert BreitenhoferModerator Montag, 28. Februar 2011 07:50
-
Hallo M.,
- > (System.Diagnostics.Process.Start("0\\Pong.exe");
das ist sehr unsauber, weil es vom aktuellen Verzeichnis abhängt (was sich das durch verschiedenste Umstände ändern kann) - das vermeide möglichst immer!
Hier eine sauberere Implementation:
using System.Diagnostics; using System.IO; using System.Windows.Forms; namespace WinOrdner { public partial class Form1 : Form { public Form1() { InitializeComponent(); NeuesProgrammAufrufen("0", "Pong.exe"); } private void NeuesProgrammAufrufen(string ordner, string programmName) { ProcessStartInfo psi = new ProcessStartInfo(); psi.WorkingDirectory = Path.Combine(Application.StartupPath, ordner); psi.FileName = Path.Combine(psi.WorkingDirectory, programmName); Process.Start(psi); } } }
ciao Frank- Als Antwort markiert Robert BreitenhoferModerator Montag, 28. Februar 2011 07:50