External License file: Difference between revisions
From NSIS Wiki
Jump to navigationJump to search
(spam test) |
m (Reverted edits by 85.250.181.40 to last version by ConversionBot) |
||
Line 3: | Line 3: | ||
== Description == | == Description == | ||
'''Requires:''' [[System]] plug-in. | '''Requires:''' [[System]] plug-in. | ||
MUI License page "show" function replaces current license text (Dummy.txt added during compilation) with (runtime) License.txt file content. | MUI License page "show" function replaces current license text (Dummy.txt added during compilation) with (runtime) License.txt file content. |
Revision as of 10:26, 10 September 2005
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.
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 "MUI.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 !define stSTAT '(i,&i2,&i2,&i2,&i2,&i2,&i2,i,i,i,i,i) i' ;$0 - allocated buffer pointer ;$1 - file size ;$2 - License window handle (RichEdit) ;$4 - syscall result value Function fileSize System::Call '*${stSTAT} .r0' ; allocates memory for STAT struct and writes address to $0 System::Call 'msvcrt.dll::_stat(t "$EXEDIR\${LIC_NAME}", i r0) i .r1' IntCmp $1 -1 exit System::Call "*$0${stSTAT}(,,,,,,,,.r1,,,)" exit: System::Free $0 ; free allocated memory FunctionEnd Function addLicense Call fileSize IntOp $1 $1 + 1 ; for terminating zero FindWindow $2 "#32770" "" $HWNDPARENT GetDlgItem $2 $2 1000 System::Call 'msvcrt.dll::calloc(i $1, i 1) i .r0' System::Call 'msvcrt.dll::_open(t "$EXEDIR\${LIC_NAME}", i 0x8000) i .r3' System::Call 'msvcrt.dll::_read(i r3, i r0, i r1) i .r4' System::Call 'msvcrt.dll::_close(i r3)' SendMessage $2 ${WM_SETTEXT} 0 $0 $4 System::Call 'msvcrt.dll::free(i r0)' FunctionEnd