System.Diagnostics.Process执行获取程序实时输出消息

30 篇文章 1 订阅
这段代码展示了如何使用C#创建一个进程来执行ping命令和ffmpeg,并监听其输出和退出事件。程序会捕获并打印ping到www.qq.com的详细信息,以及ffmpeg转换视频时的实时消息。当进程退出时,也会显示相应的时间戳。
摘要由CSDN通过智能技术生成
using System;

namespace ConsoleAppNET5.TestVideoZhuanMa
{
    class Program
    {
        static void Main(string[] args)
        {
            var process = new System.Diagnostics.Process();

            //应该触发退出事件
            process.EnableRaisingEvents = true;

            //程序退出事件
            process.Exited += (s, e) =>
            {
                Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "程序退出");
            };

            //程序输出消息事件
            process.OutputDataReceived += (o, e) =>
            {
                if (string.IsNullOrWhiteSpace(e?.Data))
                {
                    return;
                }
                Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "程序执行消息:" + e.Data);
            };
        
            var startInfo = new System.Diagnostics.ProcessStartInfo("ping", "www.qq.com");
            //var startInfo = new System.Diagnostics.ProcessStartInfo("ffmpeg", " -i /video_list/IMG_0837.MOV -vcodec h264 /video_list/IMG_0837_10B.mp4");
            //startInfo.ErrorDialog = true;
            //startInfo.UseShellExecute = false;

            startInfo.RedirectStandardError = true;
            startInfo.RedirectStandardOutput = true;
            process.StartInfo = startInfo;        
            process.Start();
            process.BeginOutputReadLine();
            // System.Diagnostics.Process.Start("ffmpeg", " -i /video_list/IMG_0837.MOV -vcodec h264 /video_list/IMG_0837_10A.mp4");
 
            process.WaitForExit();
          //  process.WaitForExitAsync();        
        }
 
    }
}

效果图:

2021-04-15 15:31:53程序执行消息:正在 Ping ins-r23tsuuf.ias.tencent-cloud.net [121.14.77.201] 具有 32 字节的数据:
2021-04-15 15:31:57程序执行消息:请求超时。
2021-04-15 15:31:58程序执行消息:来自 121.14.77.201 的回复: 字节=32 时间=33ms TTL=53
2021-04-15 15:31:59程序执行消息:来自 121.14.77.201 的回复: 字节=32 时间=35ms TTL=53
2021-04-15 15:32:00程序执行消息:来自 121.14.77.201 的回复: 字节=32 时间=34ms TTL=53
2021-04-15 15:32:00程序执行消息:121.14.77.201 的 Ping 统计信息:
2021-04-15 15:32:00程序执行消息:    数据包: 已发送 = 4,已接收 = 3,丢失 = 1 (25% 丢失),
2021-04-15 15:32:00程序执行消息:往返行程的估计时间(以毫秒为单位):
2021-04-15 15:32:00程序执行消息:    最短 = 33ms,最长 = 35ms,平均 = 34ms
2021-04-15 15:32:00程序退出
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王焜棟琦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值