有時在做一個C#的程序時,你並不希望用戶重複打開多個,爲了避免程序被重複打開所帶來的不確定因素,就需要在程序運行前做一些處理,來提示使用者。這裏提供一種方法,親測有效。
可以在應用程序的主入口點Main函數裏添加,也可以在項目的第一個窗體的啓動事件中 如form1_load() 中添加如下語句
//獲取指定的進程名
System.Diagnostics.Process[] myProcesses = System.Diagnostics.Process.GetProcessesByName("這裏是你的程序進程名");
if (myProcesses.Length > 1) //如果可以獲取到知道的進程名大於一個,則說明在此之前已經啓動過
{
MessageBox.Show("檢測到程序已經運行,請先關閉多餘的程序和進程!");
Application.Exit(); //關閉
}
這裏只是檢測並提醒的功能,並不能夠關閉掉相應的進程,所以最終還是要用戶自己手動關閉。