使用Process.Start时如何隐藏控制台应用程序用户界面?

Dav*_*rab 9 .net c#

我想运行一个输出文件的控制台应用程序.

我使用以下代码:

Process barProcess = Process.Start("bar.exe", @"C:\foo.txt");
Run Code Online (Sandbox Code Playgroud)

运行时,将出现控制台窗口.我想隐藏控制台窗口,以便用户看不到它.

这可能吗?使用Process.Start是启动另一个控制台应用程序的最佳方法吗?

Jas*_*zek 14

        Process p = new Process();
        StreamReader sr;
        StreamReader se;
        StreamWriter sw;

        ProcessStartInfo psi = new ProcessStartInfo(@"bar.exe");
        psi.UseShellExecute = false;
        psi.RedirectStandardOutput = true;
        psi.RedirectStandardError = true;
        psi.RedirectStandardInput = true;
        psi.CreateNoWindow = true;
        p.StartInfo = psi;
        p.Start();
Run Code Online (Sandbox Code Playgroud)

这将启动子进程而不显示控制台窗口,并允许捕获StandardOutput等.


小智 5

检查ProcessStartInfo并设置WindowStyle = ProcessWindowStyle.Hidden和CreateNoWindow = true.