C#跨应用程序调用。项目可以启动其他程序获取输出



在C#编程中,跨应用程序调用是一种常见的需求,它允许一个程序启动、控制或通信与其他已安装在系统上的程序。这种技术对于实现系统集成、自动化任务或是扩展应用程序功能非常有用。本文将深入探讨如何使用C#进行跨应用程序调用,并获取其他程序的输出。 我们可以通过使用`System.Diagnostics.Process`类来启动一个外部应用程序。这个类提供了启动、管理和控制进程的能力。下面是如何创建并启动一个进程的基本示例: ```csharp using System.Diagnostics; Process process = new Process(); process.StartInfo.FileName = "notepad.exe"; // 要启动的应用程序 process.Start(); ``` 这段代码会启动记事本程序。`FileName`属性设置为要启动的应用程序的完整路径或只包含可执行文件名(如这里所示,系统会自动查找正确的路径)。 如果需要获取被启动程序的输出,通常需要使用`ProcessStartInfo.UseShellExecute`属性和`ProcessStartInfo.RedirectStandardOutput`属性。`UseShellExecute`设为`false`,`RedirectStandardOutput`设为`true`,以便可以捕获标准输出流: ```csharp process.StartInfo.UseShellExecute = false; process.StartInfo.RedirectStandardOutput = true; ``` 接着,通过`Process.BeginOutputReadLine()`方法监听输出,并使用事件处理程序来处理输出: ```csharp process.OutputDataReceived += (sender, e) => Console.WriteLine(e.Data); process.Start(); process.BeginOutputReadLine(); ``` 这段代码会将被启动程序的任何输出写入控制台。 但是,需要注意的是,不是所有应用程序都会将其输出通过标准输出流提供。某些程序可能通过错误输出流(`RedirectStandardError`)或其他方式提供输出。因此,根据目标程序的行为,可能需要同时处理错误输出流。 在Windows Forms应用中,例如`WindowsFormsApplication1`,你可以将这些代码整合到按钮点击事件或其他用户交互逻辑中。确保正确处理程序启动的异步性质,避免阻塞UI线程。 另外,如果你需要与其他应用程序进行更复杂的交互,如传递参数、接收输入或者等待程序结束,可以使用`ProcessStartInfo.Arguments`属性设置命令行参数,`process.WaitForExit()`方法来同步等待程序结束。 总结来说,C#中的跨应用程序调用主要依赖于`System.Diagnostics.Process`类。通过合理配置`ProcessStartInfo`对象,可以启动其他程序,获取其输出,甚至控制其行为。理解并熟练掌握这一技术对于开发高效且功能丰富的C#应用程序至关重要。在实际开发中,务必考虑到不同程序可能的行为差异,以及如何优雅地处理可能出现的异常和错误情况。



































































- 1

- yinyuliangQQQ2019-03-04什么破玩意儿,还拿来赚积分!!普通网友2019-05-03检查了一下程序能用,DataReceivedEventArgs添加引用就行了,从窗体程序调用命令行程序打印在messbox上面。附带的文本文档有教程。我应该提高点积分才是。

- 粉丝: 5
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- web专业课程设计方案报告.doc
- 电信运营商通信网络架构培训.ppt
- 区块链技术PPT学习课件.ppt
- 毕业论文校园网络综合项目工程专项方案王静网页设计专业.doc
- 计算机组成课后答案(1).doc
- 精选-《计算机应用基础》习题及答案.doc
- PLC实训综合报告.doc
- 自动生产线升降机的自动化设计(1).doc
- 机器学习中的特征选择.ppt
- 电子商务公司仓储物流手册.doc
- 农远工程对基础教育信息化影响分析等(1).docx
- 高中物理教学中合作学习信息化方法的有效应用(1).docx
- 电子档案利用与纸质档案利用的需求比较探讨的论文-计算机理论论文(1).docx
- 互联网共享数字红利的演讲稿.doc
- iNode客户端安装说明.doc
- 网络系统集成优秀课程设计优质报告.doc


