我只需要允许一个Inno Setup实例。我使用了SetupMutex
,但是当我运行第二个设置时,它将提示用户。我需要安装程序不执行任何操作,如果另一个实例正在运行,请关闭而不显示任何提示。
答案 0 :(得分:1)
我认为您尝试做的并不是改善用户体验,相反,反正...
删除您的SetupMutex
directive并改用以下代码:
[Code]
const
SetupMutexName = 'MyProgSetup';
function InitializeSetup(): Boolean;
begin
Result := True;
if CheckForMutexes(SetupMutexName) then
begin
Log('Mutex exists, setup is running already, silently aborting');
Result := False;
end
else
begin
Log('Creating mutex');
CreateMutex(SetupMutexName);
end;
end;
(CheckForMutexes
和CreateMutex
之间的竞态条件几率很小)