最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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é)果。

下面是程序的完整代碼。本程序沒(méi)有使用p.StandardOutput.ReadtoEnd()和p.StandardOutput.ReadLine()方法來(lái)獲得輸出,因?yàn)檫@些方法執(zhí)行后畫面容易卡死。而是通過(guò)調(diào)用異步方法BeginOutputReadLine來(lái)獲取輸出,并在事件p.OutputDataReceived的事件處理方法中來(lái)處理結(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í)行命令失敗,請(qǐng)檢查輸入的命令是否正確!");
      }
    }
 
    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類來(lái)執(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;//是否重定向錯(cuò)誤 
p.StartInfo.RedirectStandardError = false;//執(zhí)行時(shí)是不是顯示窗口 
p.StartInfo.CreateNoWindow = true;//啟動(dòng) 
p.Start();
p.WaitForExit();
p.Close(); 

相關(guān)文章

  • C#執(zhí)行表達(dá)式樹(shù)(Expression Tree)的具體使用

    C#執(zhí)行表達(dá)式樹(shù)(Expression Tree)的具體使用

    本文將深入探討表達(dá)式樹(shù)的基本概念、創(chuàng)建方法、修改和刪除節(jié)點(diǎn)、查詢和遍歷技巧以及在C#中的應(yīng)用示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • C#代碼實(shí)現(xiàn)PDF文檔操作類

    C#代碼實(shí)現(xiàn)PDF文檔操作類

    本篇文章給大家介紹使用pdf文檔操作C#代碼,本文代碼非常簡(jiǎn)單,代碼附有注釋,需要注意的是:需要添加itextsharp.dll引用才可以正常通過(guò)編譯,感興趣的朋友可以參考下
    2015-10-10
  • 詳細(xì)分析c# 運(yùn)算符重載

    詳細(xì)分析c# 運(yùn)算符重載

    這篇文章主要介紹了c# 運(yùn)算符重載的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • C#常用正則驗(yàn)證函數(shù)示例

    C#常用正則驗(yàn)證函數(shù)示例

    這篇文章主要介紹了C#常用正則驗(yàn)證函數(shù),舉例分析了C#針對(duì)IP驗(yàn)證、價(jià)格驗(yàn)證及正整數(shù)驗(yàn)證的相關(guān)操作技巧,需要的朋友可以參考下
    2017-01-01
  • Winform開(kāi)發(fā)中使用下拉列表展示字典數(shù)據(jù)的幾種方式

    Winform開(kāi)發(fā)中使用下拉列表展示字典數(shù)據(jù)的幾種方式

    這篇文章介紹了Winform開(kāi)發(fā)中使用下拉列表展示字典數(shù)據(jù)的幾種方式,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-09-09
  • 利用MySqlBulkLoader實(shí)現(xiàn)批量插入數(shù)據(jù)的示例詳解

    利用MySqlBulkLoader實(shí)現(xiàn)批量插入數(shù)據(jù)的示例詳解

    MySQLBulkLoader是MySQL?Connector/Net類中的一個(gè)類,用于包裝MySQL語(yǔ)句。本文將利用MySqlBulkLoader實(shí)現(xiàn)批量插入數(shù)據(jù)功能,感興趣的可以了解一下
    2022-06-06
  • C#中獲取二維數(shù)組的行數(shù)和列數(shù)以及多維數(shù)組各個(gè)維度的長(zhǎng)度

    C#中獲取二維數(shù)組的行數(shù)和列數(shù)以及多維數(shù)組各個(gè)維度的長(zhǎng)度

    這篇文章介紹了C#中獲取二維數(shù)組的行數(shù)和列數(shù)以及多維數(shù)組各個(gè)維度的長(zhǎng)度,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • SQL Server存儲(chǔ)過(guò)程在C#中調(diào)用的簡(jiǎn)單實(shí)現(xiàn)方法

    SQL Server存儲(chǔ)過(guò)程在C#中調(diào)用的簡(jiǎn)單實(shí)現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于SQL Server存儲(chǔ)過(guò)程在C#中調(diào)用的簡(jiǎn)單實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用SQL Server存儲(chǔ)過(guò)程具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • c# 委托的本質(zhì)是什么

    c# 委托的本質(zhì)是什么

    這篇文章主要介紹了c# 委托的本質(zhì)是什么,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • C#實(shí)現(xiàn)系統(tǒng)桌面右下角彈框

    C#實(shí)現(xiàn)系統(tǒng)桌面右下角彈框

    這篇文章主要為大家詳細(xì)介紹了C#如何實(shí)現(xiàn)系統(tǒng)桌面右下角彈框,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-01-01

最新評(píng)論

保康县| 平武县| 论坛| 浏阳市| 昌图县| 北海市| 阳朔县| 方山县| 昌邑市| 沐川县| 定边县| 理塘县| 桃源县| 社旗县| 威信县| 兰州市| 广南县| 栾川县| 山东省| 玉龙| 论坛| 恩平市| 兴安县| 赞皇县| 桓仁| 合作市| 古交市| 五峰| 资溪县| 太和县| 习水县| 仙桃市| 嘉荫县| 永宁县| 岑溪市| 泸西县| 塘沽区| 武宣县| 永济市| 周至县| 句容市|