Run an application shortcut after an install: Difference between revisions
From NSIS Wiki
Jump to navigationJump to search
m (Adding new author and category links.) |
(Add complete example in addition to 'snippets') |
||
(One intermediate revision by one other user not shown) | |||
Line 25: | Line 25: | ||
FunctionEnd | FunctionEnd | ||
</highlight-nsis> | </highlight-nsis> | ||
[[User:L d allan|L d allan]] 07:24, 2 February 2006 (PST) | |||
Here is a complete nsis mui script | |||
<highlight-nsis># Based on NSIS MUI Basic Example Script written by Joost Verburg (thx!) | |||
!include "MUI.nsh" | |||
Name "Modern UI Test" | |||
OutFile "MuiFinishPageRunFunction.exe" | |||
InstallDir "$PROGRAMFILES\Modern UI Test" | |||
InstallDirRegKey HKCU "Software\Modern UI Test" "" | |||
ShowInstDetails show | |||
;-------------------------------- | |||
;Pages | |||
!insertmacro MUI_PAGE_WELCOME | |||
!insertmacro MUI_PAGE_DIRECTORY | |||
!insertmacro MUI_PAGE_INSTFILES | |||
# These indented statements modify settings for MUI_PAGE_FINISH | |||
!define MUI_FINISHPAGE_NOAUTOCLOSE | |||
!define MUI_FINISHPAGE_RUN | |||
!define MUI_FINISHPAGE_RUN_NOTCHECKED | |||
!define MUI_FINISHPAGE_RUN_TEXT "Start a shortcut" | |||
!define MUI_FINISHPAGE_RUN_FUNCTION "LaunchLink" | |||
!define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED | |||
!define MUI_FINISHPAGE_SHOWREADME $INSTDIR\readme.txt | |||
!insertmacro MUI_PAGE_FINISH | |||
;Languages | |||
!insertmacro MUI_LANGUAGE "English" | |||
;-------------------------------- | |||
# No components page, so this is anonymous | |||
Section "Dummy Section" SecDummy | |||
SetOutPath "$INSTDIR" | |||
File readme.txt | |||
WriteRegStr HKCU "Software\Modern UI Test" "" $INSTDIR | |||
WriteUninstaller "$INSTDIR\Uninstall.exe" | |||
DetailPrint "Reached Dummy section" | |||
SectionEnd | |||
Section "Uninstall" | |||
Delete "$INSTDIR\Uninstall.exe" | |||
RMDir "$INSTDIR" | |||
DeleteRegKey /ifempty HKCU "Software\Modern UI Test" | |||
SectionEnd | |||
Function LaunchLink | |||
MessageBox MB_OK "Reached LaunchLink $\r$\n \ | |||
SMPROGRAMS: $SMPROGRAMS $\r$\n \ | |||
Start Menu Folder: $STARTMENU_FOLDER $\r$\n \ | |||
InstallDirectory: $INSTDIR " | |||
ExecShell "" "C:\User\test.lnk" | |||
FunctionEnd</highlight-nsis> | |||
[[Category:Tutorials]] |
Latest revision as of 15:24, 2 February 2006
Author: jpannequin (talk, contrib) |
Description
Here is how to launch a shortcut at the end of an install (in the MUI). You may need this if you need to use a specific working directory and don't want to modify the MUI.
Usage
So suppose I want to launch "C:\User\test.lnk".
Before calling the macro for finish, you must define the run variables. If you define
!define MUI_FINISHPAGE_RUN "C:\User\test.lnk"
it will not work, because it is not an application.
You must set MUI_FINISHPAGE_RUN empty, and use a function instead.
!define MUI_FINISHPAGE_RUN !define MUI_FINISHPAGE_RUN_TEXT "Start a shortcut" !define MUI_FINISHPAGE_RUN_FUNCTION "LaunchLink" !insertmacro MUI_PAGE_FINISH
You can then define the function and execute the link with ExecShell.
Function LaunchLink ExecShell "" "C:\User\test.lnk" FunctionEnd
L d allan 07:24, 2 February 2006 (PST) Here is a complete nsis mui script
# Based on NSIS MUI Basic Example Script written by Joost Verburg (thx!) !include "MUI.nsh" Name "Modern UI Test" OutFile "MuiFinishPageRunFunction.exe" InstallDir "$PROGRAMFILES\Modern UI Test" InstallDirRegKey HKCU "Software\Modern UI Test" "" ShowInstDetails show ;-------------------------------- ;Pages !insertmacro MUI_PAGE_WELCOME !insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_INSTFILES # These indented statements modify settings for MUI_PAGE_FINISH !define MUI_FINISHPAGE_NOAUTOCLOSE !define MUI_FINISHPAGE_RUN !define MUI_FINISHPAGE_RUN_NOTCHECKED !define MUI_FINISHPAGE_RUN_TEXT "Start a shortcut" !define MUI_FINISHPAGE_RUN_FUNCTION "LaunchLink" !define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED !define MUI_FINISHPAGE_SHOWREADME $INSTDIR\readme.txt !insertmacro MUI_PAGE_FINISH ;Languages !insertmacro MUI_LANGUAGE "English" ;-------------------------------- # No components page, so this is anonymous Section "Dummy Section" SecDummy SetOutPath "$INSTDIR" File readme.txt WriteRegStr HKCU "Software\Modern UI Test" "" $INSTDIR WriteUninstaller "$INSTDIR\Uninstall.exe" DetailPrint "Reached Dummy section" SectionEnd Section "Uninstall" Delete "$INSTDIR\Uninstall.exe" RMDir "$INSTDIR" DeleteRegKey /ifempty HKCU "Software\Modern UI Test" SectionEnd Function LaunchLink MessageBox MB_OK "Reached LaunchLink $\r$\n \ SMPROGRAMS: $SMPROGRAMS $\r$\n \ Start Menu Folder: $STARTMENU_FOLDER $\r$\n \ InstallDirectory: $INSTDIR " ExecShell "" "C:\User\test.lnk" FunctionEnd