这有效:
Process.Start("control", "/name Microsoft.DevicesAndPrinters");
但这不是:(它只是打开一个命令提示符。)
ProcessStartInfo info = new ProcessStartInfo("cmd.exe");
info.Arguments = "control /name Microsoft.DevicesAndPrinters";
Process.Start(info);
为什么?
(是的,我知道它们不相同。但第二个“应该”有效。)
答案 0 :(得分:35)
这是因为cmd.exe
期望/K
开关执行作为参数传递的进程。请尝试以下代码
ProcessStartInfo info = new ProcessStartInfo("cmd.exe");
info.Arguments = "/K control /name Microsoft.DevicesAndPrinters";
Process.Start(info);
编辑:已更改为/K
以上。如果希望/C
在运行命令后关闭,则可以使用cmd.exe
开关。
答案 1 :(得分:7)
您需要/c
或/k
开关(cmd.exe
选项),以便执行命令。尝试:
ProcessStartInfo info = new ProcessStartInfo("cmd.exe");
info.Arguments = "/c control /name Microsoft.DevicesAndPrinters";
Process.Start(info);
答案 2 :(得分:1)
试试这个
ProcessStartInfo info = new ProcessStartInfo("control");
info.Arguments = "/name Microsoft.DevicesAndPrinters";
Process.Start(info);