我是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]中的条目)部分)。