我对C#还很陌生,我以前也用过它,但我现在真的很想了解它。我想做一个游戏的外部控制台应用程序,游戏是一个坏的端口,它需要在后台打开许多程序,使其更具可玩性。因此,我决定编写一个程序,将launcher.exe替换为一个在游戏开始时启动所有程序,并在游戏结束时关闭它们的程序。
准确地说,这个游戏是BioShock 2,但我很可能会制作这个程序,这样我就可以在其他可以使用这个程序的游戏中使用它。这是我的问题,当我开始调试时,它会打开一个程序来帮助游戏(FlawlessWidescreen),但游戏本身不会打开。我试过只运行BioShock2,但它显示它运行了一小段时间,然后就关闭了,没有错误,所以我不能准确地找出我做错了什么。
这是我的代码。
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是否关闭,以便其他程序也会随之关闭。有什么想法吗?
谢谢
编辑:我还想补充说,我尝试过的另一款游戏运行得很好。
发布于 2016-08-06 07:54:21
通过使用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);https://stackoverflow.com/questions/38638053
复制相似问题