📜  c# 如何运行外部程序 - C# (1)

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

C# 如何运行外部程序

在 C# 中运行外部程序是一项常见的任务,可以通过 Process 类来实现。Process 类允许您启动进程并与之交互。

创建 Process 实例

要创建一个 Process 实例,您需要使用其构造函数创建一个新的实例。创建实例时,可以指定要运行的程序的名称、命令行参数和启动信息。

以下是创建实例的示例代码:

Process process = new Process();
process.StartInfo.FileName = "notepad.exe";
process.StartInfo.Arguments = "example.txt";
process.StartInfo.WindowStyle = ProcessWindowStyle.Normal;

在上面的代码中,我们创建了一个新的 Process 实例,并指定要运行的程序的名称、命令行参数和启动样式。

启动进程

要启动进程,请调用 Process 实例的 Start 方法。该方法将运行指定的程序并返回一个布尔值,该布尔值指示是否成功启动了进程。

以下是启动进程的示例代码:

if (process.Start())
{
   Console.WriteLine("进程已启动");
}
else
{
   Console.WriteLine("启动进程失败");
}

如果进程成功启动,则将显示"进程已启动",否则将显示"启动进程失败"。

等待进程退出

如果您需要等待进程退出后才能继续执行代码,请调用 Process 实例的 WaitForExit 方法。该方法将阻塞当前线程,直到进程退出为止。

以下是等待进程退出的示例代码:

process.WaitForExit();
Console.WriteLine("进程已退出");

在上面的代码中,我们使用 WaitForExit 方法等待进程退出,并在进程退出后输出一条消息。

获取进程输出

如果您需要从启动的进程中获取输出,请使用 Process 实例的 StandardOutput 属性。该属性返回一个 StreamReader 对象,可以使用该对象读取进程的标准输出。

以下是获取进程输出的示例代码:

process.StartInfo.FileName = "ping.exe";
process.StartInfo.Arguments = "-n 4 google.com";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;

if (process.Start())
{
   string output = process.StandardOutput.ReadToEnd();
   Console.WriteLine(output);
   process.WaitForExit();
}

在上面的代码中,我们使用 ping 命令来演示如何获取进程输出。我们将 UseShellExecute 属性设置为 false,以便重定向标准输出。然后,我们读取进程的标准输出,并输出结果。

结论

现在,您已经了解了如何在 C# 中启动外部程序,并与之交互。使用 Process 类,您可以轻松地启动外部程序并控制其行为。