C# how to run a process(with arguments) through an

2019-07-23 15:51发布

问题:

ProcessStartInfo procStartInfo = new ProcessStartInfo("cmd", "/c " +"processNeedToRun")
{
    RedirectStandardError = true,
    RedirectStandardOutput = true,
    UseShellExecute = false,
    CreateNoWindow = true,
    Verb ="runas"
};

I use the above code to run a process through cmd in C#.

However, the problem is:

  1. "processNeedToRun" needs arguments when running.
  2. Even i set Verb ="runas", Windows 7 still prompts an elevate dialog.

Is it possible to meet all the requirements?

回答1:

If the process that's launching processNeedToRun is not elevated, then there is no way to avoid the elevation dialog. Doing so would be a security hole. So you're just going to have to live with the elevation prompt.

Adding arguments to processNeedToRun is no problem, though. You can just add them to the arguments you pass to ProcessStartInfo:

var procStartInfo = new ProcessStartInfo("cmd", "/c processNeedToRun arg1 arg2");