Archive: Disk spanning


Disk spanning
How can I create an installation, which will have two cd`s?


Use CopyFiles or a plug-in like ExtractDLL.


Ok, but does installer copies itself to hdd, or runs from cd? I mean, will it need to read itself during install process?


Copy it to the HD just to make sure.


When using CopyFiles, how can one prompt the user for a 2nd disk when CopyFiles has finished?


A simple message box should do it. After the user clicks OK, check the right disk is in and continue copying if it is. If it isn't, just ask again.


Is the standard way to verify the correct disk to check for the existence of a specific file? Or is there a way to check the CD name or something? Will the installer know about CD spin-up times?

Thanks.


There is no standard way that I know of. I see nothing wrong in verifying by a certain file. Unless Windows does this internally, the installer won't know about CD spin-up times.


Is there an example of using CopyFiles? Can you do:
CopyFiles "path\to\files\*.*" "$INSTDIR\"

Or do you need to specify one at a time?


You can use wildcards, yes. But always use full paths to be sure. You'd probably want to use:

CopyFiles "$EXEDIR\path\to\files\*.*" $INSTDIR


Ok, but how can I get a label of a cd?


http://forums.winamp.com/showthread....light=cd+label


Thanks!


Originally posted by kichik
Copy it to the HD just to make sure.
I am having 1 installer that extracts zip files from several
CDs (up to 10).
When the installer is launched it is copied into memory.

Will copying the installer file to the HD help in case
it is not kept in memory?

Will copying the installer file to the HD help in case
it is not kept in memory?
Yes. This way, Windows will always have somewhere to get the data from.

Originally posted by kichik
Yes. This way, Windows will always have somewhere to get the data from.

Do I have to take any other steps to point Windows to the
location of the installer file on the HD?

Well, you have to execute it and exit the one executed from the CD-ROM. Send the one on the HD something on the command line telling it that it's no longer on the CD. You'd probably want to tell it what letter the CD is on too, so you can copy stuff from there.


Quote:


Yes, just execute the file on HD in .onInit (which is called before anything is shown) and kill the first installer afterwards (use Abort from .onInit).


Hi,

Thanks a lot for your help.

I have now written a small script that does the following:
1. If the installer is called without parameters I assume that it
was called from the CD-rom.
2. The installer is copied to HD
3. The installer from the HD is called.
4. The original installer is terminated.

The script is attached to this posting.

I am not very experienced in writing NSIS scripts and would
appreciate any feedback :-)

Again, thanks a lot for your help.


Barbara


Seems good. Just don't forget to replace E:\ with $EXEDIR for release.

There is just a little thing. You have the following at the end of the .onInit function:

Push $R0
Push $R1
Push $R2
Push $R9


There doesn't seem to be any need for that. There is nothing after .onInit that will read those values from the stack.


Originally posted by kichik
Well, you have to execute it and exit the one executed from the CD-ROM. Send the one on the HD something on the command line telling it that it's no longer on the CD. You'd probably want to tell it what letter the CD is on too, so you can copy stuff from there. Can I make the transition
from execution of installer from CD-rom to
execution of installer from HD
invisible for the user?