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

C#使用Process類調(diào)用外部程序分解

 更新時(shí)間:2014年07月03日 10:03:43   投稿:junjie  
這篇文章主要介紹了C#使用Process類調(diào)用外部程序分解,分別介紹了啟動(dòng)外部程序、關(guān)掉外部程序、關(guān)掉后調(diào)用一些方法的方法,需要的朋友可以參考下

在程序開(kāi)發(fā)中,一個(gè)程序經(jīng)常需要去調(diào)用其他的程序,C#中Process類正好提供了這樣的功能。它提供對(duì)本地和遠(yuǎn)程進(jìn)程的訪問(wèn)并使您能夠啟動(dòng)和停止本地系統(tǒng)進(jìn)程。

一、啟動(dòng)進(jìn)程實(shí)例

復(fù)制代碼 代碼如下:

Process myProcess = new Process();  
try 
{  
    myProcess.StartInfo.UseShellExecute = false;  
    myProcess.StartInfo.FileName = "test.exe";  
    myProcess.StartInfo.CreateNoWindow = true;  
    myProcess.Start();  
}  
catch (Exception e)  
{  
    Console.WriteLine(e.Message);  

Process.Start 方法,啟動(dòng)(或重用)此 Process 組件的 StartInfo 屬性指定的進(jìn)程資源,并將其與該組件關(guān)聯(lián)。如果啟動(dòng)了進(jìn)程資源,則為 true;如果沒(méi)有啟動(dòng)新的進(jìn)程資源(例如,如果重用了現(xiàn)有進(jìn)程),則為 false。

Process.StartInfo 屬性,獲取或設(shè)置要傳遞給 Process 的 Start 方法的屬性。StartInfo 表示用于啟動(dòng)進(jìn)程的一組參數(shù)。 調(diào)用 Start 時(shí),StartInfo 用于指定要啟動(dòng)的進(jìn)程。 唯一必須設(shè)置的 StartInfo 成員是 FileName 屬性。

ProcessStartInfo.FileName 屬性,獲取或設(shè)置要啟動(dòng)的應(yīng)用程序或文檔。FileName 屬性不需要表示可執(zhí)行文件。 它可以是其擴(kuò)展名已經(jīng)與系統(tǒng)上安裝的應(yīng)用程序關(guān)聯(lián)的任何文件類型。

ProcessStartInfo.CreateNoWindow屬性,獲取或設(shè)置指示是否在新窗口中啟動(dòng)該進(jìn)程的值。

二、關(guān)掉啟動(dòng)進(jìn)程

Process.Kill 方法,立即停止關(guān)聯(lián)的進(jìn)程。Kill 強(qiáng)制終止進(jìn)程,Kill 方法將異步執(zhí)行。 在調(diào)用 Kill 方法后,請(qǐng)調(diào)用 WaitForExit 方法等待進(jìn)程退出,或者檢查 HasExited 屬性以確定進(jìn)程是否已經(jīng)退出。

三、進(jìn)程結(jié)束后調(diào)用其他方法

在調(diào)用某個(gè)進(jìn)程結(jié)束后,我們通常需要執(zhí)行其他的方法,比如,在做安裝程序時(shí),需要先判斷.Net Framework環(huán)境是否安裝,若未安裝,則先調(diào)用.NET Framework安裝程序后,繼續(xù)運(yùn)行安裝程序方法。
通常這種情況下,有兩種方法:

方法一:WaitForExit()方法。這種方法會(huì)阻塞當(dāng)前進(jìn)程,直到運(yùn)行的外部程序退出。

復(fù)制代碼 代碼如下:
System.Diagnostics.Process exep = System.Diagnostics.Process.Start(@"C:\Windows\Notepad.exe");  
exep.WaitForExit();//關(guān)鍵,等待外部程序退出后才能往下執(zhí)行  
MessageBox.Show("Notepad.exe運(yùn)行完畢");

上述代碼在Notepad.exe記事本結(jié)束之后,彈出對(duì)話框。

方法二:Exited 事件。為外部進(jìn)程添加一個(gè)事件監(jiān)視器,當(dāng)退出后,獲取通知,這種方法時(shí)不會(huì)阻塞當(dāng)前進(jìn)程,你可以處理其它事情。

復(fù)制代碼 代碼如下:
System.Diagnostics.Process exep = new System.Diagnostics.Process();  
exep.StartInfo.FileName = @"C:\Windows\Notepad.exe";  
exep.EnableRaisingEvents = true;  
exep.Exited += new EventHandler(exep_Exited);  
exep.Start();  
 
void exep_Exited(object sender, EventArgs e)  
{  
MessageBox.Show("Notepad.exe運(yùn)行完畢");  

在事件結(jié)束之后,調(diào)用Exited 事件方法。

對(duì)于在C#程序開(kāi)發(fā)中調(diào)用外部程序的操作,要判斷這個(gè)被調(diào)用的EXE文件是否執(zhí)行結(jié)束其實(shí)最跟本的是 System.Diagnostics.Process類的應(yīng)用,其中有一個(gè)方法,就是WaitForExit();和HasExited屬性,這兩個(gè)也 都是為判斷外部程序exe文件的執(zhí)行狀態(tài)而設(shè)計(jì)的,HasExited=ture時(shí)表示執(zhí)行結(jié)束.

相關(guān)文章

  • C# 網(wǎng)絡(luò)編程之UDP

    C# 網(wǎng)絡(luò)編程之UDP

    這篇文章主要介紹了C# 網(wǎng)絡(luò)編程之UDP的相關(guān)資料,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2021-02-02
  • C#調(diào)用外部程序的三種實(shí)現(xiàn)方式的示例

    C#調(diào)用外部程序的三種實(shí)現(xiàn)方式的示例

    在C#中調(diào)用外部程序通常有幾種方式,本文將介紹其中的三種主要方法:System.Diagnostics.Process?類、System.Shell類以及使用C#的System.Diagnostics.ProcessStartInfo類與System.Diagnostics.Process?類結(jié)合,感興趣的可以了解一下
    2025-05-05
  • Winform中GridView分組排序功能實(shí)現(xiàn)方法

    Winform中GridView分組排序功能實(shí)現(xiàn)方法

    這篇文章主要介紹了Winform中GridView分組排序功能實(shí)現(xiàn)方法,以實(shí)例形式詳細(xì)說(shuō)明了分組排序的實(shí)現(xiàn)方法,并附帶完整的DBHelp類代碼,是非常實(shí)用的技巧,需要的朋友可以參考下
    2014-11-11
  • WCF如何使用動(dòng)態(tài)代理精簡(jiǎn)代碼架構(gòu)

    WCF如何使用動(dòng)態(tài)代理精簡(jiǎn)代碼架構(gòu)

    這篇文章主要介紹了WCF如何使用動(dòng)態(tài)代理精簡(jiǎn)代碼架構(gòu),幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-03-03
  • C#調(diào)用OpenCV開(kāi)發(fā)簡(jiǎn)易版美圖工具【推薦】

    C#調(diào)用OpenCV開(kāi)發(fā)簡(jiǎn)易版美圖工具【推薦】

    本文主要介紹在WPF項(xiàng)目中使用OpenCVSharp3-AnyCPU開(kāi)源類庫(kù)處理圖片,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2019-10-10
  • 詳解C#中的委托

    詳解C#中的委托

    本文主要介紹了C#中委托的相關(guān)知識(shí)。具有一定的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-01-01
  • unity實(shí)現(xiàn)文字滾動(dòng)效果

    unity實(shí)現(xiàn)文字滾動(dòng)效果

    這篇文章主要為大家詳細(xì)介紹了unity實(shí)現(xiàn)文字滾動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-02-02
  • 在.NET平臺(tái)使用C#為PDF添加各種類型的表單域的方法

    在.NET平臺(tái)使用C#為PDF添加各種類型的表單域的方法

    在日常辦公系統(tǒng)開(kāi)發(fā)中,涉及 PDF 處理相關(guān)的開(kāi)發(fā)時(shí),生成可填寫(xiě)的 PDF 表單是一種常見(jiàn)需求,與靜態(tài) PDF 不同,帶有**表單域的文檔支持用戶直接在 PDF 內(nèi)部輸入、勾選、選擇等交互操作,本文將介紹如何使用 C# 為 PDF 添加各種類型的表單域,需要的朋友可以參考下
    2025-05-05
  • C# 使用Winform 獲取下拉框 選中的值

    C# 使用Winform 獲取下拉框 選中的值

    這篇文章主要介紹了C# 使用Winform 獲取下拉框 選中的值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01
  • C#實(shí)現(xiàn)統(tǒng)計(jì)100以內(nèi)所有素?cái)?shù)的個(gè)數(shù)

    C#實(shí)現(xiàn)統(tǒng)計(jì)100以內(nèi)所有素?cái)?shù)的個(gè)數(shù)

    這篇文章介紹了C#實(shí)現(xiàn)統(tǒng)計(jì)100以內(nèi)所有素?cái)?shù)個(gè)數(shù)的方法,文中注釋非常詳細(xì),很適合新手學(xué)習(xí)。對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-11-11

最新評(píng)論