为什么process . start ("cmd.exe", process);不工作

本文关键字:process quot 工作 为什么 start cmd exe | 更新日期: 2023-09-27 17:49:35

这行得通:

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

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

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

为什么?

)是的,我知道它们不一样。但是第二个"应该"可以

为什么process . start ("cmd.exe", process);不工作

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

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

编辑:改成上面的/K

如果您希望cmd.exe在运行命令后关闭,则可以使用/C switch。

您需要一个/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);