zoukankan      html  css  js  c++  java
  • 异步获取CMD命令行输出内容

    当控制台命令使用process.Start(); 后可以直接显示输出内容,当然它是异步显示的不用等程序结束。代码如下:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Diagnostics;

    namespace testApplication1
    {
        
    public partial class Form1 : Form
        {
            
    public Form1()
            {
                InitializeComponent();
            }

            
    private void button1_Click(object sender, EventArgs e)
            {
                
    using (Process process = new System.Diagnostics.Process())  
                { 
                    process.StartInfo.FileName 
    = "ping"
                    process.StartInfo.Arguments 
    = "127.0.0.1 -t";
                    process.StartInfo.UseShellExecute 
    = false;
                    process.StartInfo.CreateNoWindow 
    = true;  
                    process.StartInfo.RedirectStandardOutput 
    = true
                    
                    process.Start(); 
                    process.BeginOutputReadLine();  
                    process.OutputDataReceived 
    += new DataReceivedEventHandler(process_OutputDataReceived);  
                }  
            }

            
    private void process_OutputDataReceived(object sender, DataReceivedEventArgs e) 
            {
                
    if (!string.IsNullOrEmpty(e.Data))
                    
    this.AppendText(e.Data + Environment.NewLine);   
            }
            
    public delegate void AppendTextCallback(string text);  
            
            
    public void AppendText(string text)  
            { 
                
    if (this.textBox1.InvokeRequired)  
                {  
                    AppendTextCallback d 
    = new AppendTextCallback(AppendText);  
                    
    this.textBox1.Invoke(d, text); 
                } 
                
    else 
                {  
                    
    this.textBox1.AppendText(text);                  
                } 
            }  
        }
    }

    程序是一个ping -t的示例:

  • 相关阅读:
    20165101刘天野 2017-2018-2 《Java程序设计》 结对编程练习_四则运算(第一周)
    20165101刘天野 2017-2018-2 《Java程序设计》第6周学习总结
    20165101 实验一 Java开发环境的熟悉
    20165101刘天野 2017-2018-2 《Java程序设计》第5周学习总结
    HTML——meta
    CSS——改变浏览器滚动条样式
    HTML5——移动端的点击、拖拽
    JS高级——弹出框的美化
    JS高级——监听浏览器的返回事件
    JS高级——文件操作
  • 原文地址:https://www.cnblogs.com/wangbin5542/p/1753126.html
Copyright © 2011-2022 走看看