Process.Start 没有启动游戏应用程序?

Process.Start Not Starting Game Application?

我是 C# 的新手,我以前用过它,但我现在真的很想了解它。 我想为一个游戏做一个外接控制台应用程序,这个游戏是一个糟糕的端口,它需要在后台打开很多程序才能让它更好玩。所以我决定制作一个程序,将 launcher.exe 替换为一个在游戏开始时启动所有程序并在游戏结束时关闭它们的程序。

确切地说,这款游戏是《生化奇兵 2》,但我很可能会制作这个程序,这样我就可以将它与其他也可以使用该程序的游戏一起使用。 不过,这是我的问题,当我开始调试时,它会打开一个程序来帮助游戏 (FlawlessWidescreen),但游戏本身不会打开。 我只试过 运行ning 生化奇兵 2,但它显示它 运行ning 很快,然后关闭,没有错误,所以我不能确切地弄清楚我做错了什么。

这是我的代码。

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

namespace Bioshock2_Advanced_Launcher
{
        public class SecurityException : SystemException
    {
        static void Main(string[] args)
        {
            Process.Start("F:\Steam Library\steamapps\common\BioShock 2\SP\Builds\Binaries\FlawlessWidescreen.lnk");
            Process.Start("F:\Steam Library\steamapps\common\BioShock 2\SP\Builds\Binaries\Bioshock2.exe");
        }
    }
}

FlawlessWidescreen 是一个快捷方式,我必须给它更高的权限,所以我不必一直以管理员身份 运行 应用程序。

我还想知道你们中是否有人知道如何检查 BioShock2 是否关闭以便其他程序也随之关闭。有什么想法吗?

谢谢

编辑:我还想补充一点,我试过的另一款游戏运行得非常好。

已使用 WorkingDirectory 修复它。

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 = Process.Start(bioshock2Info);