为什么的Process.Start(“cmd.exe的”,过程); 不行?(Why does P

2019-07-17 13:33发布

这工作:

Process.Start("control", "/name Microsoft.DevicesAndPrinters");

但这并不:(它只是打开一个命令提示符。)

ProcessStartInfo info = new ProcessStartInfo("cmd.exe");
info.Arguments = "control /name Microsoft.DevicesAndPrinters";
Process.Start(info);

为什么?

(是的,我知道他们是不相同的,但第二个“应当”的工作。)

Answer 1:

这是因为cmd.exe期望一个/K开关来执行作为参数传递的过程。 试试下面的代码

ProcessStartInfo info = new ProcessStartInfo("cmd.exe");
info.Arguments = "/K control /name Microsoft.DevicesAndPrinters";
Process.Start(info);

编辑:更改为/K以上。 您可以使用/C ,如果你想切换cmd.exe它已经运行命令后关闭。



Answer 2:

你需要一个/c/k开关(选项cmd.exe ,使得执行该命令)。 尝试:

ProcessStartInfo info = new ProcessStartInfo("cmd.exe");
info.Arguments = "/c control /name Microsoft.DevicesAndPrinters";
Process.Start(info);


Answer 3:

试试这个

ProcessStartInfo info = new ProcessStartInfo("control");
info.Arguments = "/name Microsoft.DevicesAndPrinters";
Process.Start(info);


文章来源: Why does Process.Start(“cmd.exe”, process); not work?