inno-setup – 如何配置Inno Setup卸载所有内容?

前端之家收集整理的这篇文章主要介绍了inno-setup – 如何配置Inno Setup卸载所有内容?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是Inno Setup的新手。卡住一个问题〜如何配置卸载工具来删除应用程序创建的所有文件文件夹,子文件夹,甚至新的文件/文件夹等(换句话说,应用程序和相关文件的100%删除)。

我在这里和他们的论坛上狩猎,并且空无一物。任何人都可以指出一个文件,常见问题等有关如何做到这一点?

UPDATE

感谢所有的反馈到目前为止(非常棒)。所以看起来我可以使用卸载部分中的{app} *。*指令来删除所有内容。也看起来每个人都建议反对它。所以现在的问题变成了(我想知道这是否应该是一个全新的问题)卸载期间有没有办法让用户删除与这个应用程序相关联的所有项目文件?如果他们回答YES,请运行卸载{app} *。* piece?

谢谢 –

解决方法

你应该可以将这个全新的问题提交给我,但是我也会在这里回答你最新的问题。看看Inno安装文档中的“Pascal Scripting:Uninstall Code”一节。

举例说明如何有条件地删除数据文件作为卸载过程的一部分:

[Code]

procedure DeleteBitmaps(ADirName: string);
var
  FindRec: TFindRec;
begin
  if FindFirst(ADirName + '\*.*',FindRec) then begin
    try
      repeat
        if FindRec.Attributes and FILE_ATTRIBUTE_DIRECTORY <> 0 then begin
          if (FindRec.Name <> '.') and (FindRec.Name <> '..') then begin
            DeleteBitmaps(ADirName + '\' + FindRec.Name);
            RemoveDir(ADirName + '\' + FindRec.Name);
          end;
        end else if Pos('.bmp',AnsiLowerCase(FindRec.Name)) > 0 then
          DeleteFile(ADirName + '\' + FindRec.Name);
      until not FindNext(FindRec);
    finally
      FindClose(FindRec);
    end;
  end;
end;

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
  if CurUninstallStep = usUninstall then begin
    if MsgBox('Do you want to delete all data files?',mbConfirmation,MB_YESNO) = IDYES 
    then begin
      DeleteBitmaps(ExpandConstant('{app}'));
    end;
  end;
end;

但是,根据您需要清理的东西的数量,您可能会更好地创建一个作为安装一部分的特殊帮助程序,并且可以在卸载应用程序期间执行(使用[UninstallRun]中的条目)部分)。

猜你在找的Delphi相关文章