16

这有效:

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

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

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

为什么?

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

4

3 回答 3

36

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

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

编辑:更改为/K以上。/C如果要cmd.exe在运行命令后关闭,可以使用switch。

于 2012-12-24T10:41:32.610 回答
7

您需要一个/c或一个/k开关(用于 的选项cmd.exe),以便执行该命令。尝试:

ProcessStartInfo info = new ProcessStartInfo("cmd.exe");
info.Arguments = "/c control /name Microsoft.DevicesAndPrinters";
Process.Start(info);
于 2012-12-24T10:44:50.330 回答
1

试试这个

ProcessStartInfo info = new ProcessStartInfo("control");
info.Arguments = "/name Microsoft.DevicesAndPrinters";
Process.Start(info);
于 2012-12-24T10:37:45.123 回答