mirror of
https://github.com/notepad-plus-plus/notepad-plus-plus.git
synced 2025-07-08 14:34:44 +02:00
Windows 11 has its new interface for its explorer context menu. It makes the old "Edit with Notepad++" command hardly accessible. This commit improves the accessibility and also fix issue of run as an administrator (Properties set in Compatibility) in the new context menu command. It fixes also the context menu command issue under ARM64 architecture (fixed only under Windows 11). The localization of "Edit with Notepad++" is also possible in this commit. Note that if the command place of "Edit with Notepad++" context menu command is taken by other application ("\HKEY_CLASSES_ROOT*\shell\pintohome"), the new context menu "Edit with Notepad++" won't be installed. User should install it him/herself. Fix #10320, fix #10565, fix #4368, fix #8786, fix #10320, fix #10640, fix #10856, fix #10653, fix #7747, fix #6169, fix #92, close #13170
399 lines
15 KiB
NSIS
399 lines
15 KiB
NSIS
; This file is part of Notepad++ project
|
|
; Copyright (C)2021 Don HO <don.h@free.fr>
|
|
;
|
|
; This program is free software: you can redistribute it and/or modify
|
|
; it under the terms of the GNU General Public License as published by
|
|
; the Free Software Foundation, either version 3 of the License, or
|
|
; at your option any later version.
|
|
;
|
|
; This program is distributed in the hope that it will be useful,
|
|
; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
; GNU General Public License for more details.
|
|
;
|
|
; You should have received a copy of the GNU General Public License
|
|
; along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
Var UPDATE_PATH
|
|
Var PLUGIN_INST_PATH
|
|
Var USER_PLUGIN_CONF_PATH
|
|
Var ALLUSERS_PLUGIN_CONF_PATH
|
|
Function setPathAndOptions
|
|
${If} $UPDATE_PATH == ""
|
|
${OrIf} $PLUGIN_INST_PATH == ""
|
|
${OrIf} $USER_PLUGIN_CONF_PATH == ""
|
|
${OrIf} $ALLUSERS_PLUGIN_CONF_PATH == ""
|
|
Goto initUpdatePath
|
|
${ELSE}
|
|
Goto alreadyDone
|
|
${EndIf}
|
|
|
|
initUpdatePath:
|
|
|
|
; Set Section properties
|
|
SetOverwrite on
|
|
StrCpy $UPDATE_PATH $INSTDIR
|
|
|
|
SetOutPath "$INSTDIR\"
|
|
|
|
StrCpy $PLUGIN_INST_PATH "$INSTDIR\plugins"
|
|
StrCpy $ALLUSERS_PLUGIN_CONF_PATH "$PLUGIN_INST_PATH\Config"
|
|
|
|
${If} $noUserDataChecked == ${BST_CHECKED}
|
|
|
|
File "..\bin\doLocalConf.xml"
|
|
StrCpy $USER_PLUGIN_CONF_PATH "$ALLUSERS_PLUGIN_CONF_PATH"
|
|
CreateDirectory $PLUGIN_INST_PATH\config
|
|
${ELSE}
|
|
|
|
IfFileExists $INSTDIR\doLocalConf.xml 0 +2
|
|
Delete $INSTDIR\doLocalConf.xml
|
|
|
|
StrCpy $USER_PLUGIN_CONF_PATH "$APPDATA\${APPNAME}\plugins\Config"
|
|
StrCpy $UPDATE_PATH "$APPDATA\${APPNAME}"
|
|
CreateDirectory $UPDATE_PATH\plugins\config
|
|
${EndIf}
|
|
|
|
; WriteIniStr "$INSTDIR\uninstall.ini" "Uninstall" "UPDATE_PATH" $UPDATE_PATH
|
|
; WriteIniStr "$INSTDIR\uninstall.ini" "Uninstall" "PLUGIN_INST_PATH" $PLUGIN_INST_PATH
|
|
; WriteIniStr "$INSTDIR\uninstall.ini" "Uninstall" "USER_PLUGIN_CONF_PATH" $USER_PLUGIN_CONF_PATH
|
|
; WriteIniStr "$INSTDIR\uninstall.ini" "Uninstall" "ALLUSERS_PLUGIN_CONF_PATH" $ALLUSERS_PLUGIN_CONF_PATH
|
|
|
|
alreadyDone:
|
|
FunctionEnd
|
|
|
|
Function un.setPathAndOptions
|
|
ReadINIStr $UPDATE_PATH "$INSTDIR\uninstall.ini" "Uninstall" "UPDATE_PATH"
|
|
ReadINIStr $PLUGIN_INST_PATH "$INSTDIR\uninstall.ini" "Uninstall" "PLUGIN_INST_PATH"
|
|
ReadINIStr $USER_PLUGIN_CONF_PATH "$INSTDIR\uninstall.ini" "Uninstall" "USER_PLUGIN_CONF_PATH"
|
|
ReadINIStr $ALLUSERS_PLUGIN_CONF_PATH "$INSTDIR\uninstall.ini" "Uninstall" "ALLUSERS_PLUGIN_CONF_PATH"
|
|
FunctionEnd
|
|
|
|
|
|
Function copyCommonFiles
|
|
SetOverwrite off
|
|
SetOutPath "$UPDATE_PATH\"
|
|
File "..\bin\contextMenu.xml"
|
|
File "..\src\tabContextMenu_example.xml"
|
|
File "..\src\toolbarIcons.xml"
|
|
|
|
SetOverwrite on
|
|
SetOutPath "$INSTDIR\"
|
|
File "..\bin\langs.model.xml"
|
|
File "..\bin\stylers.model.xml"
|
|
File "..\bin\contextMenu.xml"
|
|
|
|
SetOverwrite off
|
|
File "..\bin\shortcuts.xml"
|
|
|
|
; For debug logs
|
|
File "..\bin\nppLogNulContentCorruptionIssue.xml"
|
|
|
|
|
|
; Set Section Files and Shortcuts
|
|
SetOverwrite on
|
|
File "..\..\LICENSE"
|
|
File "..\bin\change.log"
|
|
File "..\bin\readme.txt"
|
|
|
|
!ifdef ARCH64
|
|
File "..\bin64\notepad++.exe"
|
|
!else ifdef ARCHARM64
|
|
File "..\binarm64\notepad++.exe"
|
|
!else
|
|
File "..\bin\notepad++.exe"
|
|
!endif
|
|
|
|
; Markdown in user defined languages
|
|
SetOutPath "$UPDATE_PATH\userDefineLangs\"
|
|
Delete "$UPDATE_PATH\userDefineLangs\userDefinedLang-markdown.default.modern.xml"
|
|
File "..\bin\userDefineLangs\markdown._preinstalled.udl.xml"
|
|
File "..\bin\userDefineLangs\markdown._preinstalled_DM.udl.xml"
|
|
|
|
; Localization
|
|
; Default language English
|
|
SetOutPath "$INSTDIR\localization\"
|
|
File ".\nativeLang\english.xml"
|
|
|
|
; Copy all the Notepad++ localization files to the temp directory
|
|
; than make them installed via option
|
|
SetOutPath "$PLUGINSDIR\nppLocalization\"
|
|
File ".\nativeLang\"
|
|
|
|
IfFileExists "$UPDATE_PATH\nativeLang.xml" 0 +2
|
|
Delete "$UPDATE_PATH\nativeLang.xml"
|
|
|
|
IfFileExists "$INSTDIR\nativeLang.xml" 0 +2
|
|
Delete "$INSTDIR\nativeLang.xml"
|
|
|
|
StrCmp $LANGUAGE ${LANG_ENGLISH} +5 0
|
|
CopyFiles "$PLUGINSDIR\nppLocalization\$(langFileName)" "$UPDATE_PATH\nativeLang.xml"
|
|
CopyFiles "$PLUGINSDIR\nppLocalization\$(langFileName)" "$INSTDIR\localization\$(langFileName)"
|
|
IfFileExists "$PLUGINSDIR\gupLocalization\$(langFileName)" 0 +2
|
|
CopyFiles "$PLUGINSDIR\gupLocalization\$(langFileName)" "$INSTDIR\updater\nativeLang.xml"
|
|
|
|
FunctionEnd
|
|
|
|
; Source from: https://nsis.sourceforge.io/VersionCompare
|
|
Function VersionCompare
|
|
!define VersionCompare `!insertmacro VersionCompareCall`
|
|
|
|
!macro VersionCompareCall _VER1 _VER2 _RESULT
|
|
Push `${_VER1}`
|
|
Push `${_VER2}`
|
|
Call VersionCompare
|
|
Pop ${_RESULT}
|
|
!macroend
|
|
|
|
Exch $1
|
|
Exch
|
|
Exch $0
|
|
Exch
|
|
Push $2
|
|
Push $3
|
|
Push $4
|
|
Push $5
|
|
Push $6
|
|
Push $7
|
|
|
|
begin:
|
|
StrCpy $2 -1
|
|
IntOp $2 $2 + 1
|
|
StrCpy $3 $0 1 $2
|
|
StrCmp $3 '' +2
|
|
StrCmp $3 '.' 0 -3
|
|
StrCpy $4 $0 $2
|
|
IntOp $2 $2 + 1
|
|
StrCpy $0 $0 '' $2
|
|
|
|
StrCpy $2 -1
|
|
IntOp $2 $2 + 1
|
|
StrCpy $3 $1 1 $2
|
|
StrCmp $3 '' +2
|
|
StrCmp $3 '.' 0 -3
|
|
StrCpy $5 $1 $2
|
|
IntOp $2 $2 + 1
|
|
StrCpy $1 $1 '' $2
|
|
|
|
StrCmp $4$5 '' equal
|
|
|
|
StrCpy $6 -1
|
|
IntOp $6 $6 + 1
|
|
StrCpy $3 $4 1 $6
|
|
StrCmp $3 '0' -2
|
|
StrCmp $3 '' 0 +2
|
|
StrCpy $4 0
|
|
|
|
StrCpy $7 -1
|
|
IntOp $7 $7 + 1
|
|
StrCpy $3 $5 1 $7
|
|
StrCmp $3 '0' -2
|
|
StrCmp $3 '' 0 +2
|
|
StrCpy $5 0
|
|
|
|
StrCmp $4 0 0 +2
|
|
StrCmp $5 0 begin newer2
|
|
StrCmp $5 0 newer1
|
|
IntCmp $6 $7 0 newer1 newer2
|
|
|
|
StrCpy $4 '1$4'
|
|
StrCpy $5 '1$5'
|
|
IntCmp $4 $5 begin newer2 newer1
|
|
|
|
equal:
|
|
StrCpy $0 0
|
|
goto end
|
|
newer1:
|
|
StrCpy $0 1
|
|
goto end
|
|
newer2:
|
|
StrCpy $0 2
|
|
|
|
end:
|
|
Pop $7
|
|
Pop $6
|
|
Pop $5
|
|
Pop $4
|
|
Pop $3
|
|
Pop $2
|
|
Pop $1
|
|
Exch $0
|
|
FunctionEnd
|
|
|
|
Function removeUnstablePlugins
|
|
; remove unstable plugins
|
|
CreateDirectory "$INSTDIR\plugins\disabled"
|
|
|
|
; NppSaveAsAdmin makes Notepad++ crash. "1.0.211.0" is its 1st version which contains the fix
|
|
IfFileExists "$INSTDIR\plugins\NppSaveAsAdmin\NppSaveAsAdmin.dll" 0 NppSaveAsAdminTestEnd
|
|
${GetFileVersion} "$INSTDIR\plugins\NppSaveAsAdmin\NppSaveAsAdmin.dll" $R0
|
|
${VersionCompare} $R0 "1.0.211.0" $R1 ; 0: equal to 1.0.211.0 1: $R0 is newer 2: 1.0.211.0 is newer
|
|
StrCmp $R1 "0" +5 0 ; if equal skip all & go to end, else go to next
|
|
StrCmp $R1 "1" +4 0 ; if newer skip all & go to end, else older (2) then go to next
|
|
MessageBox MB_OK "Due to NppSaveAsAdmin plugin's incompatibility issue in version $R0, NppSaveAsAdmin.dll will be deleted. Use Plugins Admin to add back (the latest version of) NppSaveAsAdmin." /SD IDOK
|
|
Rename "$INSTDIR\plugins\NppSaveAsAdmin\NppSaveAsAdmin.dll" "$INSTDIR\plugins\disabled\NppSaveAsAdmin.dll"
|
|
Delete "$INSTDIR\plugins\NppSaveAsAdmin\NppSaveAsAdmin.dll"
|
|
NppSaveAsAdminTestEnd:
|
|
|
|
!ifdef ARCH64 || ARCHARM64 ; x64 or ARM64
|
|
|
|
; HexEditor makes Notepad++ x64 crash. "0.9.12" is its 1st version which contains the fix
|
|
IfFileExists "$INSTDIR\plugins\HexEditor\HexEditor.dll" 0 HexEditorTestEnd64
|
|
${GetFileVersion} "$INSTDIR\plugins\HexEditor\HexEditor.dll" $R0
|
|
${VersionCompare} $R0 "0.9.12" $R1 ; 0: equal to 0.9.12 1: $R0 is newer 2: 0.9.12 is newer
|
|
StrCmp $R1 "0" +5 0 ; if equal skip all & go to end, else go to next
|
|
StrCmp $R1 "1" +4 0 ; if newer skip all & go to end, else older (2) then go to next
|
|
MessageBox MB_OK "Due to HexEditor plugin's incompatibility issue in version $R0, HexEditor.dll will be deleted. Use Plugins Admin to add back (the latest version of) HexEditor." /SD IDOK
|
|
Rename "$INSTDIR\plugins\HexEditor\HexEditor.dll" "$INSTDIR\plugins\disabled\HexEditor.dll"
|
|
Delete "$INSTDIR\plugins\HexEditor\HexEditor.dll"
|
|
HexEditorTestEnd64:
|
|
|
|
; ComparePlugin makes Notepad++ x64 crash. "2.0.2" is its 1st version which contains the fix
|
|
IfFileExists "$INSTDIR\plugins\ComparePlugin\ComparePlugin.dll" 0 CompareTestEnd64
|
|
${GetFileVersion} "$INSTDIR\plugins\ComparePlugin\ComparePlugin.dll" $R0
|
|
${VersionCompare} $R0 "2.0.2" $R1 ; 0: equal to 2.0.2 1: $R0 is newer 2: 2.0.2 is newer
|
|
StrCmp $R1 "0" +5 0 ; if equal skip all & go to end, else go to next
|
|
StrCmp $R1 "1" +4 0 ; if newer skip all & go to end, else older (2) then go to next
|
|
MessageBox MB_OK "Due to ComparePlugin plugin's incompatibility issue in version $R0, ComparePlugin.dll will be deleted. Use Plugins Admin to add back (the latest version of) ComparePlugin." /SD IDOK
|
|
Rename "$INSTDIR\plugins\ComparePlugin\ComparePlugin.dll" "$INSTDIR\plugins\disabled\ComparePlugin.dll"
|
|
Delete "$INSTDIR\plugins\ComparePlugin\ComparePlugin.dll"
|
|
CompareTestEnd64:
|
|
|
|
; DSpellCheck makes Notepad++ x64 crash. "1.4.23" is its 1st version which contains the fix
|
|
IfFileExists "$INSTDIR\plugins\DSpellCheck\DSpellCheck.dll" 0 DSpellCheckTestEnd64
|
|
${GetFileVersion} "$INSTDIR\plugins\DSpellCheck\DSpellCheck.dll" $R0
|
|
${VersionCompare} $R0 "1.4.23" $R1 ; 0: equal to 1.4.23 1: $R0 is newer 2: 1.4.23 is newer
|
|
StrCmp $R1 "0" +5 0 ; if equal skip all & go to end, else go to next
|
|
StrCmp $R1 "1" +4 0 ; if newer skip all & go to end, else older (2) then go to next
|
|
MessageBox MB_OK "Due to DSpellCheck plugin's incompatibility issue in version $R0, DSpellCheck.dll will be deleted. Use Plugins Admin to add back (the latest version of) DSpellCheck." /SD IDOK
|
|
Rename "$INSTDIR\plugins\DSpellCheck\DSpellCheck.dll" "$INSTDIR\plugins\disabled\DSpellCheck.dll"
|
|
Delete "$INSTDIR\plugins\DSpellCheck\DSpellCheck.dll"
|
|
DSpellCheckTestEnd64:
|
|
|
|
; SpeechPlugin makes Notepad++ x64 crash. "0.4.0.0" is its 1st version which contains the fix
|
|
IfFileExists "$INSTDIR\plugins\SpeechPlugin\SpeechPlugin.dll" 0 SpeechPluginTestEnd64
|
|
${GetFileVersion} "$INSTDIR\plugins\SpeechPlugin\SpeechPlugin.dll" $R0
|
|
${VersionCompare} $R0 "0.4.0.0" $R1 ; 0: equal to 0.4.0.0 1: $R0 is newer 2: 0.4.0.0 is newer
|
|
StrCmp $R1 "0" +5 0 ; if equal skip all & go to end, else go to next
|
|
StrCmp $R1 "1" +4 0 ; if newer skip all & go to end, else older (2) then go to next
|
|
MessageBox MB_OK "Due to SpeechPlugin plugin's incompatibility issue in version $R0, SpeechPlugin.dll will be deleted. Use Plugins Admin to add back (the latest version of) SpeechPlugin." /SD IDOK
|
|
Rename "$INSTDIR\plugins\SpeechPlugin\SpeechPlugin.dll" "$INSTDIR\plugins\disabled\SpeechPlugin.dll"
|
|
Delete "$INSTDIR\plugins\SpeechPlugin\SpeechPlugin.dll"
|
|
SpeechPluginTestEnd64:
|
|
|
|
; XMLTools makes Notepad++ x64 crash. "3.1.1.12" is its 1st version which contains the fix
|
|
IfFileExists "$INSTDIR\plugins\XMLTools\XMLTools.dll" 0 XMLToolsTestEnd64
|
|
${GetFileVersion} "$INSTDIR\plugins\XMLTools\XMLTools.dll" $R0
|
|
${VersionCompare} $R0 "3.1.1.12" $R1 ; 0: equal to 3.1.1.12 1: $R0 is newer 2: 3.1.1.12 is newer
|
|
StrCmp $R1 "0" +5 0 ; if equal skip all & go to end, else go to next
|
|
StrCmp $R1 "1" +4 0 ; if newer skip all & go to end, else older (2) then go to next
|
|
MessageBox MB_OK "Due to XMLTools plugin's incompatibility issue in version $R0, XMLTools.dll will be deleted. Use Plugins Admin to add back (the latest version of) XMLTools." /SD IDOK
|
|
Rename "$INSTDIR\plugins\XMLTools\XMLTools.dll" "$INSTDIR\plugins\disabled\XMLTools.dll"
|
|
Delete "$INSTDIR\plugins\XMLTools\XMLTools.dll"
|
|
XMLToolsTestEnd64:
|
|
|
|
; NppTaskList makes Notepad++ x64 crash. "2.4" is its 1st version which contains the fix
|
|
IfFileExists "$INSTDIR\plugins\NppTaskList\NppTaskList.dll" 0 NppTaskListTestEnd64
|
|
${GetFileVersion} "$INSTDIR\plugins\NppTaskList\NppTaskList.dll" $R0
|
|
${VersionCompare} $R0 "2.4" $R1 ; 0: equal to 2.4 1: $R0 is newer 2: 2.4 is newer
|
|
StrCmp $R1 "0" +5 0 ; if equal skip all & go to end, else go to next
|
|
StrCmp $R1 "1" +4 0 ; if newer skip all & go to end, else older (2) then go to next
|
|
MessageBox MB_OK "Due to NppTaskList plugin's incompatibility issue in version $R0, NppTaskList.dll will be deleted. Use Plugins Admin to add back (the latest version of) NppTaskList." /SD IDOK
|
|
Rename "$INSTDIR\plugins\NppTaskList\NppTaskList.dll" "$INSTDIR\plugins\disabled\NppTaskList.dll"
|
|
Delete "$INSTDIR\plugins\NppTaskList\NppTaskList.dll"
|
|
NppTaskListTestEnd64:
|
|
|
|
; jN makes Notepad++ x64 crash. "2.2.185.7" is its 1st version which contains the fix
|
|
IfFileExists "$INSTDIR\plugins\jN\jN.dll" 0 jN64
|
|
${GetFileVersion} "$INSTDIR\plugins\jN\jN.dll" $R0
|
|
${VersionCompare} $R0 "2.2.185.7" $R1 ; 0: equal to 2.2.185.7 1: $R0 is newer 2: 2.4 is newer
|
|
StrCmp $R1 "0" +5 0 ; if equal skip all & go to end, else go to next
|
|
StrCmp $R1 "1" +4 0 ; if newer skip all & go to end, else older (2) then go to next
|
|
MessageBox MB_OK "Due to jN plugin's incompatibility issue in version $R0, jN.dll will be deleted. Use Plugins Admin to add back (the latest version of) jN." /SD IDOK
|
|
Rename "$INSTDIR\plugins\jN\jN.dll" "$INSTDIR\plugins\disabled\jN.dll"
|
|
Delete "$INSTDIR\plugins\jN\jN.dll"
|
|
jN64:
|
|
|
|
|
|
IfFileExists "$INSTDIR\plugins\NppQCP\NppQCP.dll" 0 NppQCPTestEnd64
|
|
MessageBox MB_OK "Due to NppQCP plugin's crash issue on Notepad++ x64 binary, NppQCP.dll will be removed." /SD IDOK
|
|
Rename "$INSTDIR\plugins\NppQCP\NppQCP.dll" "$INSTDIR\plugins\disabled\NppQCP.dll"
|
|
Delete "$INSTDIR\plugins\NppQCP\NppQCP.dll"
|
|
NppQCPTestEnd64:
|
|
|
|
|
|
!else ; 32-bit installer
|
|
|
|
; https://github.com/chcg/NPP_HexEdit/issues/51
|
|
IfFileExists "$INSTDIR\plugins\HexEditor\HexEditor.dll" 0 noDeleteHEPlugin32
|
|
MessageBox MB_YESNO "HexEditor plugin is unstable, we suggest you to remove it.$\nRemove HexEditor plugin?" /SD IDYES IDYES doDeleteHEPlugin32 IDNO noDeleteHEPlugin32 ;IDYES remove
|
|
doDeleteHEPlugin32:
|
|
Rename "$INSTDIR\plugins\HexEditor\HexEditor.dll" "$INSTDIR\plugins\disabled\HexEditor.dll"
|
|
Delete "$INSTDIR\plugins\HexEditor\HexEditor.dll"
|
|
noDeleteHEPlugin32:
|
|
|
|
!endif
|
|
|
|
FunctionEnd
|
|
|
|
Function removeOldContextMenu
|
|
; Context Menu Management : removing old version of Context Menu module
|
|
IfFileExists "$INSTDIR\nppcm.dll" 0 +3
|
|
Exec 'regsvr32 /u /s "$INSTDIR\nppcm.dll"'
|
|
Delete "$INSTDIR\nppcm.dll"
|
|
|
|
IfFileExists "$INSTDIR\NppShell.dll" 0 +3
|
|
Exec 'regsvr32 /u /s "$INSTDIR\NppShell.dll"'
|
|
Delete "$INSTDIR\NppShell.dll"
|
|
|
|
IfFileExists "$INSTDIR\NppShell_01.dll" 0 +3
|
|
Exec 'regsvr32 /u /s "$INSTDIR\NppShell_01.dll"'
|
|
Delete "$INSTDIR\NppShell_01.dll"
|
|
|
|
IfFileExists "$INSTDIR\NppShell_02.dll" 0 +3
|
|
Exec 'regsvr32 /u /s "$INSTDIR\NppShell_02.dll"'
|
|
Delete "$INSTDIR\NppShell_02.dll"
|
|
|
|
IfFileExists "$INSTDIR\NppShell_03.dll" 0 +3
|
|
Exec 'regsvr32 /u /s "$INSTDIR\NppShell_03.dll"'
|
|
Delete "$INSTDIR\NppShell_03.dll"
|
|
|
|
IfFileExists "$INSTDIR\NppShell_04.dll" 0 +3
|
|
Exec 'regsvr32 /u /s "$INSTDIR\NppShell_04.dll"'
|
|
Delete "$INSTDIR\NppShell_04.dll"
|
|
|
|
IfFileExists "$INSTDIR\NppShell_05.dll" 0 +3
|
|
Exec 'regsvr32 /u /s "$INSTDIR\NppShell_05.dll"'
|
|
Delete "$INSTDIR\NppShell_05.dll"
|
|
FunctionEnd
|
|
|
|
Function shortcutLinkManagement
|
|
; remove all the npp shortcuts from current user
|
|
Delete "$DESKTOP\Notepad++.lnk"
|
|
Delete "$SMPROGRAMS\Notepad++.lnk"
|
|
Delete "$SMPROGRAMS\${APPNAME}\Notepad++.lnk"
|
|
Delete "$SMPROGRAMS\${APPNAME}\readme.lnk"
|
|
Delete "$SMPROGRAMS\${APPNAME}\Uninstall.lnk"
|
|
RMDir "$SMPROGRAMS\${APPNAME}"
|
|
|
|
; detect the right of
|
|
UserInfo::GetAccountType
|
|
Pop $1
|
|
StrCmp $1 "Admin" 0 +2
|
|
SetShellVarContext all
|
|
|
|
; set the shortcuts working directory
|
|
; http://nsis.sourceforge.net/Docs/Chapter4.html#createshortcut
|
|
SetOutPath "$INSTDIR\"
|
|
|
|
; add all the npp shortcuts for all user or current user
|
|
CreateShortCut "$SMPROGRAMS\Notepad++.lnk" "$INSTDIR\notepad++.exe"
|
|
${If} $createShortcutChecked == ${BST_CHECKED}
|
|
CreateShortCut "$DESKTOP\Notepad++.lnk" "$INSTDIR\notepad++.exe"
|
|
${EndIf}
|
|
|
|
SetShellVarContext current
|
|
FunctionEnd
|
|
|
|
|