Don't open change.log everytime
This bug is reproduced that user is pinning Notepad++ on the task bar after its installation. Fixes #2896, fixes #2979, fixes #3014, closes #3162
This commit is contained in:
parent
08fd2cfbdf
commit
7e5afd862a
@ -26,22 +26,28 @@
|
||||
; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
Function LaunchNpp
|
||||
;Exec '"$INSTDIR\notepad++.exe" "$INSTDIR\change.log" '
|
||||
; Open notepad instance with same integrity level as explorer,
|
||||
; so that drag n drop continue to function even
|
||||
; Once npp is launched, show change.log file (this is to handle issues #2896, #2979, #3014)
|
||||
; Caveats:
|
||||
; 1. If launching npp takes more time (which is rare), changelog will not be shown
|
||||
; 2. If previous npp is configured as "Always in multi-instance mode", then
|
||||
; a. Two npp instances will be opened which is not expected
|
||||
; b. Second instance may not support drag n drop if current user's integrity level is not as admin
|
||||
Exec '"$WINDIR\explorer.exe" "$INSTDIR\notepad++.exe"'
|
||||
|
||||
; create shortcut in temp with to launch as argument
|
||||
CreateShortCut "$TEMP\notepad++.lnk" "$INSTDIR\notepad++.exe" "$INSTDIR\change.log"
|
||||
|
||||
; Launch Notepad++ with same elevation as explorer
|
||||
; It will solve the drag an drop issue if explorer is running with lower privilege
|
||||
Exec '"$WINDIR\explorer.exe" "$TEMP\notepad++.lnk"'
|
||||
|
||||
; Caution : Please DONOT delete $TEMP\notepad++.lnk right after Exec command
|
||||
; In slower system it may take some time to open N++ while Exec command exist quickly
|
||||
; Also putting sleep does not make sense here as
|
||||
; - DONOT know how much to wait
|
||||
; - Keeps installer UI open wait time period
|
||||
; - If wait time is more, installer UI may become irresponsive
|
||||
; Max 5 seconds wait here to open change.log
|
||||
; If npp is not available even after 5 seconds, exit without showing change.log
|
||||
|
||||
${ForEach} $R1 1 5 + 1 ; Loop to find opened Npp instance
|
||||
System::Call 'kernel32::OpenMutex(i 0x100000, b 0, t "nppInstance") i .R0'
|
||||
IntCmp $R0 0 NotYetExecuted
|
||||
System::Call 'kernel32::CloseHandle(i $R0)'
|
||||
Exec '"$INSTDIR\notepad++.exe" "$INSTDIR\change.log" '
|
||||
${Break}
|
||||
NotYetExecuted:
|
||||
Sleep 1000
|
||||
${Next}
|
||||
FunctionEnd
|
||||
|
||||
; Check if Notepad++ is running
|
||||
|
Loading…
Reference in New Issue
Block a user