安装程序 – InnoSetup:在升级时禁用组件页面
发布时间:2020-12-15 10:04:41 所属栏目:大数据 来源:网络整理
导读:有没有办法禁用升级的组件页面?我想启用我的软件升级,但我不想让用户在升级时更改组件的选择. 而是从第一次安装升级所有现有组件的安装程序. 我担心用户在升级期间选择较少的组件,那些丢失的组件将作为旧版本保持安装,并且你弄得一团糟. 我在脚本中添加了以
有没有办法禁用升级的组件页面?我想启用我的软件升级,但我不想让用户在升级时更改组件的选择.
而是从第一次安装升级所有现有组件的安装程序. 我担心用户在升级期间选择较少的组件,那些丢失的组件将作为旧版本保持安装,并且你弄得一团糟. 我在脚本中添加了以下内容: [Setup] DisableDirPage=auto DisableProgramGroupPage=auto DirExistsWarning=auto 我只需要一种方法来禁用组件页面并使用先前安装(完全安装)的选择进行升级.那可能吗? 更新 [Setup] UsePreviousTasks=true UsePreviousTasks正在读取注册表中的现有部分,这是好的.现在我需要找到隐藏选择窗口的方法. 谢谢, 解决方法
要隐藏用户的页面,请使用
ShouldSkipPage 事件方法.如果在此方法中返回True,则不会向用户显示该页面.如果为False,页面将通常显示.以下是如何检查安装是否为升级的示例,如果是,请跳过“选择组件”向导页面:
[Setup] AppId=B75E4823-1BC9-4AC6-A645-94027A16F5A5 AppName=My Program AppVersion=1.5 DefaultDirName={pf}My Program ; here is the place for your [Components] section and the rest of your script [Code] const UninstallKey = 'SoftwareMicrosoftWindowsCurrentVersionUninstall{#SetupSetting("AppId")}_is1'; function IsUpgrade: Boolean; var Value: string; begin Result := (RegQueryStringValue(HKLM,UninstallKey,'UninstallString',Value) or RegQueryStringValue(HKCU,Value)) and (Value <> ''); end; function ShouldSkipPage(PageID: Integer): Boolean; begin Result := (PageID = wpSelectComponents) and IsUpgrade; end; 您提到的另一个选项可能是禁用页面的所有控件.下一个脚本显示为上一个脚本如何检查安装是否为升级,则禁用“选择组件”向导页面上的所有控件: [Setup] AppId=B75E4823-1BC9-4AC6-A645-94027A16F5A5 AppName=My Program AppVersion=1.5 DefaultDirName={pf}My Program ; here is the place for your [Components] section and the rest of your script [Code] const UninstallKey = 'SoftwareMicrosoftWindowsCurrentVersionUninstall{#SetupSetting("AppId")}_is1'; function IsUpgrade: Boolean; var Value: string; begin Result := (RegQueryStringValue(HKLM,Value)) and (Value <> ''); end; procedure DisablePageControls(Page: TNewNotebookPage); var I: Integer; begin Page.Enabled := False; for I := 0 to Page.ControlCount - 1 do Page.Controls[I].Enabled := False; end; procedure InitializeWizard; begin if IsUpgrade then DisablePageControls(WizardForm.SelectComponentsPage); end; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |