如何隐藏启动进程?
如何隐藏启动进程?
我使用ProcessStartInfo和process.Start()来启动一个控制台应用程序。我想要隐藏黑色窗口。以下是我的代码:
string output = ""; // 使用ProcessStartInfo类设置进程 ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.FileName = "C:\\WINNT\\system32\\cmd.exe"; startInfo.UseShellExecute = false; startInfo.RedirectStandardOutput = true; // 启动进程 Process proc = Process.Start(startInfo);
问题的原因是WindowStyle属性对于隐藏进程窗口没有效果,需要使用CreateNoWindow属性来实现隐藏进程窗口的功能。解决方法是在ProcessStartInfo对象中设置CreateNoWindow属性为true。
以下是解决方法的代码示例:
ProcessStartInfo psi = new ProcessStartInfo(); psi.FileName = .... psi.RedirectStandardInput = true; psi.RedirectStandardOutput = false; psi.Arguments =... psi.UseShellExecute = false; psi.CreateNoWindow = true; // <- key line
通过设置CreateNoWindow属性为true,可以成功隐藏进程窗口。这样做的好处是可以避免空窗口的出现,并且不影响对标准输出的重定向。