为什么要Process.Start(“cmd.exe”,进程); 不行?
这有效:
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
以上。 如果希望cmd.exe
在运行命令后关闭,则可以使用/C
开关。
您需要一个/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);