Apr 08 2003 11:06 Written by mrsroses (codenuri.com members)
제가 만든 프로그램을 항상 하나만 실행하도록 하는 방법에 대해 알아봅시다.
두 번째 실행시에는 먼저 실행되어 있던 프로그램을 앞으로 띄웁니다.
여러가지 방법이 있겠지만 파일맵핑 객체를 이용하도록 하겠습니다.
처음 뜨는 프로그램이 정해진 이름의 파일 맵핑 객체를 만들어 놓으면(여기서는 MyTestMap)
나중에 뜨는 프로그램들이 이 이름의 파일 맵핑 객체가 있는지 살펴보고 있으면 실행을 중지하는 방법입니다.
이 것이 가능한 이유는 파일 맵핑 객체는 시스템 전역 객체이기 때문입니다.
먼저 항상 하나만 떠 있 게 하는 방법을 알아보고 다음으로
기존의 프로그램을 앞으로 띄우는 코드를 알아보도록 하겠습니다.
항상 하나만 떠 있게 하는 방법
(윈도우의 캡션이 고정되어 있을 경우에는 FindWindow를 사용하는 것이 더 유리합니다).
다음 코드를 InitInstance의 선두에 넣습니다.
위의 코드는 하나의 실행파일을 실행할 수 있는 방법이지만
기존의 실행되어 있는 프로그램을 앞으로 띄우는 일까지 할 수는 없습니다.
이를 하려면 InitInstance의 코드를 다음과 같이 수정합니다.
제가 만든 프로그램을 항상 하나만 실행하도록 하는 방법에 대해 알아봅시다.
두 번째 실행시에는 먼저 실행되어 있던 프로그램을 앞으로 띄웁니다.
여러가지 방법이 있겠지만 파일맵핑 객체를 이용하도록 하겠습니다.
처음 뜨는 프로그램이 정해진 이름의 파일 맵핑 객체를 만들어 놓으면(여기서는 MyTestMap)
나중에 뜨는 프로그램들이 이 이름의 파일 맵핑 객체가 있는지 살펴보고 있으면 실행을 중지하는 방법입니다.
이 것이 가능한 이유는 파일 맵핑 객체는 시스템 전역 객체이기 때문입니다.
먼저 항상 하나만 떠 있 게 하는 방법을 알아보고 다음으로
기존의 프로그램을 앞으로 띄우는 코드를 알아보도록 하겠습니다.
항상 하나만 떠 있게 하는 방법
(윈도우의 캡션이 고정되어 있을 경우에는 FindWindow를 사용하는 것이 더 유리합니다).
다음 코드를 InitInstance의 선두에 넣습니다.
위의 코드는 하나의 실행파일을 실행할 수 있는 방법이지만
기존의 실행되어 있는 프로그램을 앞으로 띄우는 일까지 할 수는 없습니다.
이를 하려면 InitInstance의 코드를 다음과 같이 수정합니다.
"Win32 API" 카테고리의 다른 글
- 윈도우 시스템 프로그래밍 (0)2007/08/16
- 투명한 비트맵 처리소스 (0)2007/05/17
- 프로그램을 하나만 실행하기 (2)2007/05/16
- 데이터 파일의 연결프로그램 실행 (0)2007/05/16
- 시스템 사양 알아내기 (0)2007/05/16
Tags 프로그램 중복 실행 방지

수안이의 컴퓨터 연구실



Leave your greetings.
윈도우가 최소화 되어 있을 때 화면으로 복구를 시키기 위해서
2008/04/04 17:22 [ Permalink : Modify/Delete : Reply ]ShowWindow(hWnd, SW_SHOW);
대신에
ShowWindow(hWnd, SW_RESTORESHOW);
를 사용해야 되지 않을까요?
ShowWindow(hWnd, SW_SHOW); 로 되어 있던 부분을
2008/04/07 13:43 [ Permalink : Modify/Delete ]ShowWindow(hWnd, SW_RESTORESHOW); 로 수정 완료하였습니다.
세밀히 살펴주시고 댓글 달아주셔서 감사합니다. ^^