프로그래밍
[C#] 프로그램 중복 실행 방지
건우아빠유리남편
2011. 11. 25. 08:45
반응형
예제를 보면 알겠지만 program.cs 파일에 작성해야함~
방법 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# 중복실행 체크|작성자 지니
방법 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# 중복실행 체크|작성자 지니
반응형