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

2019-07-23 16:05发布

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条回答
你好瞎i
2楼-- · 2019-07-23 16:40

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");
查看更多
登录 后发表回答