C#實現(xiàn)軟件監(jiān)控外部程序運(yùn)行狀態(tài)的方法
更新時間:2014年12月15日 15:29:38 投稿:shichen2014
這篇文章主要介紹了C#實現(xiàn)軟件監(jiān)控外部程序運(yùn)行狀態(tài)的方法,可實現(xiàn)監(jiān)控另一個程序的運(yùn)行狀態(tài)及觸發(fā)相應(yīng)事件的功能,是非常實用的技巧,需要的朋友可以參考下
本文實例講述了C#實現(xiàn)軟件監(jiān)控外部程序運(yùn)行狀態(tài)的方法。分享給大家供大家參考。具體方法如下:
需要外掛一個程序,用于監(jiān)控另一個程序運(yùn)行狀態(tài),一旦檢測到另一程序關(guān)閉,就觸發(fā)一個事件做其他處理。
引用的類
復(fù)制代碼 代碼如下:
using System.Diagnostics;//引入Process 類
聲明
復(fù)制代碼 代碼如下:
private Process[] MyProcesses;
主要處理部分,該段代碼可放在定時器中循環(huán)檢測監(jiān)控的程序是否啟動
復(fù)制代碼 代碼如下:
MyProcesses = Process.GetProcessesByName("SajetManager");//需要監(jiān)控的程序名,該方法帶出該程序所有用到的進(jìn)程
foreach (Process myprocess in MyProcesses)
{
textBox1.Text += myprocess.ProcessName + "\r\n";
if (myprocess.ProcessName.ToLower() == "sajetmanager")
{
MessageBox.Show("SajetManager");
myprocess.EnableRaisingEvents = true;//設(shè)置進(jìn)程終止時觸發(fā)的時間
myprocess.Exited += new EventHandler(myprocess_Exited);//發(fā)現(xiàn)外部程序關(guān)閉即觸發(fā)方法myprocess_Exited
}
}
private void myprocess_Exited(object sender, EventArgs e)//被觸發(fā)的程序
{
MessageBox.Show("SajetManager close");
}
foreach (Process myprocess in MyProcesses)
{
textBox1.Text += myprocess.ProcessName + "\r\n";
if (myprocess.ProcessName.ToLower() == "sajetmanager")
{
MessageBox.Show("SajetManager");
myprocess.EnableRaisingEvents = true;//設(shè)置進(jìn)程終止時觸發(fā)的時間
myprocess.Exited += new EventHandler(myprocess_Exited);//發(fā)現(xiàn)外部程序關(guān)閉即觸發(fā)方法myprocess_Exited
}
}
private void myprocess_Exited(object sender, EventArgs e)//被觸發(fā)的程序
{
MessageBox.Show("SajetManager close");
}
希望本文所述對大家的C#程序設(shè)計有所幫助。
您可能感興趣的文章:
相關(guān)文章
C# 實現(xiàn)TXT文檔轉(zhuǎn)Table的示例代碼
這篇文章主要介紹了C# 實現(xiàn)TXT文檔轉(zhuǎn)Table的示例代碼,幫助大家更好的理解和學(xué)習(xí)c#,感興趣的朋友可以了解下2020-12-12
C#中IDispose接口的實現(xiàn)及為何這么實現(xiàn)詳解
這篇文章主要給大家介紹了關(guān)于C#中IDispose接口的實現(xiàn)及為何這么實現(xiàn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-05-05

