파워빌더 어플리케이션 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

//