Скрыть окно процесса
У меня есть процесс, который мне нужно скрыть, я пробовал следующие строки кода, чтобы сделать его скрытым:
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
p.StartInfo.CreateNoWindow = true;
Первая строка просто не делает ее невидимой, а вторая выдает следующую ошибку:
"{" StandardOut не был перенаправлен или процесс еще не начался."}
Также мне нужно перенаправить вывод в richtextbox и буфер обмена, поэтому я не могу установить для redirectstandardoutput значение false. Вот моя функция для создания процесса.
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments = pingData;
p.Start();
p.WaitForExit();
string result = p.StandardOutput.ReadToEnd();
System.Windows.Forms.Clipboard.SetText(result);
if(p.HasExited)
{
richTextBox1.Text = result;
outPut = result;
MessageBox.Show( "Ping request has completed. \n Results have been copied to the clipboard.");
}
Спасибо
1 ответ
Решение
Удалите следующую строку:
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
Сохраните эти две строки:
p.StartInfo.CreateNoWindow = true;
p.StartInfo.UseShellExecute = false;
WindowStyle
применяется только к родным приложениям с графическим интерфейсом Windows.