파워빌더 어플리케이션 1개만 실행하기파워빌더 어플리케이션 1개만 실행하기
Posted at 2013. 9. 2. 14:23 | Posted in PowerBuilder어플리케이션이 한번만 실행 될수 있도록 해보겠습니다.
Global Variable에 선언을 하나 합니다.
UINT gui_hMutex
External Function에 선언을 합니다.
FUNCTION UINT CreateMutex ( ULONG lpsa, BOOLEAN fInitialOwner, &
STRING lpszMutexName ) LIBRARY "Kernel32.DLL" ALIAS FOR "CreateMutexA"
FUNCTION ULONG GetLastError ( ) LIBRARY "Kernel32.DLL"
FUNCTION BOOLEAN ReleaseMutex ( UINT hMutex ) LIBRARY "Kernel32.DLL"
Application Object의 Open Event에 다음과 같이 기술 합니다.
gui_hMutex = CreateMutex ( 0, TRUE, "PBAPP_MUTEX" )
IF GetLastError() = 0 THEN
Open(w_main_frame)
ELSE
MessageBox("!", "Already Running!")
HALT
END IF
Application Object의 Close Event에 다음과 같이 기술 합니다.
ReleaseMutex ( hMutex )
CreateMutex()라는 API는 시스템 전체에 유일한 자물쇠를 만든다 생각하면 됩니다.
위에 예를 든 "PBAPP_MUTEX"가 바로 자물쇠의 이름이 되는겁니다.
이 이름은 임의대로 주어도 상관 없을 것이고, 전체적인 로직은 간단합니다.
마지막으로 EXE화일을 만든후 실행해 보시면 성공여부를 알수 있습니다.
'PowerBuilder' 카테고리의 다른 글
파워빌더에서 화면 캡처하기 (0) | 2013.09.02 |
---|---|
DataDirect ODBC 등록방법 (0) | 2013.09.02 |
웹브라우저로 URL열기 (파월빌더 함수사용) (0) | 2013.09.02 |
ADO.NET설치 가이드 (0) | 2013.09.02 |
PowerDesigner for PowerBuilder (0) | 2013.09.02 |