inno-setup - 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;
解决方案
如果已经安装了应用程序,请跳过密码页面。
function ShouldSkipPage(PageID: Integer): Boolean;
begin
Result := False;
if (PageID = wpPassword) and checkForPreviousInstall then Result := True;
end;
推荐阅读
- python - 由 cX_Freeze 6.1 版创建的 exe 文件被卡巴斯基检测为病毒
- windows - Powershell获取OU中所有服务器的lastlogonDate
- python - Python Beautiful Soup:从元素中获取文本
- linux - 地理服务器自动启动错误。活动状态:活动(退出)
- javascript - 为什么在 Google Docs 中复制表格不会复制嵌入的图形?
- printing - Print Composer 中的标签
- reactjs - 如何在本机反应中循环使用登录api?
- java - Quarkus:v.1.5.1 PgPoolpreparedQuery 带参数?
- c++ - 粒子系统:所有粒子都向同一个方向运动
- mysql - 比较一行中的两个值