2017-01-07 1 views
0

Ich habe wirklich keine Ahnung, warum dieser Code nicht funktioniert. Jedes Mal, wenn ich den Fehler bekomme Kann Prozess nicht starten, weil ein Dateiname nicht angegeben wurde. Obwohl ich den Pfad, in dem sich die EXE befindet, bereitgestellt habe und es verifiziert habe.C# -Code nicht gestartet .exe Fehler beim Ermitteln des Dateinamens kann nicht gefunden werden

using System; 
using System.Diagnostics; 
using System.Diagnostics.Contracts; 

namespace ProcessExitSample 
{ 
    class testsandboxprogram 
    { 
     static void Main(string[] args) 
     { 
      Contract.Requires(args != null); 
      try 
      { 
       var firstProc = new Process(); 
       Process.Start(@"PATH TO EXE I WANT TO LAUNCH"); 
       firstProc.EnableRaisingEvents = true; 

       firstProc.Start(); 

       firstProc.WaitForExit(); 

       //so upon exit should run the second program here 
       Console.WriteLine("First process exited: " + firstProc.ExitCode); 

       var secondProc = new Process(); 
       Process.Start(@"PATH TO PROGRAM I WANT TO LAUNCH"); 
       secondProc.Start(); 

      } 
      catch (Exception ex) 
      { 
       Console.WriteLine("Something went wrong sorry :(: " + ex.Message); 
       return; 
      } 
     } 
    } 
} 
+3

nicht geben Sie den Namen einer Datei tatsächlich "PATH TO EXE"? Was hat das mit C++ zu tun? [mcve] – Sayse

+0

Ich sollte nicht einen Dateinamen verwenden, obwohl Process.Start (@filepath) richtig? – ltbj

+0

Welchen Prozess würden Sie erwarten, dass es dann anfängt? .. Stellen Sie sich vor, der Dateipfad ist 'C: \ Windows' welche dieser EXEs würden Sie starten? .. – Sayse

Antwort

0
  var firstProc = new Process(); 
      // Process.Start(@"PATH TO EXE I WANT TO LAUNCH"); 
      firstProc.EnableRaisingEvents = true; 
      firstProc.Start(); 

Sie tun nicht einen Pfad für Ihren Prozess zur Verfügung stellen zu starten. Ich habe den irrelevanten Code auskommentiert, da er nicht mit der firstProc Variablen zusammenhängt.

Sie wollen wahrscheinlich:

firstProc.StartInfo.FileName = @"\Path\To\Exe"; 
+0

Hmm schien nicht zu arbeiten entweder – ltbj

0
String myexepath = @"C:\Program Files (x86)\Steam\steamapps\common\BattleBlock Theater\BattleBlockTheater.exe" 

Da dieser Pfad enthält, ein Raum, den sie zwischen doppelte Anführungszeichen ein:

Process.Start("\""+myexepath+"\""); 
Verwandte Themen