원본 : http://www.debuglab.com/knowledge/onerun.html
1.요약
프로그램이 중복 실행되는 것을 방지하는 코드를 살펴봅시다.
2.본문
프로그램의 중복 실행을 막는 방법에는 여러가지가 있겠지만, 공유 Data segment 를 사용하는 방법을 살펴보겠습니다.
3.예제
- 2001.08.13 Smile Seo -
1.요약
프로그램이 중복 실행되는 것을 방지하는 코드를 살펴봅시다.
2.본문
프로그램의 중복 실행을 막는 방법에는 여러가지가 있겠지만, 공유 Data segment 를 사용하는 방법을 살펴보겠습니다.
3.예제
//아래 부분은 메소드 안에 쓰는게 아닙니다.
//그냥 cpp file상단에 넣어 주세요.
#pragma data_seg("Shared") // 데이타 세그먼트를 생성하는데 Shared란 섹션을 만들어라.
long m_lUsageCnt=0; // Shared란 데이타 세그먼트 섹션에 들어가는 변수.
// 반드시 초기화를 해주어야합니다. 이유는 초기화를 안할시 우리가 원하는 섹션으로
// 가는것이 아니라 bbs섹션으로 들어가기 때문입니다.
#pragma data_seg()
#pragma comment(linker, "test /section:Shared,rws") //여기서 test는 exe화일 이름입니다.
// 링커에게 이섹션은 쓰기, 읽기, 공유로 링크함을 알림
이렇게 써주면 m_lUsageCnt변수는 공유를 하게됩니다.
이것을 이용해서 우리의 어플리케이션이 몇개가 실행중인지를 알수있습니다.
initinstance에서 m_IUsageCnt를 하나 증가 시키고 1크면 return FALSE; 하면 됩니다.
m_IUsageCnt++;
if(m_IUsageCnt > 1)
return FALSE;
- 2001.08.13 Smile Seo -
"Win32 API" 카테고리의 다른 글
- [API/SHELL] 디스크 복사 및 포맷... (2)2007/03/02
- 특정 파일의 Property 창 띄우기 (0)2007/03/01
- 프로그램 한번만 실행하기 (0)2007/03/01
- 재밌는(?) 시스템 강제로 다운시키기 (0)2007/03/01
- 윈도우즈 강제로 종료하기 (0)2007/03/01

수안이의 컴퓨터 연구실



Leave your greetings.