隐藏流程窗口

时间:2014-03-18 19:59:05

标签: c# process hidden processstartinfo

我有一个需要隐藏的过程,我尝试了以下几行代码来隐藏它:

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 个答案:

答案 0 :(得分:1)

删除以下行:

p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;

保留这两行:

p.StartInfo.CreateNoWindow = true;
p.StartInfo.UseShellExecute = false;

WindowStyle仅适用于本机Windows GUI应用程序。