Thursday, June 26, 2008

โค้ด single instance ใน C#

Only run one instance C#

# ขอบคุณ เพื่อน เกียรติ เด็ก มอ อุบล สำหรับโค้ดนี้

# single instance คือ เมื่อเราเปิดโปรแกรมไปแล้วจะไม่สามารถเปิด โปรแกรมตัวนั้นได้อีก

# ต้องปิดมันก่อนถึงจะเปิดใหม่ได้

# ฝั่ง java เคยทำนะ ด้วย install4j หรือ exe4j หว่า ^^' (สักตัวอ่ะ) ตอนทำตัวติดตั้งอ่ะ ตั้งค่าแบบนี้ได้เลย

using System;
using System.Windows.Forms;
using System.Threading;

class App : Form
{
Mutex mutex;

App()
{
Text = "Single Instance!";
mutex = new Mutex(false, "SINGLE_INSTANCE_MUTEX");
if (!mutex.WaitOne(0, false))
{
mutex.Close();
mutex = null;
}
}

protected override void Dispose(bool disposing)
{
if (disposing)
mutex.ReleaseMutex();
base.Dispose(disposing);
}

static void Main()
{
App app = new App();
if (app.mutex != null)
Application.Run(app);
else
MessageBox.Show("Instance already running");
}

}

No comments:

Post a Comment