|
레쓰비 님이 쓰신 글 :
: exe파일을 계속 클릭하면 프로그램이 계속 생기는데요...!
: 그걸 막는 방법이 없을까요?
: 예를 들어서 aaa.exe 라는 프로그램이 실행중에 aaa.exe를 다시 실행 시키려하면 못하게 막는 방법요...?
: 뭐 좋은 방법이 있을것 같은데 검색을 해도 잘 안나오네요... 조언 부탁드립니다...^^;;
Windows API 함수인 CreateMutex, OpenMutex를 사용하면 됩니다.
2번째 인스턴스부터는 전혀 실행이 안 되는 것이 아니라 시작하자마자 끝내는 형식입니다.
CreateMutex(,,)
If the function succeeds, the return value is a handle to the mutex object.
If the named mutex object existed before the function call, the GetLastError function returns ERROR_ALREADY_EXISTS. Otherwise, GetLastError returns zero.
즉, CreateMutex(,,) 호출 후 GetLastError()의 반환값이 ERROR_ALREADY_EXISTS이면 해당 프로그램을 종료하면 됩니다.
이 코드를 배치할 위치는 해당 프로젝트이름.cpp 파일을 열어보면 WinMain함수가 있는데 그 곳의 선두부분입니다.
|