External License file

From NSIS Wiki
Jump to navigationJump to search
Author: Takhir (talk, contrib)


Description

Requires: System plug-in.

MUI License page "show" function replaces current license text (Dummy.txt added during compilation) with (runtime) License.txt file content. RTF can be used as well.

The Script

;--------------------------------
; Base names definition
 
  !define LIC_NAME "License.txt"
  !define APP_NAME "License Test"
 
 
;--------------------------------
; General Attributes
 
  Name "${APP_NAME}"
  OutFile "${APP_NAME}.exe"
 
 
;--------------------------------
; Interface
 
  !include "MUI2.nsh"
  !insertmacro MUI_PAGE_WELCOME
  !define MUI_PAGE_CUSTOMFUNCTION_SHOW addLicense
  !insertmacro MUI_PAGE_LICENSE Dummy.txt
  !insertmacro MUI_LANGUAGE "English"
 
 
;--------------------------------
; Installer Sections
 
Section "Dummy Section" SecDummy
 
SectionEnd
 
 
;--------------------------------
; Installer Functions
 
Function addLicense
 
   ClearErrors
   FileOpen $0 $EXEDIR\${LIC_NAME} r
   IfErrors exit
   System::Call 'kernel32::GetFileSize(i r0, i 0) i .r1'
   IntOp $1 $1 + 1 ; for terminating zero
   System::Alloc $1
   Pop $2
   System::Call 'kernel32::ReadFile(i r0, i r2, i r1, *i .r3, i 0)'
   FileClose $0
   FindWindow $0 "#32770" "" $HWNDPARENT
   GetDlgItem $0 $0 1000
   SendMessage $0 ${EM_SETLIMITTEXT} $1 0
   SendMessage $0 ${WM_SETTEXT} 0 $2
   System::Free $2
exit:
 
FunctionEnd