有時候,因為某些緣故(例如:搶同一個TCP/IP Port Listen),同一隻程式不可以啟動兩次(含)以上...
可以這樣處理,打開Program.cs
加入以下程式碼(粗體自部分),就OK了
static class Program
{
///
/// The main entry point for the application.
///
static Mutex appMutex;
[STAThread]
static void Main()
{
bool createNew;
appMutex = new Mutex(true, "xxxxx", out createNew); // xxxxx 是自己取的名稱
if (!createNew)
{ // 表示已經有同名的 Mutex
appMutex.Close();
appMutex = null;
MessageBox.Show("Another xxxxxx already Startup !","Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
Application.ApplicationExit += OnApplicationExit;
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new FormMain());
}
static void OnApplicationExit(object sender, EventArgs e)
{
if (appMutex != null)
{
appMutex.ReleaseMutex();
appMutex.Close();
}
}
}
或是在Form Load Event中這樣寫
using System.Threading;
....
private void FormMain_Load(object sender, EventArgs e)
{
bool IsExist;
Mutex MyMutex = new Mutex(true, "MyApplication", out IsExist);
//其中MyApplicationd可以是任意字眼...
if(IsExist)
{
Dispose();//關閉
}
}
歡迎跟我連絡
本頁最下方有Web MSN可以直接跟我交談喔!
免安裝程式...哈哈 歡迎聊天
免安裝程式...哈哈 歡迎聊天
2008年8月19日 星期二
如何讓你的程式只能啟動一次 in C#
菲爾普斯奪得8金以後 [轉載]
菲爾普斯奪得8金以後:
各國對游泳比賽蛙泳、仰泳、蝶泳、自由泳×100、200、400、1500導致金牌過多感到非常不滿,
紛紛要求增加自己優勢專案的金牌數目。
巴西提出:
足球應該分為3人、5人、7人、11人×沙灘、室內、草地。
中國提出:
乒乓球應該分為直板、橫板、直板雙打、直板單打、直板橫板混雙。
跳水應該分為1m 2m 3m 4m 5m 6m 7m 8m 9m 10m
英國提出:
馬術應該分成黑馬馬術、白馬馬術、紅馬馬術、褐馬馬術、皇馬馬術、斑馬馬術。
肯亞提出:
長跑應該分為10000米、11000米、12000米、13000米。。。
日本提出:
所有男女混合項目應該增加3p、4p、5p、6p、7p。。。群p。。。500p。
泰國提出:
除了男子和女子項目外,所有應該加上人妖組。
唯獨韓國在這方面沒有要求,他們大聲喊到:
菲爾普斯是韓國人 !! ...-_-"
訂閱:
文章 (Atom)