【问题标题】:Is there a way to preserve the 'uninstall.exe' (prevent deletion of the file manually) from the install directory using NSIS有没有办法使用 NSIS 从安装目录中保留“uninstall.exe”(防止手动删除文件)
【发布时间】:2019-02-09 04:47:30
【问题描述】:

当用户从 Program Files 文件夹中手动删除 Uninstall.exe 文件时。然后从程序和功能中,如果用户尝试卸载,应用程序将从程序和功能中删除。但是包含文件和注册表项的 Installed 文件夹仍然存在。

那么,是否有任何选项可以隐藏文件 (uninstall.exe) 或设置权限以防止手动删除此文件?

【问题讨论】:

    标签: nsis


    【解决方案1】:

    是和不是。

    您可以将其设为隐藏文件,并且理论上可以将 ACL 设置为拒绝删除(卸载程序本身必须再次编辑 ACL 才能将其删除),但没有什么能阻止管理员删除文件如果他们真的想的话。

    Section
    SetOutPath "$InstDir"
    WriteUninstaller "$InstDir\un.exe"
    SetFileAttributes "$InstDir\un.exe" HIDDEN
    SectionEnd
    
    Section Uninstall
    Delete "$InstDir\un.exe"
    RMDir "$InstDir"
    SectionEnd
    

    【讨论】:

    • 感谢您提供的信息。在那种情况下,我们可以在从程序和功能卸载时弹出一个消息框吗?
    • 你的意思是,如果卸载程序丢失?
    • 是的,如果uninstaller.exe 丢失(或从程序文件夹中删除)并且当我们尝试从程序和功能中卸载应用程序时,我们可以弹出一个消息框吗?跨度>
    • 唯一的方法是卸载条目指向您的主应用程序:“myapp.exe /uninstall”,应用程序将检测卸载程序是否丢失。
    猜你喜欢
    • 1970-01-01
    • 2021-01-22
    • 2018-08-31
    • 1970-01-01
    • 2015-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多