只运行一个实例以及内存泄漏检测
unit 使应用程序只运行一个实例;
interface
uses Windows;
const
// - 互斥体唯一的名字
_Mutex_Name = '{19631971-1976-1981-1989-199319941995}';
var
_Mutex_Handle: THandle;
implementation
initialization // - 载入时调用的代码
// - 创建互斥体对象
_Mutex_Handle := CreateMutex(nil, False, LPCWSTR(_Mutex_Name));
// - 若互斥体对象存在则
if GetLastError = ERROR_ALREADY_EXISTS then
// - 结束程序,可有 Integer 参数给操作系统
Halt(ERROR_ALREADY_EXISTS);
// - 工作在调试状态时检测内存泄漏
{$WARN SYMBOL_PLATFORM OFF}
ReportMemoryLeaksOnShutdown := Boolean(DebugHook);
{$WARN SYMBOL_PLATFORM ON}
finalization // - 释放时调用的代码
// - 释放互斥体
ReleaseMutex(_Mutex_Handle);
end.

浙公网安备 33010602011771号