【问题标题】:How to clear user's app data folders with Inno Setup?如何使用 Inno Setup 清除用户的应用数据文件夹?
【发布时间】:2011-01-28 13:22:40
【问题描述】:

当我使用 Inno Setup 卸载程序卸载我的应用程序时,在用户的 AppData 文件夹中创建的运行时文件仍然存在。可以去掉吗?

【问题讨论】:

    标签: windows-7 inno-setup appdata


    【解决方案1】:

    您可以创建一个 CurUninstallStepChanged 例程来执行您想要的任何自定义操作,例如在卸载期间删除系统上的文件。

    看看这个例子(来自this question):

    procedure CurUninstallStepChanged (CurUninstallStep: TUninstallStep);
    var
      mres : integer;
    begin
      case CurUninstallStep of
        usPostUninstall:
          begin
            mres := MsgBox('Do you want to delete saved files?', mbConfirmation, MB_YESNO or MB_DEFBUTTON2)
            if mres = IDYES then
              DelTree(ExpandConstant('{userdocs}\MyApp'), True, True, True);
          end;  
      end;
    end;
    

    【讨论】:

    • 但是管理员是否有权删除用户文件夹中的文件? (顺便说一句,很高兴在这里看到一个 Chapín)
    • @Jader Indeed 管理员有权删除系统上的任何文件。 (只需以提升的权限运行 cmd.exe 并自行测试)。我不确定的是,当安装程序由与启动安装/卸载操作的用户不同的用户以提升模式运行时,inno 句柄如何解析与用户相关的常量。如果要清除所有可能的 AppData 用户的文件,则无论如何都必须遍历 \users 下的所有文件夹,因此哪个用户启动了该操作并不重要。很高兴认识我是 Chapin,你知道 Chapinlandia 吗?
    • 我去过蒂卡尔 =) 我们从科潘开车过来,睡在弗洛雷斯。美景
    • @Jader Tikal 太棒了,太神奇了!很高兴知道你喜欢它。如果你再次接近,请告诉我......我会邀请你几个加仑;)
    • 当我在 TGU 拜访我的姐姐时,我会告诉你,它没有尽可能近,但至少它不是 6000 公里(我住的巴西)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-08
    • 2015-05-06
    • 2018-06-12
    • 2019-06-06
    • 1970-01-01
    相关资源
    最近更新 更多