Inno脚本:如果已经安装了应用程序,则跳过密码

时间:2018-10-02 15:36:26

标签: inno-setup

我正在尝试创建一个Inno Setup安装程序,如果从未在本地计算机上安装过该应用程序,则需要用户输入密码。

我有一个获取密码的脚本,并且我有一个Code部分,用于检查是否存在卸载注册表项,但是对于Inno Setup脚本来说这是新手,所以我不确定如何链接两个部分在一起。

如果已经安装了该应用程序,有人可以解释如何放弃用户输入密码吗?

这是(测试)脚本...

#define myAppID "2B7D6E48-74A8-4070-8BA7-621115D6FD00"

[Setup]
AppId={{{#myAppID}}
Password=123456

[Code]

function checkForPreviousInstall(): Boolean;
begin
  Result := False;

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

1 个答案:

答案 0 :(得分:1)

跳过密码页面(如果已安装该应用程序)。

使用ShouldSkipPage event function

function ShouldSkipPage(PageID: Integer): Boolean;
begin
  Result := False;
  if (PageID = wpPassword) and checkForPreviousInstall then Result := True;
end;