Old 20th July 2006, 15:29   #1
MatthewHarmon
Junior Member
 
Join Date: Jul 2006
Posts: 8
License / EULA text from external file?

Hi all...

Is there a way to have the license/EULA text be taken from the root of my distribution CD instead of baked right into the installer?

I'm using the modern UI, but can modify the macros if need be.

Thanks!
MatthewHarmon is offline   Reply With Quote
Old 20th July 2006, 15:40   #2
Joel
Debian user
(Forum King)
 
Joel's Avatar
 
Join Date: Jan 2003
Location: Arch land
Posts: 4,917
And why not use, in compilation time, that license file?


* PC: Intel Core 2 DUO E6550 @ 2.33 GHz with 2 GB RAM: Archlinux-i686 with MATE.
* Laptop: Intel Core 2 DUO T6600 @ 2.20 GHz with 4 GB RAM: Archlinux-x86-64 with MATE.
Joel is offline   Reply With Quote
Old 20th July 2006, 15:47   #3
MatthewHarmon
Junior Member
 
Join Date: Jul 2006
Posts: 8
Because my publisher won't let me! They want to be able to make changes to the license without needing to make a new installer.
MatthewHarmon is offline   Reply With Quote
Old 20th July 2006, 15:50   #4
Anders
Moderator
 
Anders's Avatar
 
Join Date: Jun 2002
Location: ${NSISDIR}
Posts: 5,449
http://forums.winamp.com/showthread....hreadid=231547

IntOp $PostCount $PostCount + 1
Anders is offline   Reply With Quote
Old 20th July 2006, 16:02   #5
kichik
M.I.A.
[NSIS Dev, Mod]
 
kichik's Avatar
 
Join Date: Oct 2001
Location: Israel
Posts: 11,343
You can use either one of these:

http://nsis.sourceforge.net/External_License_file
http://nsis.sourceforge.net/ExLicensePage_plug-in
http://nsis.sourceforge.net/NonObligatoricPages
http://nsis.sourceforge.net/ExDlg_plug-in
http://nsis.sourceforge.net/CustomLicense_plug-in

NSIS FAQ | NSIS Home Page | Donate $
"I hear and I forget. I see and I remember. I do and I understand." -- Confucius
kichik is offline   Reply With Quote
Old 20th July 2006, 16:13   #6
MatthewHarmon
Junior Member
 
Join Date: Jul 2006
Posts: 8
Thanks... I found that first method and it seems to work for me. Also seems to be the "safest".
MatthewHarmon is offline   Reply With Quote
Old 20th July 2006, 18:06   #7
Takhir
Major Dude
 
Join Date: Feb 2004
Location: Moscow, Russia
Posts: 1,222
Now I see that code may be shorter and msvcrt free
code:

!define FILE_SHARE_READ 1
!define GENERIC_READ 0x80000000
!define OPEN_EXISTING 3
!define FILE_BEGIN 0
!define FILE_END 2

Function addLicense

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::SetFilePointer(i r0, i 0, i 0, i ${FILE_END}) i .r1'
IntOp $1 $1 + 1 ; for terminating zero
System::Call 'kernel32::SetFilePointer(i r0, i 0, i 0, i ${FILE_BEGIN})'
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

Takhir is offline   Reply With Quote
Old 21st July 2006, 15:42   #8
MatthewHarmon
Junior Member
 
Join Date: Jul 2006
Posts: 8
So, I assume calling the 'kernel32::' routines are "safer" than calling out to the .dll. That is, calling 'kernel32' routines are guaranteed to work?
MatthewHarmon is offline   Reply With Quote
Old 21st July 2006, 16:09   #9
Takhir
Major Dude
 
Join Date: Feb 2004
Location: Moscow, Russia
Posts: 1,222
No. 'system' plug-in adds .dll for module to load if extension was ommited, and this is not safety question. kernel32.dll calls should work on all systems beginnig Win95. msvcrt.dll appeared in Win95 second edition (?) or with any service pack (or any IE installed), but 100% waranty of msvcrt is beginning Win98 only.
Takhir is offline   Reply With Quote
Old 24th July 2006, 02:44   #10
vbguy
Junior Member
 
Join Date: Jul 2006
Posts: 30
Takhir, for some reason your code bails out early (it jumps to the exit) which means there is an error when loading the text file. But when I remove the IfErrors line, the file loads fine.

Is there some way to see what error the kernel is throwing? Just for safety reasons if nothing else.

Thanks,

VBGuy
vbguy is offline   Reply With Quote
Old 24th July 2006, 06:07   #11
Takhir
Major Dude
 
Join Date: Feb 2004
Location: Moscow, Russia
Posts: 1,222
Looks like error flag was set before function call, just add ClearErrors (Manual 4.9.4.3) as a first function line.
Takhir is offline   Reply With Quote
Reply
Go Back   Winamp & Shoutcast Forums > Developer Center > NSIS Discussion

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump