前言
在 C# 开发过程中,我们经常需要通过程序来启动外部进程,例如运行可执行文件、批处理脚本、打开网页等。.NET 提供了 System.Diagnostics.Process 类来实现对进程的控制与管理。
本文将详细介绍 C# 中启动进程的几种常用方式,并结合代码示例进行说明,帮助开大家更好地掌握这一基础但非常实用的技术。
一、启动子进程,不等待结束
这是最简单的启动方式,适用于只需要调用外部程序或脚本,而不需要获取其执行结果的场景。
示例代码
private void simpleRun_Click(object sender, System.EventArgs e)
{
System.Diagnostics.Process.Start(@"C:\listfiles.bat");
}
说明
-
调用了
Process.Start()方法,直接运行指定路径的.bat批处理脚本。 -
该方法不会阻塞当前线程,也不会等待脚本执行完毕。
二、启动子进程并等待结束,同时获取输出结果
当需要获取子进程执行后的输出信息时,可以通过重定向标准输出流的方式实现。
示例代码
private void runSyncAndGetResults_Click(object sender, System.EventArgs e)
{
System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(@"C:\listfiles.bat");
psi.RedirectStandardOutput = true;
psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
psi.UseShellExecute = false;
System.Diagnostics.Process listFiles;
listFiles = System.Diagnostics.Process.Start(psi);
System.IO.StreamReader myOutput = listFiles.StandardOutput;
listFiles.WaitForExit(2000); // 最多等待2秒
if (listFiles.HasExited)
{
string output = myOutput.ReadToEnd();
this.processResults.Text = output;
}
}
说明
-
设置
RedirectStandardOutput = true来捕获命令行输出。 -
使用
StreamReader读取输出内容。 -
通过
WaitForExit()等待进程完成(可设置超时时间)。 -
适用于需要获取脚本或命令行工具执行结果的场景。
三、使用默认浏览器打开 URL
除了运行本地程序,还可以使用 Process.Start() 打开网页链接,系统会自动使用默认浏览器访问指定网址。
示例代码
private void launchURL_Click(object sender, System.EventArgs e)
{
string targetURL = "http://www.jb51.net";
System.Diagnostics.Process.Start(targetURL);
}
说明
-
直接传入 URL 地址即可。
-
不需要任何额外配置,适用于快速打开帮助文档、官网、API 接口页面等。
总结
通过 System.Diagnostics.Process 类,C# 开发者可以灵活地控制和启动外部进程,从而实现与操作系统的深度交互。
本文介绍了三种常见的进程启动方式:
1、简单启动:无需等待,适合执行后台任务;
2、同步启动并获取输出:适合需要与子进程通信、获取执行结果;
3、打开网页链接:便捷地引导用户访问外部资源。
这些方法在开发桌面应用、自动化脚本工具、运维管理系统等领域具有广泛的应用价值。
关键词
C#、启动进程、Process、批处理、重定向输出、打开网页、同步执行、Windows 应用开发
最后
如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。
也可以加入微信公众号 [DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!
优秀是一种习惯,欢迎大家留言学习!