程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 關於.Net中Process的使用方法和各種用途匯總,.netprocess

關於.Net中Process的使用方法和各種用途匯總,.netprocess

編輯:C#入門知識

關於.Net中Process的使用方法和各種用途匯總,.netprocess


簡介:

  .Net中Process類功能十分強大。它可以接受程序路徑啟動程序,接受文件路徑使用默認程序打開文件,接受超鏈接自動使用默認浏覽器打開鏈接,或者打開指定文件夾等等功能。

  想要使用Process類之前,需要先引用using System.Diagnostics;

 

Process類用法1:

  Process類有很多種使用方式,比如我只想打開一個應用程序的話,直接調用Process.Start("應用的路徑");即可打開對用的應用程序,用默認程序打開文件,打開超鏈接,打開文件夾也都只用給一個路徑即可。

  Process.Start("");調用之後大多數時候都會返回一個Process對象,但是參數是超鏈接和路徑的話是不會返回Process對象的。 

Process.Start(@"C:\Users"); //使用資源管理器打開目錄
Process.Start("http://www.cnblogs.com/menghuijinxi/p/5734274.html");  //使用默認浏覽器打開網頁
Process.Start(@"C:\Users\XU\Desktop\新建文本文檔.txt"); //使用默認應用程序打開文件
rocess.Start(@"G:\Unity 5.3.5f1\Editor\Unity.exe");  //打開應用程序

 

Process類用法2:

  Process.Start("軟件路徑", "啟動時傳遞的參數");

  此方式啟動進程也很簡單,第一個參數給軟件的路徑,第二個參數給文件路徑。

  軟件路徑一定要是存在的路徑,不然會拋異常。

  如果給的文件路徑參數是錯誤的,而且是不受支持的話會怎麼樣?這裡我們要詳細介紹一下第二個參數的到底是什麼了?我們先看下代碼:

static void Main(string[] args)
{      
    Console.ReadKey();
}

  這段代碼是控制台應用程序中的,很多學了很長時間c#的同學恐怕都還不知道上面的args參數是干嘛用的吧,平時我們通過編譯器創建出的控制台應用程序默認就有這些代碼,時間長了都習以為常了,也沒有什麼人在意這些參數的用途,不知道沒關系,咱們一一道來。

  我們從Main函數開始詳細講解,Main函數是整個應用程序的入口函數這個不用多說了,程序一開始運行就是調用這個函數。Main函數其實是可以有返回值的,這返回值有什麼用,還有如何獲取一個進程執行完畢後的返回值這些問題暫時先不討論。我們先討論Main函數的參數問題,經過測試C#中的Main數有且只能有一個字符數組參數。我們來詳細講解一下這個過程,假設其他應用程序"程序1"使用Process類啟動了我們寫的這個應用程序"程序2"(通常是操作系統完成這項工作),並傳入一個參數(Process.Start()方法的第二個參數),這個時候"程序2"的Main方法會被調用(期間怎麼被調用之類的我也不是很清楚了),並且被傳入一個參數(args參數),然後我們就可以獲取到"程序1"傳給我們的需要處理的參數了,之後我們就能隨心所欲的處理這些參數了。

  所以說args參數其實就是在程序啟動時或者說Main方法被調用時傳入的一個參數。

  這樣我們也就能理解第二個參數如果是不合法的話,會出現什麼情況了吧,這就不歸我們管了,這是我們調用的應用程序該處理的事情。

 

static class Program
{
     [STAThread]
     static void Main(string[] args)
     {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());
     }
}

  這個是個Win32程序,Win32程序默認生成的代碼並沒有參數,不過不代表不支持參數,我們可以自行添加。

   

Process使用方法3:

  Process.Start("應用程序名稱");

Process.Start("cmd.exe");

 

Kill方法的用途和注意事項:

  在獲取到返回值Process對象後我們可以通過Kill()方法結束掉該進程,調用此方法前要確保進程在運行不然會拋異常。使用Process類啟動某些軟件後你會發現,進程對象獲取到了,而且對應的軟件已經打開了,但是在結束進程時會拋"進程已停止運行的異常",這種情況是你使用Process類啟動的應用程序啟動了另一個應用程序並在你調用Kill方法前關閉了自己。如果不太理解這句話,我詳細說來,你寫了一個無窗口程序名為"程序1",然後在"程序1"中用Process類啟動了另一個應用程序叫"程序2",在Process.Start("程序2");這行代碼調用完後自動關閉"程序1",這樣的話你用Process類啟動"程序1"後又試圖關閉"程序1"當然會拋異常啦。

  

  今天先寫到這裡,待續。。。 

文章原創,歡迎轉載,請標明出處。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved