歡迎跟我連絡

本頁最下方有Web MSN可以直接跟我交談喔!
免安裝程式...哈哈 歡迎聊天

2008年8月19日 星期二

如何讓你的程式只能啟動一次 in C#

有時候,因為某些緣故(例如:搶同一個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();//關閉
}
}


菲爾普斯奪得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。

泰國提出:
除了男子和女子項目外,所有應該加上人妖組。

唯獨韓國在這方面沒有要求,他們大聲喊到:
菲爾普斯是韓國人 !! ...-_-"

MSN狀態(我在線上時,可以跟我交談喔)