在使用NSIS脚本写安装程序时,经常要在开始菜单创建一些应用程序或网页的快捷方式,在卸载脚本中要讲这些快捷方式删除。
删除快捷方式的指令如下:
Delete " $SMPROGRAMS\MyProgram\MyProgram.lnk"
但是,在Vista系统下运行卸载程序时,则不能将其删除。
最后终于找到原因:是运行权限不够。
只有获得管理员权限,才能删除该快捷方式。
下面是解决方案:
首先,在NSIS 脚本开始部分(在section与function的外面)添加 RequestExecutionLevel admin ;
其次,在需要删除快捷方式的脚本前面添加 SetShellVarContext all 就行了。