Delphi - 互斥對象下實現系統的單例模式

使用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;
    //*****************************單例模式********************************
相關文章
相關標籤/搜索