디자이너 디자이너를 공유하거나 판매할 때 실행 갯수를 제한하는 방법.
페이지 정보
본문
안녕하세요. 엔지엠소프트웨어입니다. 디자이너를 판매하거나 공유할 때 실행되는 프로그램의 갯수를 목적에 맞게 제한할 수 있습니다. 물론, 제한하지 않아도 됩니다^^; 아무튼, 프로그램의 갯수를 제한하는 방법은 여러가지가 있을 수 있겠지만 쉽게 처리할 수 있는 방법은 아래 2가지입니다. 이외에는 별도의 시스템 구축(데이타베이스+웹서버+기타)이 필요하기 때문에 논외로 하겠습니다.
1. 프로세스로 처리하기.
static void Main()
{
Process[] procs = Process.GetProcessesByName("프로세스 이름");
// 하나 이상 실행중이라면...
if (procs.Length > 1)
{
MessageBox.Show("프로그램이 이미 실행되고 있습니다.\n관리자에게 문의하시기 바랍니다.");
return;
}
// 프로세스가 하나인 경우 프로그램을 정상적으로 실행시킵니다.
else
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
이 방법은 약간의 문제점을 가지고 있습니다. NGM 제품의 경우 프로세스명을 변경할 수 있는데요. 만약, 사용자가 프로세스명을 변경하고 사용한다면 갯수 체크가 안됩니다. 따라서, 뮤텍스로 처리하는 방법을 이용하는게 가장 깔끔하다고 할 수 있습니다. 물론, 현재 실행중인 프로그램의 프로세스명을 런타임(Run-time)에 가져와서 변수 처리해도 됩니다. 이 경우에는 좀 더 디테일하게 작업해줘야 합니다.
2. 뮤텍스로 처리하기.
bool isFirst;
// mutex 객체를 생성합니다.
Mutex mutex = new Mutex(true, "관리 코드", out isFirst);
if (isFirst)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
// 생성한 뮤텍스를 해제시킵니다.
mutex.ReleaseMutex();
}
else
{
MessageBox.Show("프로그램이 이미 실행되고 있습니다.\n관리자에게 문의하시기 바랍니다.");
return;
}
간단하죠^^?
추천0 비추천0
- 이전글디자이너 플레이 시간 표시하는 방법. 20.06.20
- 다음글텔레그램 원격제어 인터페이스 구현하기. 20.06.14
댓글목록
등록된 댓글이 없습니다.