Application/MFC

[MFC] 중복 실행 방지 (HANDLE, Event)

devsalix 2024. 4. 9. 12:51
728x90

 

MFC에서 프로그램 중복 실행을 방지하기 위한 간단한 코드를 알려 드리겠습니다

 

Header File

 

class MyClass
{
public:
	MyClass();
	~MyClass();
    
private:
	HANDLE m_hEvent;
    
	BOOL IsTaskCheck();
};

 

 

우선 헤더 파일에 HANDLE 변수를 선언해 줍니다

 

Cpp

 

MyClass::MyClass()
{
	m_hEvent = NULL;
}

MyClass::~MyClass()
{
	if(m_hEvent != NULL)
	{
		CloseHandle(m_hEvent);
		m_hEvent = NULL;
	}
}

MyClass::IsTaskCheck()
{
	m_hEvent = OpenEvent(EVENT_ALL_ACCESS, TRUE, _T("TaskName"));
	if(m_hEvent == NULL)
	{
		return FALSE;
	}
    
	m_hEvent = CreateEvent(NULL, FALSE, FALSE, _T("TaskName"));
	return TRUE;
}

 

위와 같이 작성 후 IsTaskCheck 함수를 호출하면

 

현재 프로세스가 중복으로 실행되어 있는지 확인이 가능합니다

 

'TaskName'에는 원하시는 문자열을 넣으시면 됩니다

 

 


제 글이 도움이 되셨다면 댓글 & 공감 부탁드려요 😀

 

 
728x90
반응형