Ответ 1
Вам не хватает свойства CreateNoWindow, которое должно быть установлено в true в вашем случае.
может ли кто-нибудь сказать мне, как создать другое консольное приложение из приложения Winforms, но (A) не отображать окно консоли на экране и (B) все еще получать стандартный вывод приложения? В настоящее время у меня есть что-то вроде следующего:
Process SomeProgram = new Process();
SomeProgram.StartInfo.FileName = @"c:\foo.exe";
SomeProgram.StartInfo.Arguments = "bar";
SomeProgram.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
SomeProgram.StartInfo.UseShellExecute = false;
SomeProgram.StartInfo.RedirectStandardOutput = true;
SomeProgram.Start();
SomeProgram.WaitForExit();
string SomeProgramOutput = SomeProgram.StandardOutput.ReadToEnd();
Если я установил RedirectStandardOutput в false, консольное приложение будет скрыто, как ожидалось, но я не могу получить стандартный выходной текст. Однако, как только я установил RedirectStandardOutput в true, окно перестает скрываться, хотя я могу получить выход программы.
Итак, я знаю, как сделать консольное приложение скрытым, и я знаю, как получить выход из программы, но как мне заставить его делать оба?
Многие TIA
Вам не хватает свойства CreateNoWindow, которое должно быть установлено в true в вашем случае.
Я думаю, это поможет вам:
System.Diagnostics.Process pProcess = new System.Diagnostics.Process();
pProcess.StartInfo.FileName = @"C:\Users\Vitor\ConsoleApplication1.exe";
pProcess.StartInfo.Arguments = "olaa"; //argument
pProcess.StartInfo.UseShellExecute = false;
pProcess.StartInfo.RedirectStandardOutput = true;
pProcess.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
pProcess.StartInfo.CreateNoWindow = true; //not diplay a windows
pProcess.Start();
string output = pProcess.StandardOutput.ReadToEnd(); //The output result
pProcess.WaitForExit();