프로그래밍/c#
[c#] 프로그램 시작시 중복 체크
그래도동
2021. 1. 12. 16:38
728x90
반응형
SMALL
[DllImport("user32")]
private static extern bool SetForegroundWindow(IntPtr handle);
[DllImport("User32")]
private static extern int ShowWindow(IntPtr hwnd, int nCmdShow);
[DllImport("User32")]
private static extern void BringWindowToTop(IntPtr hwnd);
// 중복실행방지
var processName = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name;
var processList = System.Diagnostics.Process.GetProcessesByName(processName);
// 프로그램 같은 이름이 두 개 이상 존재하면
if (processList.Length > 1)
{
foreach (var process in processList)
{
// 이름으로 찾아서
if (processName.Equals(process.ProcessName))
{
ShowWindow(process.MainWindowHandle, 5);
BringWindowToTop(process.MainWindowHandle);
SetForegroundWindow(process.MainWindowHandle);
break;
}
}
// 종료
Application.Exit();
return;
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Start());
프로그램 중복 실행방지 코드
프로그램을 하나만 실행시키고 싶을때 자주 쓴다.
728x90
반응형
LIST