2011-02-16 296 views
2

我想刪除應用程序卸載時的Startmenu\XXX文件夾和Program Files\XXX菜單。NSIS:卸載時刪除文件夾

嘗試RMDir /r但這不適用於我。 (Windows 7)

+0

您可以發佈您的代碼嗎? – Anders 2011-02-16 12:37:20

回答

3

這裏是您的解決方案: 添加「SetShellVarContext所有」

http://nsis.sourceforge.net/Shortcuts_removal_fails_on_Windows_Vista

示例代碼:

OutFile Win7.exe 
Name Win7 

Section 
    SetShellVarContext all 
    CreateDirectory "$SMPROGRAMS\Win7 Testing" 
    CreateShortcut "$SMPROGRAMS\Win7 Testing\win7test.lnk" "$WINDIR\notepad.exe" 
    WriteUninstaller "$EXEDIR\uninst.exe" 
SectionEnd 

Section uninstall 
    SetShellVarContext all 
    Delete "$SMPROGRAMS\Win7 Testing\win7test.lnk" 
    RMDir "$SMPROGRAMS\Win7 Testing" 
SectionEnd 

-joedf

2

偶爾的Windows不會讓你刪除的文件夾時,它仍然在使用。解決方案是在下一次系統重啓時將文件夾(和/或文件)標記爲刪除。爲此,使用標誌/ REBOOTOK

對於文件:

Delete /REBOOTOK "<filename>" 

對於文件夾

RMDir /R /REBOOTOK directoryname 

下次重新啓動後,文件/文件夾都將被刪除。

另請參閱:http://nsis.sourceforge.net/Reference/RMDir