Как запустить cmd.exe и много переключателей через cmd.exe в Process.Start () - PullRequest
0 голосов
/ 07 апреля 2011

Как и в предыдущем вопросе, я иногда запускаю эту команду для cmd.exe:

Rundll32 Printui.dll,PrintUIEntry /ia /K /q /m "SHARP MX-5500N PS" /h "Windows NT x86" /v 3 /f sn0hwenu.inf

Если я хочу запустить это через Process.Start (), все ли до PrintUIEntry имя файла и остальные аргументы? Нужно ли использовать concd cmd.exe в начале вышеуказанной строки (в любом случае я предполагаю, что да), и если это так, то это имя файла и остальные аргументы. Есть ли здесь эмпирическое правило?

Спасибо

Ответы [ 2 ]

2 голосов
/ 07 апреля 2011

Имя файла должно быть Rundll32.exe.Printui.dll и т. Д. Являются аргументами.Вам не нужно cmd.exe, так как rundll32 - это собственная программа.

0 голосов
/ 07 апреля 2011

Вы можете использовать ProcessStartInfo, чтобы указать файл для запуска (rundll32), и свойство Arguments, чтобы указать аргументы для использования. Это не массив, а строка.

startInfo.Arguments = "/ x / y / z";

Вам не нужен cmd.exe, потому что вы запускаете процесс, который будет называться rundll32, для которого не требуется cmd для его размещения.

ProcessStartInfo startInfo = new ProcessStartInfo();
    startInfo.FileName = "rundll32.EXE";
    startInfo.Arguments = "Printui.dll,PrintUIEntry /ia /K /q /m "SHARP MX-5500N PS" /h "Windows NT x86" /v 3 /f sn0hwenu.inf";
    Process.Start(startInfo);

Обратите внимание, что вам может потребоваться заключить аргументы в кавычки (что, похоже, вы уже делаете). Например, если вы указываете путь c: \ Program Files ... вам нужно будет заключить его в кавычки, иначе вы получите ошибки при попытке запустить процесс

startInfo.Arguments = "\"c:\\Program Files\\...\"";

Также имейте в виду, что указание одного только rundll32.exe может не сработать. Я не уверен, что process.Start использует переменные среды PATH для разрешения файла, поэтому вам может потребоваться указать полный путь к файлу rundll32.exe

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...