想要隐藏cmd提示屏幕

时间:2013-01-11 08:36:31

标签: c# .net command cmd

我开发了一个实用程序,它将获取列表中所有服务器的时间。

System.Diagnostics.Process p;
string server_name = "";
string[] output;
p = new System.Diagnostics.Process();
p.StartInfo.FileName = "net";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StandardOutput.ReadLine().ToString()

执行此代码时。 Cmd 提示屏幕即将到来。我想将其隐藏起来。我能做些什么呢?

4 个答案:

答案 0 :(得分:12)

您可以告诉流程不使用窗口或将其最小化:

// don't execute on shell
p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = true;

// don't show window
p.StartInfo.WindowStyle = ProcessWindowStyle.Minimized;

使用UseShellExecute = false您可以重定向输出:

// redirect standard output as well as errors
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;

执行此操作时,应使用输出缓冲区的异步读取,以避免因填充过量缓冲区而导致死锁:

StringBuilder outputString = new StringBuilder();
StringBuilder errorString = new StringBuilder();

p.OutputDataReceived += (sender, e) =>
            {
                if (e.Data != null)
                {
                    outputString.AppendLine("Info " + e.Data);
                }
            };

p.ErrorDataReceived += (sender, e) =>
            {
                if (e.Data != null)
                {
                    errorString.AppendLine("EEEE " + e.Data);
                }
            };

答案 1 :(得分:5)

尝试使用ProcessWindowStyle这样的枚举;

p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = true;
  

隐藏的窗口样式。窗口可以是可见的或隐藏的。该   系统通过不绘制它来显示隐藏的窗口。如果有一个窗口   隐藏,它被有效禁用。隐藏的窗口可以处理   来自系统或其他窗口的消息,但无法处理   来自用户或显示输出的输入。通常,应用程序可以   在自定义窗口外观时隐藏新窗口,   然后使窗口样式正常。使用    ProcessWindowStyle.Hidden ProcessStartInfo.UseShellExecute   属性必须 false

答案 2 :(得分:1)

试试这两个

p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;

或检查这个

要在没有任何窗口的情况下运行子进程,

使用CreateNoWindow属性并设置UseShellExecute。

ProcessStartInfo info = new ProcessStartInfo(fileName, arg); 
info.CreateNoWindow = true; 
info.UseShellExecute = false;
Process processChild = Process.Start(info); 

我建议你阅读MSDN的这篇文章:How to start a console app in a new window, the parent's window, or no window

答案 3 :(得分:0)

添加系统参考。

using System.Diagnostics;

然后使用此代码在hiden CMD窗口中运行命令。

Process cmd = new Process();
cmd.StartInfo.FileName = "cmd.exe";
cmd.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
cmd.StartInfo.Arguments = "Enter your command here";
cmd.Start();