2013-02-25 13 views
7

Ich habe dieses Problem: in den Installer-Abschnitten habe ich dies;nsis Deinstallationsprogramm entfernt keine Links

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 

und es funktioniert gut, ich habe das Symbol auf dem Desktop und das Symbol und das Deinstallationssymbol auf den Start \ Programme ... Baum

der Uninstaller Abschnitt ist wie folgt:

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

und der Desktop-Link wurde gelöscht, aber der andere Ordner mit den Links nicht .. irgendwelche Ideen?

der Ordner, in dem gespeichert ist, ist diese (ich bin auf Win 7 64 Bit):

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

Antwort

7

Haben Sie RequestExecutionLevel in Ihrem Skript haben? Ohne Windows könnte Windows einige compatibility hacks mit Ihren Verknüpfungen ausführen.

Wenn das nicht hilft, versuchen Sie Process Monitor, es fähig sein könnte etwas Licht auf die Frage ...

+0

thankyou zu vergießen! Ich habe den RequestExecutionLevel admin hinzugefügt und funktioniert nun ... auch wenn mein aktueller Benutzer Administrator ist .. danke – ghiboz

+2

Ich weiß nicht warum "RequestExecutionLevel admin" nicht für mich funktioniert, aber "SetShellVarContext all" tut ... – Sorayuki

+0

@Sorayuki Es sollte verhindern, dass die Kompatibilitätsbeilage eintritt, entfernt aber nicht die Kompatibilitätsverknüpfungen, die möglicherweise bereits existieren ... – Anders

Verwandte Themen