2013-02-25 99 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