[C#.NET] 判斷被呼叫的應用程式是否被關閉

  • 13618
  • 0
  • 2013-07-05

[C#.NET] 判斷被呼叫的應用程式是否被關閉

上篇 [C#.NET][VB.NET] 限制呼叫的應用程式執行的時間,主要是主執行緒呼叫其它應用程式時,主執行緒所需要等待的時間。

本篇將使用 Exited 事件,通知主執行緒應用程式被關掉了,然後主執行緒再接下去繼續工作,這是由Process類別背景端幫你偵測,程式被關掉則觸發Exited事件,要使用該事件,還需要設定EnableRaisingEvents屬性,而SynchronizingObject 是解決跨執行緒更新要用到的屬性。

在.net裡Process類別,就能達到我要的功能。


private void Form1_Load(object sender, EventArgs e)
{
    Process process = new Process();
    process.StartInfo.FileName = Environment.GetEnvironmentVariable("WinDir") + "\\Notepad.exe";
    process.Start();
    process.Exited += new EventHandler(process_Exited);
    process.SynchronizingObject = this;
    process.EnableRaisingEvents = true;
} 

void process_Exited(object sender, EventArgs e)
{
    this.textBox1.Text = "Notepad.exe 已被關閉!!!";
    MessageBox.Show("Notepad.exe 已被關閉!!!");
}


若有謬誤,煩請告知,新手發帖請多包涵


Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET

Image result for microsoft+mvp+logo