2013-02-25 9 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" 

デスクトップリンクは削除されましたが、リンクがない他のフォルダは.. アイデアはありますか?

保存されているフォルダがあり、この(私は7 64ビット勝利によ)

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

答えて

7

あなたのスクリプトでRequestExecutionLevelを持っていますか?それがなければ、Windowsはあなたのショートカットと一緒にcompatibility hacksを行うかもしれません。

それが解決しない場合、問題にいくつかの光を当てることができるかもしれない、Process Monitorを試してみてください...

+0

ありがとう!私はRequestExecutionLevelの管理者を追加して、今でも働いています...もし私の現在のユーザーが管理者であれば..ありがとう – ghiboz

+2

"RequestExecutionLevel admin"が私にとってはうまくいかず、 "SetShellVarContext all"の理由はわかりません... – Sorayuki

+0

@Sorayuki互換性シムが蹴られるのを防ぐべきですが、すでに存在する可能性のある互換性ショートカットは削除されません... – Anders

関連する問題