我想通过提供参数开始一个过程(不确定这些可以被称为“参数”......见下文)。现在这有点特别:
"C:\\Path To Game\\game.exe" + connect [serverip]
(请注意+
)。当我启动此快捷方式时,GUI启动并执行参数 connect [serverip]
(游戏实际启动并连接到服务器)。我尝试了以下内容:
Process.Start("C:\\Path To Game\\game.exe + connect [serverip]");
但这显然以 Win32Exception 结尾“系统无法找到指定的文件”。
var psi = new ProcessStartInfo();
psi.FileName = "C:\\Path To Game\\game.exe";
psi.Arguments = "+ connect [serverip]";
Process.Start(psi);
这会在GUI中产生错误(游戏无法启动并显示“WIN_IMPROPER_QUIT_BODY”)。
如何向我的流程提供这些参数的任何想法?
答案 0 :(得分: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);
答案 1 :(得分:0)
选项2是去那里的方式,但你的'+'发生了什么?它不是一个特殊的角色,只是传递给命令,所以你需要在psi.Arguments的开头包含它。
答案 2 :(得分:0)
你必须使用:
psi.Arguments = "+connect [serverip]";
(+
和connect
之间没有空格。)