我需要通过c#为一个名为handle.exe的进程传递多个命令行参数: http://www.google.com.mt/search?sourceid=chrome&ie=UTF-8&q=handle.exe
首先,我需要通过ADMINISTRATOR权限运行可执行文件。这篇文章帮我实现了这个目标: programatically run cmd.exe as adminstrator in vista, c#
但接下来是调用实际行参数的下一个问题,例如“-p explore”
如何一起指定命令行参数,或者可以连续指定?
目前的代码如下:
Process p = new Process();
ProcessStartInfo processStartInfo = new ProcessStartInfo("filePath");
processStartInfo.CreateNoWindow = true;
processStartInfo.UseShellExecute = false;
processStartInfo.RedirectStandardOutput = true;
processStartInfo.RedirectStandardInput = true;
processStartInfo.Verb = "runas";
processStartInfo.Arguments = "/env /user:" + "Administrator" + " cmd";
p.StartInfo = processStartInfo;
p.Start();
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
Console.WriteLine(output);
由于
答案 0 :(得分:1)
我相信您正在寻找的答案就在Runas command documentation之外。
runas /user:user@domain.microsoft.com "notepad my_file.txt"
runas 命令的最后一个参数似乎是与任何参数一起运行的命令。关键是使用引号将实际命令可执行文件与其参数分组,以便这些值不会被视为runas命令的单独参数,而是作为单个命令自行发出。
因此,在您的示例中,您可能希望执行以下操作。
processStartInfo.Arguments = "/env /user:" + "Administrator" + " \"cmd -p explore\"";
答案 1 :(得分:0)
您可以使用UseShellExecute命令运行该过程并传入用户名和密码
虽然您将在某处存储用户名和密码。
答案 2 :(得分:0)
如果您尝试使用提升的权限运行进程,则可能有一种比调用runas更好的方法。