全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

C# 进程(Process)类的用法 - 启动和控制外部应用程序

Process类位于System.Diagnostics命名空间,用于启动、控制和交互外部程序;支持直接启动、参数配置、输出重定向、进程监控及获取系统运行进程等功能。

C# 中的 Process 类位于 System.Diagnostics 命名空间下,它允许你启动、控制和与外部应用程序进行交互。通过这个类,你可以轻松地运行可执行文件(如记事本、浏览器或其他程序),甚至可以监控其运行状态、读取输出或向其输入数据。

启动外部程序

最简单的用法是使用 Process.Start() 方法启动一个外部程序。例如,打开记事本或浏览器:

Process.Start("notepad.exe");
Process.Start("https://www.example.com"); // 会用默认浏览器打开

你也可以指定完整的路径来运行某个程序:

Process.Start(@"C:\Windows\System32\calc.exe");

配置启动参数

如果需要传递命令行参数,或者自定义启动行为(比如隐藏窗口),应使用 ProcessStartInfo 类:

var startInfo = new ProcessStartInfo
{
    FileName = "ping",
    Arguments = "www.baidu.com -t",
    UseShellExecute = false,
    CreateNoWindow = true,
    RedirectStandardOutput = true
};

var process = Process.Start(startInfo);

// 读取命令行输出 string output = process.StandardOutput.ReadToEnd(); process.WaitForExit(); // 等待进程结束 Console.WriteLine(output);

常用属性说明:

  • FileName:要运行的程序名或文件路径
  • Arguments:命令行参数
  • UseShellExecute:设为 false 可启用输出重定向
  • CreateNoWindow:是否创建新窗口(常与 UseShellExecute=false 配合)
  • RedirectStandardOutput:是否重定向输出流,以便在程序中读取

监控和控制进程

启动进程后,可以通过返回的 Process 对象获取其状态或进行控制:

  • process.HasExited:判断进程是否已退出
  • process.Id:获取进程唯一 ID
  • process.MachineName:获取所在计算机名
  • process.Kill():强制终止进程
  • process.WaitForExit():阻塞当前线程直到进程退出
  • process.CloseMainWindow():尝试关闭主窗口(更温和的退出方式)

示例:尝试优雅关闭,超时则强制终止:

if (!process.CloseMainWindow())
{
    process.Kill();
}

获取正在运行的进程

除了启动新进程,还可以获取系统中正在运行的进程:

// 获取所有名为 notepad 的进程
Process[] notepads = Process.GetProcessesByName("notepad");

foreach (var p in notepads) { Console.WriteLine($"进程ID: {p.Id}, 启动时间: {p.StartTime}"); }

也可通过 ID 获取特定进程:

var p = Process.GetProcessById(1234);

基本上就这些。Process 类功能强大,适合做自动化操作、调用工具程序或实现插件式架构。关键是根据需求设置好启动参数,并注意资源释放和异常处理。不复杂但容易忽略细节。


# c#  # windows  # 计算机  # 浏览器  # 工具  # mac  # ai  # win  # notepad  # red  # 架构  # 命名空间  # 命令行参数  # 线程  # 对象  # 自动化  # 重定向  # 命令行  # 正在运行  # 还可以  # 你可以  # 设为  # 也可  # 可以通过  # 或其他  # 自定义 


相关文章: 香港服务器网站生成指南:免费资源整合与高速稳定配置方案  香港服务器部署网站为何提示未备案?  ,如何利用word制作宣传手册?  如何快速上传自定义模板至建站之星?  建站主机与虚拟主机有何区别?如何选择最优方案?  Android滚轮选择时间控件使用详解  建站之星云端配置指南:模板选择与SEO优化一键生成  如何访问已购建站主机并解决登录问题?  中山网站制作网页,中山新生登记系统登记流程?  企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?  如何在Windows虚拟主机上快速搭建网站?  电商平台网站制作流程,电商网站如何制作?  c# 在高并发场景下,委托和接口调用的性能对比  魔毅自助建站系统:模板定制与SEO优化一键生成指南  如何通过虚拟主机快速搭建个人网站?  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  如何获取上海专业网站定制建站电话?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  定制建站流程步骤详解:一站式方案设计与开发指南  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  如何构建满足综合性能需求的优质建站方案?  东莞专业制作网站的公司,东莞大学生网的网址是什么?  免费公司网站制作软件,如何申请免费主页空间做自己的网站?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  如何通过.red域名打造高辨识度品牌网站?  早安海报制作网站推荐大全,企业早安海报怎么每天更换?  制作网站怎么制作,*游戏网站怎么搭建?  如何在香港免费服务器上快速搭建网站?  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  非常酷的网站设计制作软件,酷培ai教育官方网站?  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成  c# 服务器GC和工作站GC的区别和设置  ,柠檬视频怎样兑换vip?  内网网站制作软件,内网的网站如何发布到外网?  宁波免费建站如何选择可靠模板与平台?  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  如何安全更换建站之星模板并保留数据?  C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换  javascript中的try catch异常捕获机制用法分析  如何在香港服务器上快速搭建免备案网站?  ,石家庄四十八中学官网?  简单实现Android验证码  独立制作一个网站多少钱,建立网站需要花多少钱?  宿州网站制作公司兴策,安徽省低保查询网站?  建站主机数据库如何配置才能提升网站性能?  如何登录建站主机?访问步骤全解析  如何在服务器上配置二级域名建站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。