Skip to content
⌘ NSIS Forum Archive

Silent install questions...

2 posts

Marbled#

Silent install questions...

Hi!

I have a few working installation that I must had silent install support to.

I am not sure where I picked that from but I was initializing the installation directory in the guiinit which is apparently (and unsurprisingly) not run during a silent install...

I have to add support for passing an install directory for the silent install (that could be overwritten if the program is already installed but another version) and passing a language.

I moved some of the stuff I had put in the guiinit in a macro I use in the .oninit functions.

My problem now is that I am not quite sure how to make all of it work nicely.

If it's a silent install but the program is already installed I want to discard the installation directory passed on the command line (which I think is best).

If the program is not already installed and the installation directory (/D switch) was passed I want to use it.

Otherwise, I want to fallback to the default directory for the application.

After that I will have to add an installation language parameter but I don't think that will be too difficult, I am only mentioning it in case it could change something related to the processing of the /D switch.

Can anyone give me some pointers as to how to proceed?

Thank you and have a nice day!

Nick
Anders#
Are you using InstallDirRegKey?

Either way, in .onInit you can just set $InstDir to something else if you find a path you want to use in the registry. Otherwise leave $InstDir unchanged and it will have the correct value from /D or the InstallDir attribute if /D was not used.