;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; "set program as default" script for vlc ; ; more infos at http://msdn.microsoft.com/en-us/library/bb776851%28VS.85%29.aspx ; ; and http://msdn.microsoft.com/en-us/library/bb776851%28VS.85%29.aspx ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; !include LogicLib.nsh Function GetOptions !define GetOptions `!insertmacro GetOptionsCall` !macro GetOptionsCall _PARAMETERS _OPTION _RESULT Push `${_PARAMETERS}` Push `${_OPTION}` Call GetOptions Pop ${_RESULT} !macroend Exch $1 Exch Exch $0 Exch Push $2 Push $3 Push $4 Push $5 Push $6 Push $7 ClearErrors StrCpy $2 $1 '' 1 StrCpy $1 $1 1 StrLen $3 $2 StrCpy $7 0 begin: StrCpy $4 -1 StrCpy $6 '' quote: IntOp $4 $4 + 1 StrCpy $5 $0 1 $4 StrCmp $5$7 '0' notfound StrCmp $5 '' trimright StrCmp $5 '"' 0 +7 StrCmp $6 '' 0 +3 StrCpy $6 '"' goto quote StrCmp $6 '"' 0 +3 StrCpy $6 '' goto quote StrCmp $5 `'` 0 +7 StrCmp $6 `` 0 +3 StrCpy $6 `'` goto quote StrCmp $6 `'` 0 +3 StrCpy $6 `` goto quote StrCmp $5 '`' 0 +7 StrCmp $6 '' 0 +3 StrCpy $6 '`' goto quote StrCmp $6 '`' 0 +3 StrCpy $6 '' goto quote StrCmp $6 '"' quote StrCmp $6 `'` quote StrCmp $6 '`' quote StrCmp $5 $1 0 quote StrCmp $7 0 trimleft trimright trimleft: IntOp $4 $4 + 1 StrCpy $5 $0 $3 $4 StrCmp $5 '' notfound StrCmp $5 $2 0 quote IntOp $4 $4 + $3 StrCpy $0 $0 '' $4 StrCpy $4 $0 1 StrCmp $4 ' ' 0 +3 StrCpy $0 $0 '' 1 goto -3 StrCpy $7 1 goto begin trimright: StrCpy $0 $0 $4 StrCpy $4 $0 1 -1 StrCmp $4 ' ' 0 +3 StrCpy $0 $0 -1 goto -3 StrCpy $3 $0 1 StrCpy $4 $0 1 -1 StrCmp $3 $4 0 end StrCmp $3 '"' +3 StrCmp $3 `'` +2 StrCmp $3 '`' 0 end StrCpy $0 $0 -1 1 goto end notfound: SetErrors StrCpy $0 '' end: Pop $7 Pop $6 Pop $5 Pop $4 Pop $3 Pop $2 Pop $1 Exch $0 FunctionEnd ; Remove shortcuts !macro HideIcons WriteRegDWORD HKLM "Software\Clients\Media\VLC\InstallInfo" "IconsVisible" 0 SetShellVarContext all ; Set $DESKTOP to All Users ${Unless} ${FileExists} "$DESKTOP\VLC media player.lnk" SetShellVarContext current ; Set $DESKTOP to the current user's desktop ${EndUnless} ${If} ${FileExists} "$DESKTOP\VLC media player.lnk" Delete "$DESKTOP\VLC media player.lnk" ${EndIf} ${If} ${FileExists} "$QUICKLAUNCH\VLC media player.lnk" Delete "$QUICKLAUNCH\VLC media player.lnk" ${EndIf} !macroend !define HideIcons "!insertmacro HideIcons" ; Adds shortcuts !macro ShowIcons WriteRegDWORD HKLM "Software\Clients\Media\VLC\InstallInfo" "IconsVisible" 1 SetShellVarContext all ; Set $DESKTOP to All Users ${Unless} ${FileExists} "$DESKTOP\VLC media player.lnk" CreateShortCut "$DESKTOP\VLC media player.lnk" "$EXEDIR\vlc.exe" "" "$EXEDIR\vlc.exe" 0 ${EndUnless} ${Unless} ${FileExists} "$QUICKLAUNCH\VLC media player.lnk" CreateShortCut "$QUICKLAUNCH\VLC media player.lnk" "$EXEDIR\vlc.exe" "" "$EXEDIR\vlc.exe" 0 ${EndUnless} !macroend !define ShowIcons "!insertmacro ShowIcons" !macro Reinstall MessageBox MB_OK "Not implemented" !macroend !define Reinstall "!insertmacro reinstall" Section SetShellVarContext all SetOutPath "$EXEDIR" ${GetOptions} $CMDLINE "HideIcons" $R0 IfErrors 0 +2 goto showIc !insertmacro HideIcons showIc: ${GetOptions} $CMDLINE "ShowIcons" $R0 IfErrors 0 +2 goto reinst !insertmacro ShowIcons reinst: ${GetOptions} $CMDLINE "Reinstall" $R0 IfErrors 0 +2 goto end !insertmacro Reinstall end: SectionEnd ;"setup" is aded to the file name to trigger the UAC heuristic and request admin privileges OutFile "spad-setup.exe"