Community Forums
Page 2 of 2 FirstFirst 12
Results 6 to 10 of 10

Thread: Controlling Suite Wizard Flow

  1. #6
    Join Date
    Oct 2011
    I would imagine this would work in the context of an MSI, but in suite projects there is no capability for intelligent logic of this kind.

    Quote Originally Posted by skolte View Post

    Yes, it is very much possible.

    If you go to Behavior and Logic > InstallScript and once the empty script shows up, look for two dropdowns at the top of the screen. Select Before Move Data in First dropdown and select OnFirstUIBefore event. InstallShield should automatically place bunch of code in the script. This is the default code that runs when you run the installer. Notice how they have labels and different dialogs, and goto labels.

    As far as adding your own screens to installer is concerned you have a few options, if you want to accept some text parameters or accept inputs through radio buttons or checkboxes you can use the built-in functions like AskText(), AskOptions() and AskYesNo() etc. InstallShield will automatically put in dialogs with appropriate labels and textboxes/radio/checkboxes as you want. You can either set global variables in your script or set your own custom MSI properties using MsiSetProperty().

    If you want to design your own dialog, that's also possible using Dialog UI Editor. The idea is pretty much the same except you will have to write some InstallScript code so that the dialog is initialized properly. There are several samples that show this.

    Lastly, you want to use selected features as conditions to display your screens. You can use FeatureIsItemSelected() method to check if the feature is selected and if it is, show the additional screens you want.

    Let me know if you need more help.


  2. #7
    Join Date
    Oct 2011
    Hi, thanks for the reply.

    I've tried to put this property usage in place, but it seems to be generating an exception when it is evaluated.

    Given the following:
    Feature name = DB
    Containing 1 package = DB

    I have removed the "Install" button (because I don't want the install to start) and replaced it with a "Next" as the configure screen is next in the wizard list.

    I set the property on the config screen as follows, as I wanted the abilty to show the screen during maintenance:

    {Binding FEATURE[DB].installState != 0}

    If I select to debug the exception it boils down to an unhandled win32 exception [3384], though I can't get anything more useful than that.

    Alternatively if I set the visible porerty to the following, the config screen does not dispay irrespective of it being a selected feature:

    {Binding FEATURE[DB].actionState == install}

    Have any idea what could be going wrong?

    many thanks


    Quote Originally Posted by MichaelU View Post
    Oh right, great thought on the Visibility part. Proof I'm still learning how to use Suite projects correctly.

    Just like you can use an Enabled setting of:
    {Binding FEATURE[feature name].actionState==}

    to disable a checkbox when a feature is selected for installation, you could use a Visibilty setting of:
    {Binding FEATURE[feature name].actionState==install}

    on a dialog scheduled after the feature selection tree. This would only show up if the feature was selected for install. If you instead need to show this during maintenance, you could check FEATURE[feature name].installState instead for, say, != 0.

  3. #8
    Join Date
    Oct 2011
    OK, I've since found that spaces make a lot of difference.

    If i remove th spaces in

    {Binding FEATURE[DB].actionState == install}

    it works.

    The variation using "installState", however, still generates the exception regardless of spaces being removed.

    Is this an InstallShield bug?



  4. #9
    MichaelU's Avatar
    MichaelU is offline InstallShield Software Engineer
    Join Date
    Jan 2004
    Schaumburg, IL
    The space thing is annoying. Right now it's a doc bug of sorts, but we need to make the syntax more forgiving, so long term it's a code bug.

    As for the comparison on installState, sounds like it. I'll double-check on the != case when I can scrounge up some time (right now it looks like it may not be implemented). Until then, perhaps see if ==2, or ==3 does what you need.
    Michael Urman - Staff Software Engineer - Flexera Software: InstallShield Team

  5. #10
    Join Date
    Oct 2003
    How to set the visibility condition {Binding FEATURE[F1].actionState == install} using GUI

Page 2 of 2 FirstFirst 12

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts