目前,我在默认选项页面上有一个复选框,如果它们不存在,则会创建一组注册表项:
[Tasks]
...
Name: myUrlHandler; Description: "Register myurl://"; GroupDescription: "Advanced Options:"
[Registry]
Root: HKCR; Subkey: "myurl"; Flags: createvalueifdoesntexist uninsdeletekeyifempty; Tasks: myUrlHandler
...
现在我想显示一个确认对话框,以防这些注册表项已经存在,无论用户是否想要覆盖它们。
我应该以什么方法显示确认对话框(对于静默安装应该是可隐藏的)以及如何访问此选项(不添加自己的页面)?
答案 0 :(得分:1)
使用NextButtonClick
event function和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;