Скрыть окно процесса

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

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.

Другие вопросы по тегам