欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#隱式運(yùn)行CMD命令(隱藏命令窗口)

 更新時(shí)間:2015年06月16日 11:13:30   投稿:junjie  
這篇文章主要介紹了C#隱式運(yùn)行CMD命令(隱藏命令窗口),本文實(shí)現(xiàn)在winform窗口中運(yùn)行CMD命令,需要的朋友可以參考下

本文實(shí)現(xiàn)了C#隱式運(yùn)行CMD命令的功能。下圖是實(shí)例程序的主畫面。在命令文本框輸入DOS命令,點(diǎn)擊“Run”按鈕,在下面的文本框中輸出運(yùn)行結(jié)果。

下面是程序的完整代碼。本程序沒有使用p.StandardOutput.ReadtoEnd()和p.StandardOutput.ReadLine()方法來獲得輸出,因?yàn)檫@些方法執(zhí)行后畫面容易卡死。而是通過調(diào)用異步方法BeginOutputReadLine來獲取輸出,并在事件p.OutputDataReceived的事件處理方法中來處理結(jié)果。

using System;
using System.Diagnostics;
using System.IO;
using System.Windows.Forms;

 
namespace RunDosCommandForm
{
  publicpartialclassForm1 : Form
  {
    publicForm1()
    {
      InitializeComponent();
    }
 
    privatevoidbutton1_Click(object sender, EventArgse)
    {
      ExcuteDosCommand(textBox1.Text);
    }
 
    privatevoidExcuteDosCommand(string cmd)
    {
      try
      {
        Process p = newProcess();
        p.StartInfo.FileName = "cmd";
        p.StartInfo.UseShellExecute = false;
        p.StartInfo.RedirectStandardInput = true;
        p.StartInfo.RedirectStandardOutput = true;
        p.StartInfo.RedirectStandardError = true;
        p.StartInfo.CreateNoWindow = true;
        p.OutputDataReceived += newDataReceivedEventHandler(sortProcess_OutputDataReceived);
        p.Start();
        StreamWriter cmdWriter = p.StandardInput;
        p.BeginOutputReadLine();
        if (!String.IsNullOrEmpty(cmd))
        {
          cmdWriter.WriteLine(cmd);
        }
        cmdWriter.Close();
        p.WaitForExit();
        p.Close(); 
      }
      catch(Exception ex)
      {
        MessageBox.Show("執(zhí)行命令失敗,請檢查輸入的命令是否正確!");
      }
    }
 
    privatevoidsortProcess_OutputDataReceived(object sender,DataReceivedEventArgs e)
    {
      if(!String.IsNullOrEmpty(e.Data))
      {
        this.BeginInvoke(newAction(() => { this.listBox1.Items.Add(e.Data);}));         
      }
    }
  }
}

我們還可以將需要運(yùn)行的CMD命令保存為BAT文件,再使用Process類來執(zhí)行。

Process p = new Process();//設(shè)定調(diào)用的程序名,不是系統(tǒng)目錄的需要完整路徑 
p.StartInfo.FileName = "cmd.bat";//傳入執(zhí)行參數(shù) 
p.StartInfo.Arguments = "";
p.StartInfo.UseShellExecute = false;//是否重定向標(biāo)準(zhǔn)輸入 
p.StartInfo.RedirectStandardInput = false;//是否重定向標(biāo)準(zhǔn)轉(zhuǎn)出 
p.StartInfo.RedirectStandardOutput = false;//是否重定向錯誤 
p.StartInfo.RedirectStandardError = false;//執(zhí)行時(shí)是不是顯示窗口 
p.StartInfo.CreateNoWindow = true;//啟動 
p.Start();
p.WaitForExit();
p.Close(); 

相關(guān)文章

  • C#實(shí)現(xiàn)帶消息數(shù)的App圖標(biāo)

    C#實(shí)現(xiàn)帶消息數(shù)的App圖標(biāo)

    這篇文章主要介紹了如何使用C#實(shí)現(xiàn)帶消息數(shù)的App圖標(biāo)的方法,并附上全部源碼,分享給大家,有需要的小伙伴可以參考下。
    2015-12-12
  • C#中添加窗口的步驟詳解

    C#中添加窗口的步驟詳解

    下面小編就為大家?guī)硪黄狢#中添加窗口的步驟詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • C#中的枚舉類型(Enum)介紹

    C#中的枚舉類型(Enum)介紹

    這篇文章介紹了C#中的枚舉類型(Enum),文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • C#生成條形碼圖片的簡單方法

    C#生成條形碼圖片的簡單方法

    這篇文章主要介紹了C#生成條形碼圖片的簡單方法,實(shí)例分析了了條形碼圖片的生成原理與實(shí)現(xiàn)方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-01-01
  • unity使用socket實(shí)現(xiàn)聊天室功能

    unity使用socket實(shí)現(xiàn)聊天室功能

    這篇文章主要為大家詳細(xì)介紹了unity使用socket實(shí)現(xiàn)聊天室功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • 關(guān)于finalize機(jī)制和引用、引用隊(duì)列的用法詳解

    關(guān)于finalize機(jī)制和引用、引用隊(duì)列的用法詳解

    下面小編就為大家?guī)硪黄P(guān)于finalize機(jī)制和引用、引用隊(duì)列的用法詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • 詳解如何利用C#實(shí)現(xiàn)設(shè)置系統(tǒng)時(shí)間

    詳解如何利用C#實(shí)現(xiàn)設(shè)置系統(tǒng)時(shí)間

    這篇文章主要為大家詳細(xì)介紹了如何利用C#實(shí)現(xiàn)設(shè)置系統(tǒng)時(shí)間功能,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下
    2022-12-12
  • C# 如何規(guī)范的寫 DEBUG 輸出

    C# 如何規(guī)范的寫 DEBUG 輸出

    本文來告訴大家一個規(guī)范,如何去寫 DEBUG 的輸出。本文給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2017-12-12
  • C#?基于TCP?實(shí)現(xiàn)掃描指定ip端口的方式示例

    C#?基于TCP?實(shí)現(xiàn)掃描指定ip端口的方式示例

    本文主要介紹了C#基于TCP實(shí)現(xiàn)掃描指定ip端口的方式示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • 基于C#實(shí)現(xiàn)簡單離線注冊碼生成與驗(yàn)證

    基于C#實(shí)現(xiàn)簡單離線注冊碼生成與驗(yàn)證

    本文使用RSA非對稱加密和Base64簡單地實(shí)現(xiàn)離線注冊碼的生成與驗(yàn)證功能。感興趣的朋友跟著小編一起學(xué)習(xí)吧
    2015-09-09

最新評論