0

我想通过提供参数来开始一个过程(不确定这些可以称为“参数”......见下文)。现在这有点特别:

  • 该过程是一个 GUI(游戏 - 使命召唤 4 多人游戏),
  • 我有一个此 GUI 的 Windows 快捷方式,其目标如下"C:\\Path To Game\\game.exe" + connect [serverip]:(注意+)。当我启动这个快捷方式时,GUI 启动并执行参数 connect [serverip](游戏实际启动并连接到服务器)。

我尝试了以下方法:

  1. Process.Start("C:\\Path To Game\\game.exe + connect [serverip]");

    但这显然以Win32Exception “系统找不到指定的文件”结束。

  2. var psi = new ProcessStartInfo();
    psi.FileName = "C:\\Path To Game\\game.exe";
    psi.Arguments = "+ connect [serverip]";
    Process.Start(psi);
    

    这会在 GUI 中产生错误(游戏无法启动并显示“WIN_IMPROPER_QUIT_BODY”)。

任何想法如何为我的流程提供这些论点?

4

3 回答 3

2

是否可能需要WorkingDirectory为游戏设置

string exePath = "C:\\Path To Game\\game.exe";
var psi = new ProcessStartInfo();
psi.FileName = exePath;
psi.Arguments = "+ connect [serverip]";
psi.WorkingDirectory = Path.GetDirectoryName(exePath);
Process.Start(psi);
于 2013-03-13T21:57:00.253 回答
0

选项 2 是去那里的方式,但你的“+”发生了什么?它不是一个特殊字符,它只是传递给命令,所以你也需要在 psi.Arguments 的开头包含它。

于 2013-03-13T21:53:17.603 回答
0

你必须使用:

psi.Arguments = "+connect [serverip]";

+(和之间没有空格connect)。

于 2013-03-13T21:59:33.143 回答