C#應用Process類挪用內部法式分化。本站提示廣大學習愛好者:(C#應用Process類挪用內部法式分化)文章只能為提供參考,不一定能成為您想要的結果。以下是C#應用Process類挪用內部法式分化正文
在法式開辟中,一個法式常常須要去挪用其他的法式,C#中Process類正好供給了如許的功效。它供給對當地和長途過程的拜訪並使您可以或許啟動和停滯當地體系過程。
1、啟動過程實例
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 辦法,啟動(或重用)此 Process 組件的 StartInfo 屬性指定的過程資本,並將其與該組件聯系關系。假如啟動了過程資本,則為 true;假如沒有啟動新的過程資本(例如,假如重用了現有過程),則為 false。
Process.StartInfo 屬性,獲得或設置要傳遞給 Process 的 Start 辦法的屬性。StartInfo 表現用於啟動過程的一組參數。 挪用 Start 時,StartInfo 用於指定要啟動的過程。 獨一必需設置的 StartInfo 成員是 FileName 屬性。
ProcessStartInfo.FileName 屬性,獲得或設置要啟動的運用法式或文檔。FileName 屬性不須要表現可履行文件。 它可所以其擴大名曾經與體系上裝置的運用法式聯系關系的任何文件類型。
ProcessStartInfo.CreateNoWindow屬性,獲得或設置指導能否在新窗口中啟動該過程的值。
2、關失落啟動過程
Process.Kill 辦法,立刻停滯聯系關系的過程。Kill 強迫終止過程,Kill 辦法將異步履行。 在挪用 Kill 辦法後,請挪用 WaitForExit 辦法期待過程加入,或許檢討 HasExited 屬性以肯定過程能否曾經加入。
3、過程停止後挪用其他辦法
在挪用某個過程停止後,我們平日須要履行其他的辦法,好比,在做裝置法式時,須要先斷定.Net Framework情況能否裝置,若未裝置,則先挪用.NET Framework裝置法式後,持續運轉裝置法式辦法。
平日這類情形下,有兩種辦法:
辦法一:WaitForExit()辦法。這類辦法會壅塞以後過程,直到運轉的內部法式加入。
System.Diagnostics.Process exep = System.Diagnostics.Process.Start(@"C:\Windows\Notepad.exe");
exep.WaitForExit();//症結,期待內部法式加入後能力往下履行
MessageBox.Show("Notepad.exe運轉終了");
上述代碼在Notepad.exe記事本停止以後,彈出對話框。
辦法二:Exited 事宜。為內部過程添加一個事宜監督器,當加入後,獲得告訴,這類辦法時不會壅塞以後過程,你可以處置其它工作。
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運轉終了");
}
在事宜停止以後,挪用Exited 事宜辦法。
關於在C#法式開辟中挪用內部法式的操作,要斷定這個被挪用的EXE文件能否履行停止其實最跟本的是 System.Diagnostics.Process類的運用,個中有一個辦法,就是WaitForExit();和HasExited屬性,這兩個也 都是為斷定內部法式exe文件的履行狀況而設計的,HasExited=ture時表現履行停止.