这工作:
Process.Start("control", "/name Microsoft.DevicesAndPrinters");
但这并不:(它只是打开一个命令提示符。)
ProcessStartInfo info = new ProcessStartInfo("cmd.exe");
info.Arguments = "control /name Microsoft.DevicesAndPrinters";
Process.Start(info);
为什么?
(是的,我知道他们是不相同的,但第二个“应当”的工作。)
这是因为cmd.exe
期望一个/K
开关来执行作为参数传递的过程。 试试下面的代码
ProcessStartInfo info = new ProcessStartInfo("cmd.exe");
info.Arguments = "/K control /name Microsoft.DevicesAndPrinters";
Process.Start(info);
编辑:更改为/K
以上。 您可以使用/C
,如果你想切换cmd.exe
它已经运行命令后关闭。
你需要一个/c
或/k
开关(选项cmd.exe
,使得执行该命令)。 尝试:
ProcessStartInfo info = new ProcessStartInfo("cmd.exe");
info.Arguments = "/c control /name Microsoft.DevicesAndPrinters";
Process.Start(info);
试试这个
ProcessStartInfo info = new ProcessStartInfo("control");
info.Arguments = "/name Microsoft.DevicesAndPrinters";
Process.Start(info);