C#命令行软件与图形窗口软件交互的实现

本文介绍了如何使用C#的Process类来重定向命令行软件的标准输入输出和错误流,以实现图形窗口与命令行的交互。通过创建自己的控件展示输入输出,可以持续稳定地执行命令行操作,而不是仅仅进行一次读写或者嵌入原生的Dos窗口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

命令行窗口如果满足不了我们的需求(如:要用软件来输入命令,截获命令行的输出,但又要用图形显示),我们可以通过Process类重定向命令行软件的标准输入输出和错误流,实现用桌面控件和命令行交互;

先前有不少人发布自己的C#,Process类和cmd.exe交互代码,但基本是一次读写,或者嵌入原生Dos窗口的页面,不是自己的命令窗口.和原生Dos命令行无异.

期望:使用自己的控件显示输入输出,持续稳定的执行命令行.

以下已一个命令行的cmd.exe为例子:

//////////////////////////////分割线//////////////////////////////////////////////////

1声明Process对象:

        Process cmd= new Process();
2初始化线程,并启动,异步读取流:
        const int bufferSize = 1000;//演示,一次只读取1000 byte
        byte[] data = new byte[bufferSize];
        private void FormCmd_Load(object sender, EventArgs e)
        {
            this.OnReadStdOut += Form1_OnReadStdOut;
         
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值