C# 主程序调用其他的Exe程序后,怎么获取其他程序的输出内容

news/2025/1/15 15:37:59/

在C#中,你可以使用System.Diagnostics.Process类来启动并与其他程序交互。如果你想获取其他程序的输出内容,需要设置一些ProcessStartInfo属性,并使用StandardOutput属性来读取输出。

以下是一个简单的例子,展示了如何调用其他的exe程序并获取其输出内容:

using System;
using System.Diagnostics;class Program
{static void Main(){string exePath = @"path_to_the_executable.exe"; // 替换为你的exe路径Process process = new Process();process.StartInfo.FileName = exePath;process.StartInfo.UseShellExecute = false; // 必须设置为false以重定向输出process.StartInfo.RedirectStandardOutput = true; // 允许重定向标准输出process.StartInfo.CreateNoWindow = true; // 如果你不想显示命令行窗口try{process.Start();string output = process.StandardOutput.ReadToEnd(); // 读取输出内容process.WaitForExit(); // 等待进程结束Console.WriteLine("输出内容:");Console.WriteLine(output);}catch (Exception ex){Console.WriteLine("出现错误: " + ex.Message);}}
}

在上述代码中:

我们设置了UseShellExecute为false,这是必须的,因为我们需要重定向输出。
我们设置了RedirectStandardOutput为true以允许读取输出内容。
使用process.StandardOutput.ReadToEnd()读取输出内容。
请注意,如果外部程序输出了大量的数据,ReadToEnd可能会阻塞。在这种情况下,你可能需要使用事件处理或异步读取。


http://www.ppmy.cn/news/1160326.html

相关文章

jQuery+AJAX请求的统一封装

记录一下使用jQueryAJAX对http请求的统一封装 很久都没有使用jquery和ajax的组合了,这里记录一下jquery和ajax的组合简单封装 将来或许有机会重新启用这个组合 新建jquery.request.js;demo目录结构如下 const baseURL http://127.0.0.1:8116;// con…

【算法 | 模拟No.2】leetcode495. 提莫攻击

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【Leetcode】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望…

等保三级测评(MySQL)

mysql版本号:5.7.x 进入Mysql 通过mysql -u root -p 进入MySQL命令行,开展数据库配置核查; a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换; SELECT Host,User,authentication_string,plugin FROM mysql.user;b)被测…

pycharm远程连接miniconda完整过程,以及遇到的问题解决

问题1:no-zero exit code(126) env: ‘/home/user2/miniconda3/envs/ihan/bin/python3’: Too many levels of symbolic links Python interpreter process exited with a non-zero exit code 126 因为选择的新建导致太多软连接,先在服务器上建好虚拟环…

Hadoop3教程(二十一):MapReduce中的压缩

文章目录 (123)压缩概述在Map阶段启用在Reduce阶段启用 (124)压缩案例实操如何在Map输出端启用压缩如何在Reduce端启用压缩 参考文献 (123)压缩概述 压缩也是MR中比较重要的一环,其可以应用于M…

SLAM从入门到精通(dwa速度规划算法)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 要说搜路算法,这个大家都比较好理解。毕竟从一个地点走到另外一个地点,这个都是直觉上可以感受到的事情。但是这条道路上机…

Kotlin中的逻辑运算符

在Kotlin中,逻辑运算符用于对布尔值进行逻辑运算。Kotlin提供了三个逻辑运算符:与运算(&&)、或运算(||)和非运算(!)。下面对这些逻辑运算符进行详细介绍,并提供示…

【jmeter】接口测试流程

1、Jmeter简介 Jmeter是由Apache公司开发的一个纯Java的开源项目,即可以用于做接口测试也可以用于做性能测试。 Jmeter具备高移植性,可以实现跨平台运行。 Jmeter可以实现分布式负载。 Jmeter采用多线程,允许通过多个线程并发取样或通过独…