Hi all,
After a lot of searching through this forum, and trying out different examples, I finally started developping the Installer I need.
I have 3 DVD's, containing Technical Data, that has to be installed on our engineers laptop. To do this, I used the CopyFiles command.
This works fine, but when swapping from Disc 1 to Disc 2, I get the error Wrong Volume (bla bla bla)....
To solve this, I found a script in these forums. This script works fine, but doesn't have the MUI I like.
Can anyone help me to join these two scripts into one working script that suits my needs?
All help is appreciated...
PS.: I'll attach the two scripts, to get some background information. Setup2.nsi contains the MUI, test.nsi contains "the swapping script".
Joining 2 different examples to 1 script
21 posts
Second attachment
Number 2
Number 2
You need to copy (and modify) the whole .onInit Function from test.nsi to your script.
Then copy the GetNextParm Function too.
That should be enough to make it work.
-Stu
Then copy the GetNextParm Function too.
That should be enough to make it work.
-Stu
Okay,
Thanks for the help!
Does it matter where I place the functions?
I mean, do I have to put it in the beginning, or can I just add it at the end of the script?
Thanks for the help!
Does it matter where I place the functions?
I mean, do I have to put it in the beginning, or can I just add it at the end of the script?
Hi all,
I've modified the setup.nsi file as described above, and my installer still doesn't work.
What am I doing wrong? In fact, the installer starts at the first disc, works fine, and then pops a message box that ask me to insert disc two. After doing this (and clicking OK), the message box keeps returning and the script hangs. 😠
I can't seem to figure out what I'm doing wrong... 😕
Heeeelp please... 😢
I've modified the setup.nsi file as described above, and my installer still doesn't work.
What am I doing wrong? In fact, the installer starts at the first disc, works fine, and then pops a message box that ask me to insert disc two. After doing this (and clicking OK), the message box keeps returning and the script hangs. 😠
I can't seem to figure out what I'm doing wrong... 😕
Heeeelp please... 😢
In addition, I can attach a printscreen of the error I get.
It loops because of this:
What is $EXEDIR at that time (put it in your MessageBox to find out).
-Stu
"$EXEDIR\DATA\SECT_RIC\RICOH_OLD\CD2.id" obviously does not exist.
promptCD:
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION "Please insert Disc 2."
IfFileExists "$EXEDIR\DATA\SECT_RIC\RICOH_OLD\CD2.id" secondCD promptCD
What is $EXEDIR at that time (put it in your MessageBox to find out).
-Stu
Obviously, it goes to the TEMP dir.
And the CD2.id file is on the disc.
How do I direct the script to my CD-ROM drive?
Is there a special variable for this?
I don't want to specify the drive letter in the script, as this may vary from user to user.
Attached: Printscreen $EXEDIR in MB
And the CD2.id file is on the disc.
How do I direct the script to my CD-ROM drive?
Is there a special variable for this?
I don't want to specify the drive letter in the script, as this may vary from user to user.
Attached: Printscreen $EXEDIR in MB
In .onInit, you can get the CD-Rom drive letter from $EXEDIR like so:
StrCpy $CDDRIVE $EXEDIR 2
; $CDDRIVE will be e.g. E:
Don't forget to declare the $CDDRIVE var with Var CDDRIVE
Edit: No that won't work.
-Stu
StrCpy $CDDRIVE $EXEDIR 2
; $CDDRIVE will be e.g. E:
Don't forget to declare the $CDDRIVE var with Var CDDRIVE
Edit: No that won't work.
-Stu
Updated .onInit function to fix it:
-Stu
I've used a completely different method here (much simpler).
Var CDDRIVE
Function .oninit
IfFileExists "$TEMP\tempCD.tmp" fromHD
CopyFiles "$EXEDIR\setup.exe" "$TEMP"
WriteINIStr "$TEMP\tempCD.tmp" "CD" "Drive" "$EXEDIR"
Exec "'$TEMP\setup.exe'"
Abort
fromHD:
ReadINIStr $CDDRIVE "$TEMP\tempCD.tmp" "CD" "Drive"
Delete "$TEMP\tempCD.tmp"
FunctionEnd
-Stu
So this replaces the whole .onInit function?
Thanks Stu, you da man!!
I'll try it out later on today, and comment it here in this thread.
Thanks Stu, you da man!!
I'll try it out later on today, and comment it here in this thread.
Ok, here are my comments on the script.
Everything works fine, except for one small error.
After compiling the script, the .exe file is made.
When executing the file, it doesn't start.
When executing the same file a second time, it works.
Odd...
Can this be fixed?
Everything works fine, except for one small error.
After compiling the script, the .exe file is made.
When executing the file, it doesn't start.
When executing the same file a second time, it works.
Odd...
Can this be fixed?
I'll have a look when I get home. There's probably something that I over-looked.
-Stu
-Stu
I found the problem was with Exec. For some reason I had two lots of quotes on there (probably from the old script when it had parameters with it).
It also fails if you change the OutFile name, so I've added a define which will make things easier incase you decide to change the OutFile to something other than 'setup.exe':
It also fails if you change the OutFile name, so I've added a define which will make things easier incase you decide to change the OutFile to something other than 'setup.exe':
-Stu
!define OutFile "setup.exe"
!define TempCD "$TEMP\tempCD.tmp"
OutFile "${OutFile}"
Var CDDRIVE
Function .oninit
IfFileExists "${TempCD}" fromHD
CopyFiles "$EXEDIR\${OutFile}" "$TEMP"
WriteINIStr "${TempCD}" "CD" "Drive" "$EXEDIR"
Exec "$TEMP\${OutFile}"
Abort
fromHD:
ReadINIStr $CDDRIVE "${TempCD}" "CD" "Drive"
Delete "${TempCD}"
FunctionEnd
Hi,
It has been a long time since I've posted here.
I still have an error.
The setup file has to copy itself to the temp-directory, and then copy all the files from the DVD's to the Installation Directory.
The part of the TEMP directory works fine, but everything that comes next, doesn't work.
Can anyone help me out?
Please?
It has been a long time since I've posted here.
I still have an error.
The setup file has to copy itself to the temp-directory, and then copy all the files from the DVD's to the Installation Directory.
The part of the TEMP directory works fine, but everything that comes next, doesn't work.
Can anyone help me out?
Please?
Originally posted by DBEOK, I restarted my test, and found out that the copying to the temp-directory works fine, and the removing of the old data works like a charm.
Hi,
It has been a long time since I've posted here.
I still have an error.
The setup file has to copy itself to the temp-directory, and then copy all the files from the DVD's to the Installation Directory.
The part of the TEMP directory works fine, but everything that comes next, doesn't work.
Can anyone help me out?
Please?
The Copy Process fails at the first disc. That's where the problems start.
I also discovered that it isn't possible to select the root of the partition (for example D:\). The install button is grayed out when I select this.
Is there a fix for these problems?
Originally posted by DBEMy guess is that the script can't find the DATA on the DVD.
OK, I restarted my test, and found out that the copying to the temp-directory works fine, and the removing of the old data works like a charm.
The Copy Process fails at the first disc. That's where the problems start.
I also discovered that it isn't possible to select the root of the partition (for example D:\). The install button is grayed out when I select this.
Is there a fix for these problems?
Is the $EXEDIR in this script the DVD or the Temp-directory?
You need to use $CDDRIVE rather than $EXEDIR. $EXEDIR will indeed be the same as $TEMP (as that is where the installer exe is residing).
-Stu
-Stu
Originally posted by Afrow UKThanks Stu, that's the solution...
You need to use $CDDRIVE rather than $EXEDIR. $EXEDIR will indeed be the same as $TEMP (as that is where the installer exe is residing).
-Stu
If you have a solution for the other problem, please share :-)
I mean this problem
"I also discovered that it isn't possible to select the root of the partition (for example D:\). The install button is grayed out when I select this."
Try using AllowRootDirInstall
Thanks guys,
You've solved my problems!
I really love this community... 🙂
You've solved my problems!
I really love this community... 🙂