调用外部程序后将输出显示在当前控制台

文章介绍了如何在C#程序中使用WinCmdHelper类的RunCmdExe方法,通过ProcessStartInfo和Process对象执行外部程序,并将输出实时显示在当前控制台的过程。
摘要由CSDN通过智能技术生成

C#程序中调用外部程序后,需要将外部程序的输出显示在当前控制台

WinCmdHelper类中定义RunCmdExe方法

/// <summary>
/// 执行外部文件
/// 将外部文件输出显示在当前控制台
/// </summary>
/// <param name="command"></param>
public bool RunCmdExe(string command)
{
    try
    {
        // 创建一个 ProcessStartInfo 对象,用于设置要执行的命令行命令
        ProcessStartInfo _pro = new ProcessStartInfo();
        _pro.CreateNoWindow = true;
        _pro.UseShellExecute = false;
        _pro.RedirectStandardOutput = true;
        _pro.RedirectStandardInput = true;
        _pro.FileName = command;

        // 创建一个 Process 对象,并使用 ProcessStartInfo 来设置其属性
        using (Process mypro = Process.Start(_pro))
        {
             // ps:含pause指令的外部程序需要按下回车键才能启动
            mypro.StandardInput.WriteLine(); // 自动输入回车按键
            using (StreamReader reader = new StreamReader(mypro.StandardOutput.BaseStream, Encoding.UTF8)) // 按指定编码,读取Process的输出流 
            {
                _output = reader.ReadToEnd(); 
                mypro.WaitForExit();
            }

        }
    }
    catch (Exception ex)
    {
        _output = "Error:" + ex.Message;
        return false;
    }
    Console.WriteLine(_output);
    return true;
}

主程序中调用RunCmdExe方法

// 其他代码

WinCmdHelper cmdhelper = new WinCmdHelper();
cmdhelper.RunCmdExe("你的外部程序路径");

// 其他代码

实际效果

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值