首页 > 解决方案 > Inno Script:如果应用程序已安装,则跳过密码

问题描述

我正在尝试创建一个 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;

标签: inno-setup

解决方案


如果已经安装了应用程序,请跳过密码页面。

使用ShouldSkipPage事件函数

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

推荐阅读