Archive: Installer only installs one item out of twenty!


Installer only runs one item out of twenty!
Hi there,

I'm a 100% newbie, and I'm using HM NIS editor's wizard to create my setup file. I'd like my setup file to install some filters and codecs for HTPC use. However, no matter how many items I list in the wizard's window, I only get the first one to work. That is, the first filter -let's say "aacparser.exe"- is installed, but the second one -"ac3form.exe"- is not.
At the end of the wizard, there's an option saying what will be done once the installer is installed, and if open up the little window I see both .exe files listed.

maybe this is too confusing. I'm attaching the file I created. Is there any way to install both files, not only the first one?
Is it possible to install them silently or is it too tricky?

http://www.canroquet.com/varios/test2.nsi

please use "save as" to download the file.


That is because your script is running only aacparser.exe.


!define MUI_FINISHPAGE_RUN "$INSTDIR\aacparser.exe"

thanks for the reply. so, does it mean that I have to manually add a
!define MUI_FINISHPAGE_RUN "$INSTDIR\myappl.exe" entry for each application I want to be installed????

I thought the wizard would take care of that. As I said, at the end of the wizard there's a list with all the applications which, supposedly, will be installed when run you run the setup file.


ok, it seems that you cannot add more than one !define MUI_FINISHPAGE_RUN "$INSTDIR entry.

also, I took a close look at the wizard's option at the end and it lets you choose among the listed programs, but it doesn't run all of them, just the one you choose.

so, any idea as to how get it working?


It looks like you're trying to create a wrapper for several other installation programs. Is that accurate? Will you be including any files that are not their own installation packages?


yep, that's right, I'll include some .ax and .dll files, such as vsfilter.dll or DTSWAV.ax. however, these ones seem easier to install. I just use Regdll and they're registered.

yes, I need some kinda of wrapper for those installation packages, but I also need to regdll the .ax and .dll files.

I found a very rudimentary way to install the .exe files, which is using exec "$INSTDIR\appl.exe", but I'm sure there must be a better way.

so, how do you wrap them up?

thanks...


ok, I've been using the Execwait command and it seems to work ok. I've to manually add it after each installation package entry, there seems to be no other easier way...

finally, I'd like to register a .reg file which will add some content to the registry. Regdll and Exe don't seem to work. I took a look at the user manual, but all the commands (Regword and so on) seem to be used to manually add the full string data, but I just want to register a pre-made .reg file.

thanks...


I'd like to register a .reg file which will add some content to the registry
Check this out.

thanks. searching the forum I also found this:
Exec 'regedit "$PLUGINSDIR\regentry.reg"'

or
Exec 'regedit \s "$PLUGINSDIR\regentry.reg"' if you want a silent registration.

as I said, my wrapper will install some installation packages (it works using Execwait, though it takes some time to write the script if you have many entries).

so far so good. but when I hit the uninstall button, it uninstalls the .exe packages, not the content installed by those packages.

let's see an example:
Delete "$INSTDIR\aacparser.exe"
Delete "$INSTDIR\ac3xform.exe"
Delete "$INSTDIR\cdda.exe"
Delete "$INSTDIR\cdxa.exe"

is it possible to uninstall also the contents installed by each of these .exe packages???

as an aside, does anyone here know which is the hit counter soft used to count the number of timen a given item has been downloaded? for example, here some users upload files so others can download them, and usually there's a sign saying "your appl. has been downloaded XXX times"...


Since you are not installing the actual 'content' using nsis, you are just wrapping the installers, it cannot be uninstalled using nsis either.

Unless that is you can wrap the unistaller aswell, e.g. the installer file might have an uninstaller script build in by use of command line arguments or you might be be able to run the uninstallers generated by these files.

Vytautas


most of those opensource packages have been created using nsis.

how do yo call the uninstallers created by those files.

Delete "$INSTDIR\cdxa.exe"

this deletes "cdxa.exe", but not the "c:\Program Files\cdxa" folder.

any idea?


cirerita could you provide a link to one of those packages so i can have a look at how it sets it self of and where it puts the uninstaller.

Vytautas


yep, sure:
http://www.inmatrix.com/zplayer/formats/aac.shtml

here you can grab the aacparser.exe and see how it works. it's an opensource filter; the installation file was created using nsis.


OK, the acc installer install to this location by default: "C:\Program Files\Core AAC Decoder" and there it creates an uninstall.exe

you should try wrapping these uninstallers (probably a better idea would be to get the actuall path from the rgistry first).

Vytautas


ok. any idea as to how to wrap the uninstallers? is there any command for wrapping all of them?


Execwait "C:\Program Files\Core AAC Decoder\uninstall.exe" should work.

I think that there was a special switch you could/had to use to get the uninstaller to work ok, but i can't remember what that was or if it's still needed.

Try this and see if that works or not.

Vytautas


ok, thanks, I'll try that.