限定程序只執行一次

function GetFileNameExcludeExt(const AFileName: string): string;
// 取得擴展名 

var
I: Integer;
begin
  Result := ExtractFileName(AFileName);
  I := LastDelimiter('.' + PathDelim + DriveDelim, Result);
  if (I = 0) or (Result[I] <> '.') then I := MaxInt;
  Result := Copy(Result, 1, I - 1);
end;

 

var
MutexName: string;
StockMutexHandle: THandle;


begin
  MutexName := ExtractFileName(ParamStr(0));
  if MutexName <> 'APServer.exe' then MutexName := 'APServer.exe';
  MutexName := 'Mutex_' + GetFileNameExcludeExt(ParamStr(0)) + Copy(MutexName, 2, Length(MutexName));
  StockMutexHandle := Windows.OpenMutex(MUTEX_ALL_ACCESS, False, PChar(MutexName));
  if (StockMutexHandle = 0) and (Windows.GetLastError <> ERROR_ALREADY_EXISTS) then
  begin
    Windows.CreateMutex(nil, False, PChar(MutexName));
    Application.Initialize;
    Application.CreateForm(TMainFrm, MainFrm);
    Application.Run;
  end;
end.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值