2013-02-25 104 views
7

我有这个问题: 在安装程序部分我有这个;nsis卸载程序不会删除链接

Section "Start Menu Shortcuts" 
    SetShellVarContext current 
    CreateDirectory "$SMPROGRAMS\myProgram" 
    CreateShortCut "$SMPROGRAMS\myProgram\myProgram.lnk" "$INSTDIR\myProgram.exe" 
    CreateShortCut "$SMPROGRAMS\myProgram\Uninstall myProgram.lnk" "$INSTDIR\myProgram-Uninstall.exe" 
SectionEnd 

Section "Desktop Shortcut" 
    SetShellVarContext current 
    CreateShortCut "$DESKTOP\myProgram.lnk" "$INSTDIR\myProgram.exe" 
SectionEnd 

,它工作正常,我有桌面和图标,再加上开始\程序卸载图标上的图标...树

卸载部分是这样的:

SetShellVarContext current 
Delete "$DESKTOP\myProgram.lnk" 
Delete "$SMPROGRAMS\myProgram\myProgram.lnk" 
Delete "$SMPROGRAMS\myProgram\Uninstall myProgram.lnk" 
RMDir "$SMPROGRAMS\myProgram" 

和桌面链接被删除,但其他文件夹与链接不是.. 有什么想法?

的存储位置的文件夹是这种(我是在Win 7 64位)

C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs 

回答

7

你有你的脚本RequestExecutionLevel?没有它,Windows可能会用你的快捷方式做一些compatibility hacks

如果不帮助,尝试Process Monitor,它也许能够揭示问题的一些轻......

+0

三江源!我已经添加了RequestExecutionLevel管理员,现在可以工作...还有,如果我的当前用户是管理员..谢谢 – ghiboz 2013-02-25 15:28:21

+2

我不知道为什么“RequestExecutionLevel管理员”不适合我,但是“SetShellVarContext all”会...... – Sorayuki 2015-06-30 13:21:38

+0

@Sorayuki它应该防止兼容垫片踢入,但不会删除可能已经存在的兼容性快捷方式... – Anders 2015-06-30 13:27:00