2016-08-06 18 views
1

Ich versuche einfach, eine Konsole-Anwendung zu machen, um mein Spiel mit einem Werkzeug zu starten (Das Tool hilft dem Spiel mit einigen der Fehler, die es hat). Sobald ich mit dem Spiel fertig bin, möchte ich das Spiel über das Spielmenü herunterfahren, und dann möchte ich, dass es das Werkzeug schließt, ohne es manuell herunterfahren zu müssen. Ich kann es nicht scheinen, um es zu arbeiten, aber das Werkzeug nur offen bleiben, nachdem mein Spiel schließt, wenn ich "makellose Widescreen.Close();", und wenn ich "makellose Widescreen.Kill();" Es löst eine Ausnahme aus.Wie schließe ich einen Prozess, nachdem ich manuell einen anderen heruntergefahren habe?

Wer weiß, was ich falsch mache?

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Diagnostics; 
using System.IO; 

namespace Bioshock2AdvancedLauncher 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      ProcessStartInfo bioshock2Info = new ProcessStartInfo(); 
      bioshock2Info.FileName = (@"F:\Steam Library\steamapps\common\BioShock 2\SP\Builds\Binaries\Bioshock2.exe"); 
      bioshock2Info.WorkingDirectory = Path.GetDirectoryName(@"F:\Steam Library\steamapps\common\BioShock 2\SP\Builds\Binaries\Bioshock2.exe"); 
      Process bioshock2 = new Process(); 
      bioshock2.EnableRaisingEvents = true; 
      bioshock2 = Process.Start(bioshock2Info); 

      Process flawlessWideScreen = new Process(); 
      flawlessWideScreen = Process.Start(@"F:\Steam Library\steamapps\common\BioShock 2\SP\Builds\Binaries\FlawlessWidescreen.lnk"); 

      bioshock2.WaitForExit(); 

      flawlessWideScreen.Kill(); 

     } 
    } 
} 

Antwort

0

Ich reparierte es, indem ich maklelessWideScreen.Kill(); mit diesem Code.

 foreach (Process p in Process.GetProcesses()) 
     { 
      string name = p.ProcessName.ToLower(); 
      if (name == "flawlesswidescreen") p.Kill(); 
     }