首页 > 系统相关 >c# process 输入、输出、捕获进程输出

c# process 输入、输出、捕获进程输出

时间:2024-08-19 16:27:07浏览次数:6  
标签:输出 c# System process WriteLine using StartInfo ev true

复制代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Diagnostics;
namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            Process p = new Process();
            p.StartInfo.FileName = "ping";
            p.StartInfo.Arguments = "127.0.0.1";
            p.StartInfo.RedirectStandardInput = true;
            p.StartInfo.RedirectStandardOutput = true;
            p.StartInfo.RedirectStandardError = true;
            p.StartInfo.CreateNoWindow = true;//true表示不显示黑框,false表示显示dos界面 
            p.StartInfo.UseShellExecute = false;
 
            p.EnableRaisingEvents = true;//在进程终止时是否应引发 Process.Exited 事件
 
            p.OutputDataReceived += (s, ev) => { Console.WriteLine(ev.Data); };
            p.ErrorDataReceived += (s, ev) => { Console.WriteLine(ev.Data); };
            p.Exited += (s, ev) => { Console.WriteLine(ev.ToString()); };
 
            p.Start();
            p.StandardInput.WriteLine("");
            p.StandardInput.WriteLine("");
 
            //开始异步读取输出
            p.BeginOutputReadLine();
            p.BeginErrorReadLine();
 
            //调用WaitForExit会等待Exited事件完成后再继续往下执行。
            p.WaitForExit();
            p.Close();
             
            Console.WriteLine("exit");
 
        }
 
    }
}
复制代码

 

2024-08-19 16:22:31【出处】:https://www.cnblogs.com/Alex80/p/4961615.html

=======================================================================================

以上代码同样适应于命令行出现

标签:输出,c#,System,process,WriteLine,using,StartInfo,ev,true
From: https://www.cnblogs.com/mq0036/p/18367573

相关文章

  • C# x Unity面向对象补全计划 设计模式 之 实现一个简单的有限状态机
    一个简单的有限状态机可以有如下内容1.状态基类(定义基本状态的方法,如进入(Enter)、执行(Execute)和退出(Exit),同时可以在此声明需要被管理的对象)2.具体状态类(定义具体状态,如:跳跃,行走,待机,每个具体状态类继承自状态基类)3.管理状态类(负责管理状态的切换逻辑,确保在不同状态之间进行......
  • Gradle编译项目Druid找不到tools.jar和jconsole.jar
     原因:jdk11之后不支持druid的两个依赖方法一:<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.5</version>方法二:<!--<exclusions><exclusion><gro......
  • RD-AML-Clean属性散射中心特征提取程序(可运行)
    %RD-AML-Clean属性散射中心特征提取程序%清空环境变量close;clc;clearAll;%Step1:频域数据的频率f和方位角ϕ的范围f_min=1e2;%频率范围起始点,单位Hzf_max=10e2;%频率范围终止点,单位Hznum_frequencies=150;%频率采样点数phi_min=0;%方位角......
  • Xfce漫游(2) - Xfce的启动流程
    本文探讨从Linux启动直到进入xfce4会话之前的过程;和Xfce相关的内容需要单独进行说明。从按下电源键到进入登录界面不关心这些,不过可以参考这篇Arch的启动流程或者bootup(7)。在这个过程中systemd启动时,还会启动各种服务诸如D-bus等,可以阅读systemd.service(5)。systemd启动的目......
  • VisualStudio 产生的.sdf和.ipch文件删除、不生成
    前言全局说明VisualStudio产生的.sdf和.ipch文件删除、不生成一、说明环境:Windows7旗舰版VisualStudio2013二、原因某天,打算给vs2013的一个工程,打包备份,打包后,发现压缩包有90MB,看到数字确实很惊讶。因为这个工程就是画了几个按钮的小功能,怎么会这么大。......
  • Docker 容器中镜像导出/导入
    利用容器中镜像导出/导入创建一个简单的Docker镜像利用dockerps-a命令查看要导出的镜像。导出查看要导出的镜像[root@localhost~]#dockerps-adockerexport命令进行镜像导出。[root@localhost~]#dockerexport418ae>nginx-docker.tar导入[vipsoft@kafka1ho......
  • docker 创建MySQL
    dockerrun\      --restart=always\  #这个参数是mysql在docker启动的时候,也会跟着自动启动--namemysql8.0\   #这个参数是mysql容器的名字-p3306:3306\    #这个参数是端口号映射-eMYSQL_ROOT_PASSWORD=root\  #这个参数是是设......
  • AMD Xilinx MPSoC 在分别下载 PL bit文件、PS软件的情况下,PS软件如何访问 PL AXI寄存
    在调试模式下,可以通过JTAG下载MPSoCPL的bit文件,再下载MPSoCPS的软件。这时候,PL已经下载,PS软件应该能够访问PL实现的AXI寄存器。但是PS的软件会卡住。如果使用同样的软件和bit文件,做成boot.bin,在QSPI/SD启动模式下,又一切正常。或者boot.bin里只有PS的软件,启动过程中通过Vivado加......
  • 【Linux】解决cp指令无法覆盖的问题(小白向)
    cp指令项目覆盖问题,前端项目服务器打包不生效文章目录前言一、今天遇到的新问题二、尝试解决三、最终解决总结前言事情的起因:记录一下今天遇到的问题,本人之前的前端项目基本都是在本地打包好,再使用ftp传输的,但是新入职的公司的项目(接手的项目)正式服务器并不使用......
  • 辨析C++多态的概念
    1.什么是多态我们都知道面向对象语言的三大特性,封装,继承,多态;封装:封装就是将数据封装在一个类里面,提供对数据更好的管控;继承:继承就是类设计层次的代码复用。那多态是什么呢?多态是一种现象,这种现象要通过封装和继承才能实现。多态就是在同一继承体系下,不同的类的对象调用相同......