External License file: Difference between revisions
From NSIS Wiki
Jump to navigationJump to search
m (Updated author and download links, and changed format of some pages.) |
m (Updated author links.) |
||
Line 1: | Line 1: | ||
{|align=right | |||
|<small>Author: [[{{ns:2}}:Takhir|Takhir]] ([[{{ns:3}}:Takhir|talk]], [[{{ns:-1}}:Contributions/Takhir|contrib]])</small> | |||
|} | |||
<br style="clear:both;"> | |||
== Description == | == Description == | ||
'''Requires:''' [[System]] plug-in. | '''Requires:''' [[System]] plug-in. | ||
Line 75: | Line 79: | ||
FunctionEnd | FunctionEnd | ||
</highlight-nsis> | </highlight-nsis> | ||
Revision as of 02:56, 30 April 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