這篇文章主要介紹了C#實(shí)現(xiàn)軟件監(jiān)控外部程序運(yùn)行狀態(tài)的方法,可實(shí)現(xiàn)監(jiān)控另一個(gè)程序的運(yùn)行狀態(tài)及觸發(fā)相應(yīng)事件的功能,是非常實(shí)用的技巧,需要的朋友可以參考下
本文實(shí)例講述了C#實(shí)現(xiàn)軟件監(jiān)控外部程序運(yùn)行狀態(tài)的方法。分享給大家供大家參考。具體方法如下:
需要外掛一個(gè)程序,用于監(jiān)控另一個(gè)程序運(yùn)行狀態(tài),一旦檢測到另一程序關(guān)閉,就觸發(fā)一個(gè)事件做其他處理。
引用的類
復(fù)制代碼代碼如下:
using System.Diagnostics;//引入Process 類
聲明
復(fù)制代碼代碼如下:
private Process[] MyProcesses;
主要處理部分,該段代碼可放在定時(shí)器中循環(huán)檢測監(jiān)控的程序是否啟動(dòng)
復(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)程終止時(shí)觸發(fā)的時(shí)間
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");
}
希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。