![]() |
|
#1
|
|||
|
|||
|
I have a demo install and use #pragma disablewebinstall to derive 2
installs, one for CD and the other for web update. The client can now update using the demo on CD or downloaded off our website OR from within the application by using wudate.exe When update runs then it in effect runs the demo but detects an existing app and switches into maintenance mode. But how can I detect at runtime if the web update version is running? TIA John Fligg |
|
#2
|
|||
|
|||
|
BTW if it helps I am asking as I need to hide certain dialog windows if it
is a web update but not if it is an update running off a CD for example. John |
|
#3
|
|||
|
|||
|
Hi John,
> > But how can I detect at runtime if the web update version is running? > Very easy. What you can do is to create a variable (e.g. %THIS_IS_A_WEBUPDATE% and set it (at compile time) to 1 for a web update version and to 0 if it is not a web update. Then you have the information you need at runtime. Hope this helps. Friedrich |
|
#4
|
|||
|
|||
|
Erm not sure that is the solution Friedrich.
How can the clients machine detect that variable? Also how can you set a variable according to a #pragma condition? Maybe you misunderstand me as when I say detect at runtime I do not mean when compiling (#pragma does that), I mean when the client runs the install. So assuming the install is running on the client machine and has switched into maintenance mode, I now need to know if these are the wupdate.exe install files (0001 etc) or the demo.exe - hope that makes sense. See attached code. I use this code in conjuction with Build Automator. All is does is tells SB to compile the script as though it were not a web install. So at this point I would need to set this variable but how? Remember I am in effect compiling the SAME SB project twice, once as a web install the other not. But I do not think setting the variable is the solution. HTH John |
|
#5
|
|||
|
|||
|
John,
> How can the clients machine detect that variable? Also how can you set a > variable according to a #pragma condition? Just handle the %THIS_IS_A_WEBINSTALL% logic in the code you posted and you are done: #ifcompvar [MANUAL_INSTALL] Equals "1" Then #pragma DISABLEWEBINSTALL = "1" Set Variable %THIS_IS_A_WEBINSTALL% to "0" yadayada #else Set Variable %THIS_IS_A_WEBINSTALL% to "1" #end If you compile a web-install enabled updater, %THIS_IS_A_WEBINSTALL% will be "1". If you compile an install that does not support web install, %THIS_IS_A_WEBINSTALL% will be "0". Hope this helps. Friedrich |
|
#6
|
|||
|
|||
|
OK Friedrich but still not sure I understand.
So when the install runs on the clients machine the script will return the value of the variable? In other words, by putting that in the #pragma section the variable is stamped into the installer???? I never knew you could do that! Thanks John |
|
#7
|
|||
|
|||
|
John,
> OK Friedrich but still not sure I understand. > > So when the install runs on the clients machine the script will return the > value of the variable? > > In other words, by putting that in the #pragma section the variable is > stamped into the installer???? I never knew you could do that! You instruct the #ifcompvar compiler directive to do this! You can even use this technique to add another wizard dialog logic or another set of files, etc. As I understand it, you create TWO different updater applications from the SAME .sb7 project. One updater is web-install *ENABLED*, the other updater is standalone and does not require an active Internet connection. So let us assume, the updater.sb7 project compiled with [MANUAL_INSTALL] set to "1" creates the web-install *DISABLED* version (no Internet connection required). What you do here is, you simply define your own %THIS_IS_A_WEBINSTALL% variable and set it to "0" at compile time. If this updater is launched, your script logic knows that this is NOT a web install (because the value of %THIS_IS_A_WEBINSTALL% is "0" at runtime). Compile the very same updater.sb7 project with [MANUAL_INSTALL] set to "0" creates the web-install *ENABLED* version. Now you let the #ifcompvar compiler directive set %THIS_IS_A_WEBINSTALL% to "1" at compile time. If this updater is launched, your script logic knows that this is a web install (because the value of %THIS_IS_A_WEBINSTALL% is "1" at runtime). Friedrich |
|
#8
|
|||
|
|||
|
Oh! Thanks Friedrich. I will try it.
John |
|
#9
|
|||
|
|||
|
Oh sorry Friedrich
Having read your reply, knowing I was missing something obvious I finally got it after the 4th read through! Of course, the script is compiled into an exe of some form and compiling it the dialog's that is told to do. #pragma directs what to compile in. Understood (at last). I knew it was obvious. I assumed (wrongly) that the logic was being determined at runtime when it is actually determined at compile time. Thanks John |
|
#10
|
|||
|
|||
|
John,
In the "Learning SetupBuilder Part I" document, there is some discussion of the various types of variables and constants, and a topic called "Setting Runtime Variables From Compiler Variables" Jane |
![]() |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
| Display Modes | |
|
|