External License file: Difference between revisions
From NSIS Wiki
Jump to navigationJump to search
No edit summary |
No edit summary |
||
Line 52: | Line 52: | ||
ClearErrors | ClearErrors | ||
System::Call 'kernel32::CreateFile(t "$EXEDIR\${LIC_NAME}", i ${GENERIC_READ}, i ${FILE_SHARE_READ}, i 0, i ${OPEN_EXISTING}, i 0, i 0) i .r0' | System::Call 'kernel32::CreateFile(t "$EXEDIR\${LIC_NAME}", i ${GENERIC_READ}, i ${FILE_SHARE_READ}, i 0, i | ||
${OPEN_EXISTING}, i 0, i 0) i .r0' | |||
IfErrors exit | IfErrors exit | ||
System::Call 'kernel32:: | System::Call 'kernel32::GetFileSize(i r0, i 0) i .r1' | ||
IntOp $1 $1 + 1 ; for terminating zero | IntOp $1 $1 + 1 ; for terminating zero | ||
System::Alloc $1 | System::Alloc $1 | ||
Pop $2 | Pop $2 |
Revision as of 05:59, 7 August 2006
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 FILE_SHARE_READ 1 !define GENERIC_READ 0x80000000 !define OPEN_EXISTING 3 !define FILE_BEGIN 0 !define FILE_END 2 Function addLicense ClearErrors System::Call 'kernel32::CreateFile(t "$EXEDIR\${LIC_NAME}", i ${GENERIC_READ}, i ${FILE_SHARE_READ}, i 0, i ${OPEN_EXISTING}, i 0, i 0) i .r0' 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)' System::Call 'kernel32::CloseHandle(i r0)' FindWindow $0 "#32770" "" $HWNDPARENT GetDlgItem $0 $0 1000 SendMessage $0 ${WM_SETTEXT} $0 $2 System::Free $2 exit: FunctionEnd