C# Process 類的思考

來源:互聯網
上載者:User

標籤:style   http   java   color   使用   檔案   

在這裡,我先給自己留個印象

下面我們用C#實現一個調用Dos命令的小程式,讓大家對系統進程能有個直觀的瞭解.要使用Process類,首先要引入System.Diagnostic命名空間,然後定義一個新的Process類,將其制定為開啟一個Cmd.exe的命令,然後根據其的StanderInput和StanderOutput對其進行命令的輸入和資訊的讀出.具體程式如下:

Process p=new Process();

p.StartInfo.FileName="cmd.exe"; //設定啟動的進程命令

/**設定是否標準輸入輸出和標準錯誤,當這些都設為true時

**UseShellExcute必須為 false*/

p.StartInfo.UseShellExcute=false;

p.StartInfo.RedirectStanderInput=true;  

p.StartInfo.RedirectStanderOutput=true;  

p.StartInfo.RedirectStanderError=true;   

p.StartInfo.CreatNoWindows=true;

p.start();

//向Dos視窗中輸入ping的命令,這裡的IP值請自己設定

p.StandardInput.WriteLine("ping -n 1 "+IP);

//輸入退出視窗的命令

p..StandardInput.WriteLine("Exit");

/**這裡用ReadToEnd讀出輸出並將其賦給一個string值,這裡要

**注意的是ReadToEnd這個命令是在調用的程式結束後才可以執行的,所以

**要是把這句放在上面的"Exit"之後,程式就會進入一個死迴圈*/

string output= p.StandardOutput.ReadToEnd();

主要的工作已經完成了,下來就看你怎樣利用程式的輸入輸出來完成一些功能了.

 

在這裡我也寫了一個實現:

 

Program代碼  
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Text;  
  5. using System.Diagnostics;  
  6.   
  7. namespace ConsoleApplication1  
  8. {  
  9.     class Program  
  10.     {  
  11.         static void Main(string[] args)  
  12.         {  
  13.             Process process = new Process();  
  14.             string strBatPath = "E:/test.bat";  
  15.             string mess = ExecuteBAT(strBatPath, process);  
  16.             Console.WriteLine(mess);  
  17.             Console.ReadKey();  
  18.   
  19.         }  
  20.         private static string ExecuteBAT(string strBatPath, Process pro)  
  21.         //檔案路徑;要執行bat檔案的進程,返回執行結果  
  22.         {  
  23.             string mess = "";  
  24.   
  25.             try  
  26.             {  
  27.                 pro.StartInfo.UseShellExecute = true;  
  28.                 //strBatPath是bat檔案路徑  
  29.                 pro.StartInfo.FileName = strBatPath;  
  30.                 pro.StartInfo.CreateNoWindow = true;  
  31.                 if (pro.Start())  
  32.                 {  
  33.                     //寫記錄檔  
  34.                     mess = DateTime.Now.ToLongDateString() + "  " + strBatPath + "執行成功";  
  35.                 }  
  36.                 else  
  37.                 {  
  38.                     mess = string.Format("執行{0}失敗.", strBatPath);  
  39.                 }  
  40.             }  
  41.             catch (Exception ex)  
  42.             {  
  43.                 mess = ex.Message;  
  44.             }  
  45.             finally  
  46.             {  
  47.                 pro.Close();  
  48.             }  
  49.             return mess;  
  50.         }  
  51.   
  52.   
  53.     }  
  54. }  

 現在 在寫一個讀入檔案的C#方法

C#代碼  
  1. public static void printFile(string strFileName)  
  2.        {  
  3.            StreamReader srd;  
  4.            try  
  5.            {  
  6.                srd = File.OpenText(strFileName);  
  7.   
  8.            }  
  9.            catch (Exception e)  
  10.            {  
  11.                Console.WriteLine(e.Message);  
  12.                Console.WriteLine("File not read");  
  13.                return;  
  14.            }  
  15.            while(srd.Peek()!=-1)  
  16.            {  
  17.                string str = srd.ReadLine();  
  18.                Console.WriteLine(str);  
  19.            }  
  20.            Console.WriteLine("End of read");  
  21.            srd.Close();  
  22.        }  
  23.        public static void InputFile(string strFileName)  
  24.        {  
  25.            StreamWriter swt;  
  26.            try  
  27.            {  
  28.                swt = File.CreateText(strFileName);  
  29.   
  30.            }  
  31.            catch (Exception e)  
  32.            {  
  33.                Console.WriteLine(e.Message);  
  34.                Console.WriteLine("File not Write");  
  35.                return;  
  36.            }  
  37.            swt.WriteLine("chenhailong");  
  38.            swt.Close();  
  39.   
  40.        }  
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.