📌  相关文章
📜  时间:2019-05-10 标签:c#run cmd hidden-whatever Code Example(1)

📅  最后修改于: 2023-12-03 15:40:09.706000             🧑  作者: Mango

C#中运行cmd并隐藏窗口的示例代码

本篇文章将会介绍如何在C#中运行cmd并隐藏窗口。这在某些情况下是非常有用的,例如运行一些需要依托命令行窗口的程序时,命令行窗口通常会明显地干扰到用户体验。在这种情况下,隐藏命令行窗口可以使得程序运行更加优美。

示例代码

下面是示例代码,其中使用了 Process 类来实现在C#中运行cmd。

using System;
using System.Diagnostics;

namespace HiddenCmdExample
{
    class Program
    {
        static void Main(string[] args)
        {
            var cmdPath = Environment.ExpandEnvironmentVariables("%SystemRoot%\\System32\\cmd.exe");
            var cmdArgs = "/C echo Hello World";
            var cmd = new Process();
            var cmdStartInfo = new ProcessStartInfo(cmdPath, cmdArgs)
            {
                CreateNoWindow = true,
                UseShellExecute = false
            };
            cmd.StartInfo = cmdStartInfo;
            cmd.Start();
            cmd.WaitForExit();
        }
    }
}

这个例子会运行一个简单命令 echo Hello World,并且隐藏了命令行窗口。如果你愿意,你可以改变 cmdArgs 变量来运行你需要的命令。

解释

上述代码中,我们首先使用 Environment.ExpandEnvironmentVariables%SystemRoot%\System32\cmd.exe 转换为完整的路径,这是为了确保路径中包含了从环境变量中解析出的真实路径。然后我们构造了一个 Process 对象,给它传入 cmdPathcmdArgs 作为启动参数。在这个例子中,我们使用 /C 标记来启动cmd并运行一个简单的echo命令。

然后,我们设置了 CreateNoWindow 属性为 true,这样系统就不会创建新的窗口来显示命令行界面了。最后我们使用 cmd.Start()来启动进程,并使用 cmd.WaitForExit() 等待进程退出。

结论

本文介绍了如何在C#中运行cmd并隐藏窗口。这对于某些需要依托命令行窗口的程序来说,是一个很有用的技巧,可以改善程序的用户体验。