Inno Setup:确认任务(用户确认后覆盖注册表项)

Inno Setup: Confirm task (overwrite registry entry after user confirmation)

目前,我在默认选项页面上有一个复选框,如果它们尚不存在,会导致创建一组注册表项:

[Tasks]
...
Name: myUrlHandler; Description: "Register myurl://"; GroupDescription: "Advanced Options:"

[Registry]
Root: HKCR; Subkey: "myurl"; Flags: createvalueifdoesntexist uninsdeletekeyifempty; Tasks: myUrlHandler
...

现在我想显示一个确认对话框,以防这些注册表项已经存在,用户是否要覆盖它们。

我应该用什么方法显示确认对话框(对于静默安装应该是隐藏的)以及如何访问此选项(不添加自己的页面)?

使用NextButtonClick event function and Check parameter.

[Tasks]
Name: myUrlHandler; Description: "Register myurl"

[Registry]
Root: HKCR; Subkey: "myurl"; Check: CreateMyurlKeyCheck

[Code]

var
  CreateMyurlKey: Boolean;

function NextButtonClick(CurPageID: Integer): Boolean;
begin
  if CurPageID = wpSelectTasks then
  begin
    CreateMyurlKey := False;

    if IsTaskSelected('myUrlHandler') then
    begin
      Log('myUrlHandler task selected');

      if RegKeyExists(HKEY_CLASSES_ROOT, 'myurl') then
      begin
        Log('myurl key exists');

        if MsgBox('Overwrite key?', mbConfirmation, MB_YESNO) = IDYES then
        begin
          CreateMyurlKey := True;
        end;
      end
        else
      begin
        Log('myurl key does not exist');
        CreateMyurlKey := True;
      end;
    end
      else
    begin
      Log('myUrlHandler task not selected');
    end;
  end;

  Result := True;
end;

function CreateMyurlKeyCheck: Boolean;
begin
  Result := CreateMyurlKey;
end;