如何从 NSIS 安装程序“刷新”Windows 7 开始菜单?
Posted
技术标签:
【中文标题】如何从 NSIS 安装程序“刷新”Windows 7 开始菜单?【英文标题】:How to "refresh" Windows 7 start menu from NSIS installer? 【发布时间】:2010-10-27 21:44:22 【问题描述】:我有一个在开始菜单中创建快捷方式的安装程序 (NSIS)。当我删除程序时,卸载会从以下位置删除文件夹:
C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\
不幸的是,该文件夹仍在开始菜单中。也许这只是刷新开始菜单的问题 - 但是如何从 NSIS 卸载程序中进行呢?
【问题讨论】:
【参考方案1】:Win7 可能和Vista 一样,在不告诉你的情况下将快捷方式复制/移动到所有用户的开始菜单。在您的脚本中使用 RequestExecutionLevel 来停止此操作。
见http://nsis.sourceforge.net/Shortcuts_removal_fails_on_Windows_Vista
【讨论】:
两个人在没有 cmets 的情况下否决了正确答案? Anders 可能是 SO 上知识最渊博的 NSIS 脚本编写者。 这可能是Win7的“抨击”。如果有人能给我一个很好的理由为什么 NSIS 得到这种待遇,我会编辑我的帖子。 "Win 7 糟透了..." 或者,也许,nsis 应该正确运行。基于 MSI 的安装程序没有这个问题... @Robert P:当然 MSI 没有这样的问题,因为它甚至不是可执行文件(真正的引擎是操作系统的一部分)这种愚蠢的行为是针对损坏的安装程序,因为我们没有一台时间机器,即使是 100% 工作的(较旧的)安装程序也会中断,因为他们的清单中没有所需的字符串。 MS 为所有安装程序打开了兼容性黑客,您必须选择退出。 (并且每个新版本的 Windows 的退出方法都会发生变化!) 再见,答案有偏见。不幸的是,我还不能以同样的方式擦洗 cmets……。【参考方案2】:我没有 Windows 7 的副本,所以我不能确定,但您确认您删除的文件夹是开始菜单中的实际文件夹(我假设它是因为您最初创建它)。
您可以在开始菜单中找到该文件夹,右键单击并打开它。
不过,这可能是一个愚蠢的建议。 :)
【讨论】:
开始菜单快捷方式指向 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\以上是关于如何从 NSIS 安装程序“刷新”Windows 7 开始菜单?的主要内容,如果未能解决你的问题,请参考以下文章
如何静默自动更新通过 NSIS 为所有用户/每台机器安装的电子应用程序?