Ammar Shaukat Ответов: 2

Откройте программу на языке C# из командной строки с аргументами


Я пытаюсь открыть exe-файл из кода C#. Но этот exe - файл не открывается напрямую , он открывается из cmd и требует аргумента перед запуском. Я нашел много фрагментов кодов, но все говорят о том, чтобы открыть CMD из C#. Я запутался , как запустить команду внутри CMD из кода C#, который также требует и команды, а также?

Что я уже пробовал:

Это я уже пытался сделать.
 ProcessStartInfo startInfo = new ProcessStartInfo();

 //startInfo.WindowStyle = ProcessWindowStyle.Hidden;

 startInfo.WorkingDirectory = "C:\\Program Files (x86)\\Maxim Integrated Products\\MPC\\MAX32550";
// In this directory there is an "abc.exe" file that I want to open and that exe cannot be start without providing an argument "abc.ini" .
 startInfo.FileName = "cmd.exe";

 MpcProc.StartInfo = startInfo;

 MpcProc.Start();

2 Ответов

Рейтинг:
7

OriginalGriff

Вам нужно установить рабочий каталог, иначе он останется таким же, как и "родительский" процесс:

ProcessStartInfo psi = new ProcessStartInfo(pathToExe, arguments);
psi.WorkingDirectory = Path.GetDirectoryName(pathToExe);
Process.Start(psi);


Ammar Shaukat

Это работает , Спасибо.

OriginalGriff

Всегда пожалуйста!

Рейтинг:
18

F-ES Sitecore

Забудьте о cmd, это всего лишь консольное приложение, позволяющее людям выполнять команды. Запустите процесс напрямую и передайте ему необходимые аргументы

Процесс.Метод Запуска (String, String) (System.Диагностика)[^]


Ammar Shaukat

Это сработало, но все равно есть ошибка конфигурации. Я не уверен, но может быть какая-то проблема с предоставленным аргументом.

Процесс.Старт(@"C:\Program файлы (x86)\Maxim Integrated Products\MPC\MAX32550\mpc.exe", "mpc.ini");