【问题标题】:Shared Shortcuts/Icons共享快捷方式/图标
【发布时间】:2014-08-13 12:27:09
【问题描述】:

我有几个带有共享文件的 inno 设置。使用“Sharedfile”标志,可以确保只有在不再使用它们时才会将它们卸载。

但是,这不适用于快捷方式或图标,因为它们在 inno 中被称为指向这些文件。即使目标文件没有被卸载,快捷方式总是会被删除。

那么我有什么遗漏吗?快捷方式的标志?

或者你有一些关于如何在代码中防止这种情况的起点?

非常感谢

【问题讨论】:

  • 没有这样的标志。我会为[Icons] 条目使用uninsneveruninstall 标志并编写一个代码来检查快捷方式目标文件是否存在,如果不存在,则删除快捷方式。我会在卸载后执行此操作。
  • 非常感谢您的快速回复。我试一试。顺便说一句,这不应该是默认设置吗?
  • 遗憾的是,图标没有被引用。

标签: inno-setup


【解决方案1】:

非常感谢 TLama,这似乎有效:

我使用“uninsneveruninstall”标志防止我的分片图标被卸载。
然后在pascal中,如果不手动删除快捷方式或文件夹,检查文件是否还存在:

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
    begin
        if CurUninstallStep = usPostUninstall then
            begin
                if (not(FileExists(ExpandConstant('{app}\executable1.exe')))) then DelTree(ExpandConstant('{group}\myfolder'), True, True, True);
                if (not(FileExists(ExpandConstant('{app}\executable2.exe')))) then DeleteFile(ExpandConstant('{group}\myShortcut.lnk');
            end;
    end;

我个人认为 inno setup 应该默认这样做,检查安装的快捷方式目标是否被引用计数并将此值用于快捷方式。

但无论如何,非常感谢你们,祝你们有美好的一天。

【讨论】:

  • 以更通用的方式,可以使用IShellLink 接口解析快捷路径。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-08
  • 1970-01-01
  • 2012-06-14
  • 1970-01-01
  • 2012-06-23
  • 2012-08-20
  • 1970-01-01
相关资源
最近更新 更多