使用CreateMutex函數建立互斥對象函數
利用Windows系統函數CreateMutex(),找出當前系統是否已經存在指定進程的實例,若是沒有則建立一個互斥體。spa
CreateMutex函數原型以下:指針
function CreateMutex(lpMutexAttributes: PSecurityAttributes; bInitialOwner: BOOL; lpName: PChar): THandle; code
其中參數:對象
lpMutexAttributes :SECURITY_ATTRIBUTES 結構類型指針,能夠爲NULL。blog
bInitialOwner :是否初始化互斥體。進程
lpName :互斥體對象的名稱,通常是工程的名稱。原型
最終,函數返回一個互斥體句柄。it
Delphi WinFrm利用互斥對象實現單例模式io
單擊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; //*****************************單例模式********************************