본문 바로가기

프로그램

c# 중복실행방지 모음

http://kwangho.tistory.com/677

방법 1~ 3
1. Mutex :

bool createdNew ;
// MyMutex라는 문자열을 유니크하게 구성하면 더 좋습니다.
Mutex gM1 = new Mutex(true,"MyMutex", out createdNew);

if (createdNew)
{
Application.Run(new Form1());
gM1.ReleaseMutex();
}
else
MessageBox.Show("이미 실행되어 있습니다.");



2. Process.GetProcessesByName :

private void DoublePlayCHK()
{
try
{
throw new System.NotImplementedException();
}
catch(NotImplementedException)
{
Process[] myProcesses = Process.GetProcessesByName("TimeOff");

if (myProcesses.Length > 1)
{
MessageBox.Show("[TimeOff]가 이미 실행 중입니다.", "TimeOff", MessageBoxButtons.OK);
Application.Exit();
}
}
}



3. Process.GetProcesses :

processcount = 0;

Process[] procs;

procs = Process.GetProcesses();

foreach(Process aProc in procs)

{

if(aProc.ProcessName.ToString().Equals("KotraServer"))

{

processcount++;

}

}

if(processcount == 1)

Application.Run(new ServerMain());

else

{

MessageBox.Show("이미 실행되어 있습니다.");

return;

}

[출처] C# 중복실행 체크|작성자 지니