C# 调用执行外部程序的实现方法

Ada
Ada
发布时间:2026-10-15| 2人浏览过
原创

在 C# 开发中,经常需要启动或调用系统外部程序。本文将介绍如何使用 .NET Framework / .NET Core 中的 `System.Diagnostics.Process` 类来完成这一操作。

基础调用方法

最简单的启动外部程序的方式是使用 Process.Start 静态方法。你可以直接传入可执行文件的名称或路径。

目的:快速启动一个已知的外部应用程序。

入口:System.Diagnostics 命名空间。

示例代码:

using System.Diagnostics;

class Program
{
    static void Main()
    {
        // 启动记事本
        Process.Start("notepad.exe");
    }
}

注意:如果未指定完整路径,系统会在环境变量 PATH 中包含的路径中查找该文件。

带参数的程序调用

大多数程序都需要接受参数。可以通过 ProcessStartInfo 对象来配置文件名和参数。

目的:向外部程序传递命令行参数。

操作要点:

  • 设置 FileName 为要执行的文件名或路径。
  • 设置 Arguments 为字符串形式的参数列表。
var psi = new ProcessStartInfo
{
    FileName = "cmd.exe",
    Arguments = "/c echo Hello World",
    RedirectStandardOutput = true,
    UseShellExecute = false,
    CreateNoWindow = true
};

Process.Start(psi);

重要参数说明: UseShellExecute=false 是必须的,否则无法重定向输入/输出流。
CreateNoWindow=true 可以隐藏控制台窗口的闪烁。

获取程序运行结果

如果你需要读取外部程序的输出内容(例如执行脚本后的返回值),必须重定向标准输出流。

目的:捕获并分析外部进程的文本输出。

关键步骤:

  1. RedirectStandardOutput = true 启用输出重定向。
  2. WaitForExit() 等待进程结束,避免竞态条件。
  3. 使用 StandardOutput.ReadToEnd() 读取全部文本。
var psi = new ProcessStartInfo
{
    FileName = "ping.exe",
    Arguments = "www.baidu.com",
    RedirectStandardOutput = true,
    UseShellExecute = false,
    CreateNoWindow = true
};

var process = Process.Start(psi);
process.WaitForExit();
string output = process.StandardOutput.ReadToEnd();
Console.WriteLine(output);

注意事项与排错

当出现“系统找不到指定的文件”错误时:

  • 检查路径:确认 FileName 是否存在于系统 PATH 中,或者使用绝对路径(如 C:\Windows\System32\notepad.exe)。
  • 权限问题:某些系统级命令可能需要管理员权限才能正常运行。
  • 依赖库:确保被调用的程序依赖于必要的环境变量或 DLL 文件。

简要总结

通过以上步骤,你可以在 C# 中灵活地调用外部程序。核心在于理解 ProcessStartInfo 的配置属性,特别是关于重定向和窗口显示的选项。熟练掌握这些技巧将极大地提升你的应用集成能力。

以上就是C#调用执行外部程序的详细内容,更多关于C#进程管理相关的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。