2013-02-25 19 views
7

Mam ten problem: w sekcjach instalatora Mam to;deinstalator nsis nie usuwa odnośników

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 

i działa dobrze, mam na ikonę na pulpicie, a ikona plus ikonę odinstalowywania programów na początek \ ... drzewo

sekcja Uninstaller jest tak:

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

i link na pulpicie został usunięty, ale drugi folder z linkami nie .. jakieś pomysły?

folder, w którym jest przechowywany jest to (jestem na Win 7 64 bity):

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

Odpowiedz

7

Czy masz RequestExecutionLevel w skrypcie? Bez niego system Windows może zrobić około compatibility hacks ze swoimi skrótami.

Jeśli to nie pomoże, spróbuj Process Monitor, może być w stanie rzucić światło na problem ...

+0

Dziękuje! dodałem administratora RequestExecutionLevel i teraz działa ... także, jeśli mój bieżący użytkownik jest administratorem .. dzięki – ghiboz

+2

Nie wiem, dlaczego "Administrator RequestExecutionLevel" nie działa dla mnie, ale "SetShellVarContext all" ma ... – Sorayuki

+0

@Sorayuki To powinno zapobiegać kopiowaniu kompatybilności, ale nie usuwa skrótów kompatybilności, które mogą już istnieć ... – Anders