Inno Setup - 如何在安装应用程序时阻止安装?

时间:2017-02-09 12:04:51

标签: inno-setup

我安装了我的程序。但是,如果我再次尝试安装它,它会更换程序。

我看到了这个问题Inno Setup - How to display notifying message while installing if application is already installed on the machine?

我可以创建某个注册表项,以便检查它并阻止新安装吗?在这个问题中有一些相关的信息:Inno setup - skip installation if other program is not installed

1 个答案:

答案 0 :(得分:5)

您无需创建任何注册表项。安装程序已为卸载程序创建了一个注册表项。你可以检查一下。它是相同的关键,​​你提到的问题的答案使用。但是你不需要检查版本。检查存在。另外,您应该同时检查HKEY_LOCAL_MACHINEHKEY_CURRENT_USER

#define AppId "myapp"

[Setup]
AppId={#AppId}

[Code]

function InitializeSetup(): Boolean;
begin
  Result := True;
  if RegKeyExists(HKEY_LOCAL_MACHINE,
       'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#AppId}_is1') or
     RegKeyExists(HKEY_CURRENT_USER,
       'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#AppId}_is1') then
  begin
    MsgBox('The application is installed already.', mbInformation, MB_OK);
    Result := False;
  end;
end;

The application is installed already