【发布时间】:2019-02-09 04:47:30
【问题描述】:
当用户从 Program Files 文件夹中手动删除 Uninstall.exe 文件时。然后从程序和功能中,如果用户尝试卸载,应用程序将从程序和功能中删除。但是包含文件和注册表项的 Installed 文件夹仍然存在。
那么,是否有任何选项可以隐藏文件 (uninstall.exe) 或设置权限以防止手动删除此文件?
【问题讨论】:
标签: nsis
当用户从 Program Files 文件夹中手动删除 Uninstall.exe 文件时。然后从程序和功能中,如果用户尝试卸载,应用程序将从程序和功能中删除。但是包含文件和注册表项的 Installed 文件夹仍然存在。
那么,是否有任何选项可以隐藏文件 (uninstall.exe) 或设置权限以防止手动删除此文件?
【问题讨论】:
标签: nsis
是和不是。
您可以将其设为隐藏文件,并且理论上可以将 ACL 设置为拒绝删除(卸载程序本身必须再次编辑 ACL 才能将其删除),但没有什么能阻止管理员删除文件如果他们真的想的话。
Section
SetOutPath "$InstDir"
WriteUninstaller "$InstDir\un.exe"
SetFileAttributes "$InstDir\un.exe" HIDDEN
SectionEnd
Section Uninstall
Delete "$InstDir\un.exe"
RMDir "$InstDir"
SectionEnd
【讨论】: