anti_moreapps.~pas

来自「罗小平<<delphi精要>>一书源码」· ~PAS 代码 · 共 34 行

~PAS
34 行
字号
unit Anti_MoreApps;

interface

  function HaveApp(AppID: String): Boolean;
  {在工程文件中写:
  if HavePrevInst(AppID: String) then Exit;
  Application.Initialize;
  //AppID: 不同的应用程序中应该不同,
  //所以推荐用Ctrl+Shift+G生成,形如'09A81772-BAA8-41D0-A93A-600DCAEBF058';
  .......}
  
implementation

uses Windows;

var
  HMutex: THandle;

function HaveApp(AppID: String): Boolean;
begin
  Result := False;
  HMutex := OpenMutex(MUTEX_ALL_ACCESS, False, PChar(AppID));
  if HMutex = 0 then
    HMutex := CreateMutex(nil, False, PChar(AppID))
  else Result := True;
end;

initialization
finalization
  if HMutex <> 0 then CloseHandle(HMutex);

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?