Подтвердить что ты не робот

Почему 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);

Почему?

(Да, я знаю, что они не идентичны, но второй должен "работать".)

4b9b3361

Ответ 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);