Search code examples
nsis

NSIS: Change the text "Execute:*******" to custom text


I'm very new to NSIS and created a script to install all my programs in a chained fashion. The script works very well but I would like to change the text in the highlighted box to show the name of the program being installed. For example, if the installer is installing Acrobat Reader, it should say "Installing: Adobe Acrobat Reader".

Here is a screenshot: Image

    ; Script generated by the HM NIS Edit Script Wizard.

    ; HM NIS Edit Wizard helper defines
    !define PRODUCT_NAME "Deployment"
    !define PRODUCT_VERSION "1.0"
    !define PRODUCT_PUBLISHER "NoNe"


    ; MUI 1.67 compatible ------
    !include "MUI.nsh"

    ; MUI Settings
    !define MUI_ABORTWARNING
    !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"

    ; Welcome page
    ;!insertmacro MUI_PAGE_WELCOME
    ; License page
    ;!insertmacro MUI_PAGE_LICENSE "..\..\..\path\to\licence\YourSoftwareLicence.txt"
    ; Instfiles page
    !insertmacro MUI_PAGE_INSTFILES
    ; Finish page
    ;!insertmacro MUI_PAGE_FINISH

    ; Language files
    !insertmacro MUI_LANGUAGE "English"

    ; MUI end ------

    Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
    OutFile "Deploy.exe"
    InstallDir "$TEMP"
    ShowInstDetails show

    Section -SETTINGS
      SetOutPath "$TEMP"
      SetOverwrite on
    SectionEnd

    Section "Adobe Acrobat Reader XI" SEC01
   ;Should display "Installing: Acrobat Reader" when installing this section
      File "E:\Applications\AdbeRdr11002_en_US.exe"
      ExecWait "$TEMP\AdbeRdr11002_en_US.exe /msi EULA_ACCEPT=YES /qn"
    SectionEnd

Section "Mozilla Firefox" SEC02
;Should display "Installing: Mozilla Firefox" when installing this section
  File "E:\Applications\Firefox4901.exe"
  ExecWait "$TEMP\Firefox.exe -ms"
SectionEnd

Is there a way to do this?

Thanks in advance... :)


Solution

  • You can use instruction DetailPrint "Installing: Adobe Acrobat Reader"

    to add the string "Installing: Adobe Acrobat Reader" to the details view of the installer.

    But next command (in your script) will overwrite this text (e.g. "Extracting file ...") so you may use SetDetailsPrint none|listonly|textonly|both|lastused command to set where the output is applied:

    SetDetailsPrint both
    DetailPrint "Installing: Adobe Acrobat Reader"
    SetDetailsPrint listonly
    ... Extract all your files here while "Installing: Adobe Acrobat Reader" is displayed ...
    SetDetailsPrint both