更新现有安装时跳过页面
Skip pages when updating existing installation
如何让 InnoSetup 跳过许可协议页面以及询问用户是否要在已有安装的情况下创建桌面快捷方式的页面?我确实希望这些在初始安装时显示。
当该应用程序已安装后,我希望只需按下最少的按钮即可安装更新。无需让用户再次接受许可协议,或指定是否需要添加桌面快捷方式。我推出定期更新,并希望它尽可能不引人注目。
这是我的工作 - 这会跳过许可证页面和任务页面:
[Code]
function IsUpgrade: Boolean;
var
Value: string;
UninstallKey: string;
begin
UninstallKey := 'Software\Microsoft\Windows\CurrentVersion\Uninstall\' +
ExpandConstant('{#SetupSetting("AppId")}') + '_is1';
Result := (RegQueryStringValue(HKLM, UninstallKey, 'UninstallString', Value) or
RegQueryStringValue(HKCU, UninstallKey, 'UninstallString', Value)) and (Value <> '');
end;
function ShouldSkipPage(PageID: Integer): Boolean;
begin
if IsUpgrade then
begin
if PageID = wpLicense then
Result := true
end;
begin
if PageID = wpSelectTasks then
Result := true
end;
end;
如何让 InnoSetup 跳过许可协议页面以及询问用户是否要在已有安装的情况下创建桌面快捷方式的页面?我确实希望这些在初始安装时显示。
当该应用程序已安装后,我希望只需按下最少的按钮即可安装更新。无需让用户再次接受许可协议,或指定是否需要添加桌面快捷方式。我推出定期更新,并希望它尽可能不引人注目。
这是我的工作 - 这会跳过许可证页面和任务页面:
[Code]
function IsUpgrade: Boolean;
var
Value: string;
UninstallKey: string;
begin
UninstallKey := 'Software\Microsoft\Windows\CurrentVersion\Uninstall\' +
ExpandConstant('{#SetupSetting("AppId")}') + '_is1';
Result := (RegQueryStringValue(HKLM, UninstallKey, 'UninstallString', Value) or
RegQueryStringValue(HKCU, UninstallKey, 'UninstallString', Value)) and (Value <> '');
end;
function ShouldSkipPage(PageID: Integer): Boolean;
begin
if IsUpgrade then
begin
if PageID = wpLicense then
Result := true
end;
begin
if PageID = wpSelectTasks then
Result := true
end;
end;