2017-03-15 17 views
1

私は会社向けのアプリを開発中です。アプリがアンインストールされている場合は、タスクバーに固定されているとアプリをアンピンする必要があります。 quicklaunch \ user pinned \ taskbarからアイコンを削除すると、タスクバーに空白のアイコンが表示されます。nsis - アンインストール時にタスクバーから固定アイコンを削除する

私は何とか実際にそれを固定解除する必要があります。私が遭遇した唯一の事プラグイン(http://nsis.sourceforge.net/WinShell_plug-in)をwinshellインストールし、その後IStartMenuPinnedListを呼び出している:: RemoveFromList(https://msdn.microsoft.com/en-us/library/windows/desktop/bb774817(v=vs.85).aspx

私はする必要がない場合、私はむしろプラグインをインストールしていないと思います。誰にも何か提案はありますか?

答えて

2

NSISはこのインターフェイスをネイティブサポートしていないため、プラグインを使用する必要があります。サードパーティのプラグイン(私が書いたもの)を避けたい場合は、代わりにSystemプラグインを使用できます。

!include "LogicLib.nsh" 
!include "Win\COM.nsh" ; NSIS v3+ 

!macro UnpinShortcut lnkpath 
Push $0 
Push $1 
!insertmacro ComHlpr_CreateInProcInstance ${CLSID_StartMenuPin} ${IID_IStartMenuPinnedList} r0 "" 
${If} $0 P<> 0 
    System::Call 'SHELL32::SHCreateItemFromParsingName(ws, p0, g "${IID_IShellItem}", *p0r1)' "${lnkpath}" 
    ${If} $1 P<> 0 
     ${IStartMenuPinnedList::RemoveFromList} $0 '(r1)' 
     ${IUnknown::Release} $1 "" 
    ${EndIf} 
    ${IUnknown::Release} $0 "" 
${EndIf} 
Pop $1 
Pop $0 
!macroend 

Section Uninstall 
!insertmacro UnpinShortcut "$SMPrograms\MyApp.lnk" 
Delete "$SMPrograms\MyApp.lnk" 
SectionEnd 
関連する問題