Почему 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);
Почему?
(Да, я знаю, что они не идентичны, но второй должен "работать".)
Ответы
Ответ 1
Это связано с тем, что cmd.exe
ожидает, что переключатель /K
выполнит процесс, переданный в качестве аргумента. Попробуйте код ниже
ProcessStartInfo info = new ProcessStartInfo("cmd.exe");
info.Arguments = "/K control /name Microsoft.DevicesAndPrinters";
Process.Start(info);
EDIT: изменено на /K
выше. Вы можете использовать переключатель /C
, если вы хотите, чтобы cmd.exe
закрывался после запуска этой команды.
Ответ 2
Вам нужен переключатель /c
или /k
(параметры для cmd.exe
), чтобы команда выполнялась. Попробуйте:
ProcessStartInfo info = new ProcessStartInfo("cmd.exe");
info.Arguments = "/c control /name Microsoft.DevicesAndPrinters";
Process.Start(info);
Ответ 3
Попробуйте этот
ProcessStartInfo info = new ProcessStartInfo("control");
info.Arguments = "/name Microsoft.DevicesAndPrinters";
Process.Start(info);