手动关闭另一个进程后,如何关闭进程?

时间:2016-08-06 16:48:02

标签: c# system.diagnostics

我只是试图制作一个控制台应用程序来使用工具启动我的游戏(该工具可以帮助游戏获得一些错误)。 一旦我完成游戏,我想通过游戏内菜单关闭游戏,然后我希望它随之关闭工具,而不必手动关闭它。 我似乎无法让它工作,但是如果我使用" flawlessWideScreen.Close();"并且如果我使用"那么该工具将在游戏关闭后保持打开状态。 flawlessWideScreen.Kill();"它抛出异常。

任何人都知道我做错了什么?

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();

        }
    }
}

1 个答案:

答案 0 :(得分:0)

我通过替换flawlessWideScreen.Kill()来修复它;使用此代码。

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