每次只允许运行一个安装包程序
#define MyAppName "UltraISO"
[Setup]
AppMutex={#MyAppName}
[Messages]
SetupAppRunningError=安装程序已经在运行。%n%n请按“取消”退出。
[Code]
procedure InitializeWizard();
begin
CreateMutex('{#MyAppName}');
end;
卸载时检测程序是否在运行
function InitializeUninstall(): Boolean;
var
IsRunnin : UINT;
begin
Result :=true; //安装程序继续
IsRunnin:=FindWindowByWindowName('程序窗口标题名称');
while IsRunnin > 0 do
begin
if Msgbox('安装程序检测到客户端正在运行。' #13#13 '您必须先关闭它然后单击“是”继续安装,或按“否”退出!', mbConfirmation, MB_YESNO) = idNO then
begin
Result :=false; //安装程序退出
IsRunnin :=0;
end else begin
Result :=true; //安装程序继续
IsRunnin:=FindWindowByWindowName('程序窗口标题名称');
end;
end;
end;
procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
Confirm := False;
end;