我创建了一个以管理员身份执行.exe
文件的方法
我想对两个不同的.exe
文件使用相同的方法,但.exe
文件看起来彼此不同。因此,他们需要不同数量的参数
方法如下:
public static int RunProcessAsAdmin(string exeName, string parameters)
{
try {
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.UseShellExecute = true;
startInfo.WorkingDirectory = CurrentDirectory;
startInfo.FileName = Path.Combine(CurrentDirectory, exeName);
startInfo.Verb = "runas";
if (parameters.Contains("myValue")) {
startInfo.Arguments = parameters + "otherParam1" + "otherParam2";
} else {
startInfo.Arguments = parameters;
}
startInfo.WindowStyle = ProcessWindowStyle.Normal;
startInfo.ErrorDialog = true;
Process process = process.Start(startInfo);
process.WaitForExit();
return process.ExitCode;
}
} catch (Exception ex) {
WriteLog(ex);
return ErrorReturnInteger;
}
}
这里if (parameters.Contains("myValue"))
我以某种方式检测到哪个.exe
文件正在执行。但是,添加这样的参数无法正常工作:startInfo.Arguments = parameters + "otherParam1" + "otherParam2";
是否可以添加其他参数?
答案 0 :(得分:4)
ProcessStartInfo.Arguments
只是一个字符串,所以在每个参数之间加上一个空格:
startInfo.Arguments = "argument1 argument2";
<强>更新强>
所以改变:
startInfo.Arguments = parameters + "otherParam1" + "otherParam2";
到此(仅当您将"otherParam1"
和"otherParam2"
更改为变量时):
startInfo.Arguments = parameters + " " + "otherParam1" + " " + "otherParam2";
如果您不打算将"otherParam1"
和"otherParam2"
更改为变量,请使用:
startInfo.Arguments = parameters + " " + "otherParam1 otherParam2";
答案 1 :(得分:0)
参数是一个字符串,因此您可以使用string.Format
:
startInfo.Arguments = string.Format("{0} {1} {2}", parameters, otherParam1, otherParam2);