Archive: Installer detecting dynamic strings from INI?


Installer detecting dynamic strings from INI?
Hello all,

First off I would like to let you know that I am a novice a NSIS scritping and I think what I am trying to do is over my head, if this is even possible.

What I am trying to create is a multi-installer that runs two programs from there own folders and also detect an "Addons.ini" file in the "Addons" directory. The INI file will contain the program's name, description, and command-line (most of them will be ran with switches). The purpose of this is to have the installer read these strings from the INI file that I update as I add/remove addons with having to re-compile the installer each time. The directory structure will look something like this:

+Program1
-Setup.exe
+Program2
-Setup.exe
+Addons
-Addons.ini
+Addon1
-Setup.exe
+Addon2
-Setup.exe

I want the installer to show the addons and thier descriptions in the components page. I have been playing arounf with the ReadINIStr feature to no avail. My INI looks a little something like this:

[Addons]

Addon1=Addon Program
Addon1Description=Installs the addon program.
Addon1Command=Setup.exe /S

In order to have this installer do what I want, I think it would have to gather all this info from the INI upon opening.

Later, I might want to group some of the addons together via category (i.e. Tools, Web Browsers, Games). I also would like it to detect what operating system it is being run under and automatically check/uncheck programs (i.e. I only want Program1 installed on XP, but Program2 on Vista and Windows 7.) Where as I run it on XP and Program1 is automatically checked and Program2 is not. (vice-versa for Vista and Windows 7). But I want to get this thing working right first!

I think what I am asking help for is WAY too complex for a novice like me...again, I don't even think half of this is possible. Although if is, I would love to find out how and increase my NSIS "skills".


You cannot dynamically add sections to the components page. You'd have to have a set number of sections with no names and then give a section a name at run time (SectionSetText) to have it show on the components page.

I think it would make more sense to write a proper Windows app for this.

Stu