Inno Setup设定只运行一个安装包

时间:2021-12-27 14:55:53

原文 http://zwkufo.blog.163.com/blog/static/25882512010292526944/?suggestedreading&wumii

在安装包中,经常会有用户点击多次安装的情况发生,即运行了多个安装文件。

而InnoSetup可以判断安装包是否在运行,并退出重复的安装包程序,从而阻止了多个安装包同时运行的情况。

下面【Code】中,InitializeSetup为系统函数,'Setup - Startup Page' 即是你安装包的WindowName(Title),或者也可以用Window Spy之类的软件获取。

Inno Setup设定只运行一个安装包

[Code]
function InitializeSetup(): boolean;
var
  SetupRunning: Integer;
begin
  result := true;
  SetupRunning:=FindWindowByWindowName('Setup - Startup Page');
  while SetupRunning<>0 do
  begin
    if Msgbox('The "Startup Page" Setup program is already running....', mbInformation, MB_OK) = IDOK then
      begin
        result := false;
        SetupRunning := 0;
      end else begin
        result := true;
        SetupRunning:=FindWindowByWindowName('Setup - Startup Page');
      end;
  end;
  end;