delphi 互斥量,只允许运行一个实例
效果图:

代码超简单的:
procedure TFrmLogin.FormCreate(Sender: TObject);
var Fmutex: THandle; begin//创建一个命名的互斥量,确保同一时间只有一个实例在运行 //第三个参数是自定义的,随便取的,但一定要是唯一的标识 FMutex := CreateMutex(nil,True,'MyDelphiAppMutex'); if (FMutex <> 0) and (GetLastError = ERROR_ALREADY_EXISTS) then begin //另一个实例已经在运行,关闭当前实例 dm.ShowMessageFadeOut('只能运行一个实例');//这是个自定义的消息提示,可替换 ExitProcess(0);//这里不会触发任何关闭或者销毁事件 end; end;
以下是大佬的讲解:


浙公网安备 33010602011771号