Delphi - 互斥物件下實現系統的單例模式
阿新 • • 發佈:2019-09-03
使用CreateMutex函式建立互斥物件
利用Windows系統函式CreateMutex(),找出當前系統是否已經存在指定程序的例項,如果沒有則建立一個互斥體。
CreateMutex函式原型如下:
function CreateMutex(lpMutexAttributes: PSecurityAttributes; bInitialOwner: BOOL; lpName: PChar): THandle;
function CreateMutex(lpMutexAttributes: PSecurityAttributes; bInitialOwner: BOOL; lpName: PChar): THandle;
其中引數:
lpMutexAttributes :SECURITY_ATTRIBUTES 結構型別指標,可以為NULL。
bInitialOwner :是否初始化互斥體。
lpName :互斥體物件的名稱,一般是工程的名稱。
最終,函式返回一個互斥體控制代碼。
Delphi WinFrm利用互斥物件實現單例模式
單擊Project,View Source;
uses 中新增Windows;
Begin和End之間新增如下程式碼。
//*****************************單例模式******************************** CreateMutex(nil, False, 'Application Name'); if GetLastError = ERROR_ALREADY_EXISTS then begin Application.MessageBox('系統已經開啟了,請確認下!', '提示', MB_OK); Halt(0); end; //*****************************單例模式********************************
&n