如何隐藏启动进程?

19 浏览
0 Comments

如何隐藏启动进程?

我使用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);

0
0 Comments

问题的原因是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,可以成功隐藏进程窗口。这样做的好处是可以避免空窗口的出现,并且不影响对标准输出的重定向。

0
0 Comments

问题:如何隐藏启动的进程?

原因:在使用startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;设置窗口样式之前调用Process.Start(startInfo)方法。

解决方法:在调用Process.Start(startInfo)方法之前设置窗口样式为隐藏。

0
0 Comments

问题:如何隐藏启动的进程?

原因:用户想要启动一个进程,但希望该进程在后台运行,不显示在屏幕上。

解决方法:使用以下代码将进程隐藏起来。

try
{
    startInfo.WindowStyle = ProcessWindowStyle.Hidden;
}

这段代码将进程的窗口样式设置为隐藏,从而使进程在启动时不显示在屏幕上。用户可以根据自己的需求将该代码插入到启动进程的代码中。这样,启动的进程将在后台默默运行,不会干扰用户的工作。

0