每次执行命令时停止打开新命令窗口

时间:2011-11-03 16:25:59

标签: c#

我编写了一个C#工具,它将通过在命令提示符中为我多次运行一个命令来启动一个应用程序。为我这样做的代码如下:

System.Diagnostics.Process.Start("CMD.exe", strCmdText);

所以我把它放在一个循环中,一切都很好。但是每次执行时都会打开一个新的命令窗口,这是不理想的。有没有办法在命令执行后关闭命令窗口,或者更好的是,根本没有打开命令窗口?任何帮助都非常感谢!!

3 个答案:

答案 0 :(得分:6)

是的,您必须使用ProcessStartInfo类来执行此操作:

Process.Start(
    new ProcessStartInfo("CMD.exe", strCmdText) 
        { 
            CreateNoWindow = true 
        });

答案 1 :(得分:1)

使用ProcessStartInfo启动流程(Start有一个需要ProcessStartInfo的重载。

设置以下属性:

var psi = new ProcessStartInfo("cmd.exe", strCmdText);
psi.CreateNoWindow = true;
psi.UseShellExecute = false;

Process.Start(psi);

答案 2 :(得分:1)

ProcessStartInfo允许您指定无窗口。

using (var p = new Process())
{
    p.StartInfo = new ProcessStartInfo
    {
        FileName = "CMD.exe",
        Arguments = strCmdText,
        CreateNoWindow = true,
        UseShellExecute = false
    };

    p.Start();
    p.WaitForExit();
    p.Close();
}