Приложение для включения исполняемого файла, который запрашивает ввод пользователя в командной строке. Хотите автоматизировать, чтобы не открывалось приглашение cmd

У меня есть приложение WPF, в которое я хочу интегрировать модуль. другой модуль — исполняемый файл, который при нажатии запрашивает ответ пользователя. На основании ответа пользователя он обработает или завершит работу:

например:

C:\>Abc.exe press enter
> command1
//Executing command1  -- command1 will create a log file
>exit
//Exits the Abc.exe process
C:\>

Поэтому я хочу интегрировать эту часть в мое приложение WPf. Когда кнопка находится в приложении WPF, вышеуказанные шаги выполняются автоматически.

я понятия не имею, как выполнить приглашение оболочки, которое потребовало ввода данных пользователем.

Process process1 = new Process();
process1.StartInfo.FileName = "C:\\abc.exe";
process1.StartInfo.RedirectStandardInput = true;
process1.StartInfo.RedirectStandardError = true;
process1.StartInfo.UseShellExecute = false;
process1.StartInfo.CreateNoWindow = false;
process1.Start();
StreamWriter inputWriter = process1.StandardInput;
process1.StandardInput.WriteLine("command1");
process1.StandardInput.Flush();
System.Threading.Thread.Sleep(1500);
process1.StandardInput.WriteLine("exit");
process1.StandardInput.Flush();

process1.Kill();

Но он открывает abc.exe в консоли, но не выполняет команды, то есть command1 и завершает работу.

0

Решение

Я не знаю, как это сделать в WPF, но в Win32 вы бы использовали CreateProcess() с перенаправленным вводом / выводом, так что вы можете отправлять свои собственные входные данные и читать любые выходные данные по мере необходимости.

Как порождать консольные процессы с перенаправленными стандартными дескрипторами

Создание дочернего процесса с перенаправленным вводом и выводом

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]