1

I am using InstallShield 2012 Professional to create a basic MSI project. My question involves how to execute a Custom Action caused by user interaction with a dialog.

I've been doing the research but I just am not getting the right combination of settings to make it work. I have gotten the Custom Action to execute, but before it even gets the user interaction.

After installation is complete, and the standard "SetupCompleteSuccess" dialog shows, I added a checkbox so the user can choose to view some html release notes when they click on the finish button in addition to launching the program. The program launch works perfectly and was set up in the project assistant wizard.

Checkbox setup in dialog

In the dialog, I set the checkbox to set the property LAUNCHRELEASENOTES to 1. In the dialog behavior I set a DoAction in the Finish (aka OK) button to execute the custom action "OpenReleaseNotes" if the condition LAUNCHRELEASENOTES=1 is true.

Button behavior.

In the "OpenReleaseNotes" custom action I created, where I am probably messing up the recipe, I am making it Launch an Executable (in this case cmd.exe just to call a DOS command) to open the html release notes. I am completely unclear on what combination of settings in the custom action need to be set up to have it executed by user interaction at the very end of the install.

Custom Action

How should these be set for the custom action?

  • Return Processing
  • In-script Execution
  • Execution Scheduling
  • Install UI Sequence
  • Install Execute Sequence
  • Install Execute Condition (if applicable)

1 Answer 1

2

ControlEvents have an order of operations. Right click the "EndDialog" control event and select move down to get it to execute after your custom actions.

Sign up to request clarification or add additional context in comments.

2 Comments

indeed that is the case. In the "OK" button series of control events in the dialog behavior section, putting "EndDialog" at the bottom did the trick. Very valuable to know that list goes in the order of operation. Thank you so much. For those of you following along, I made some other more minor mistakes, namely setting the condition for my custom action to be LAUNCHRELEASENOTES=1 instead of just LAUNCHRELEASENOTES. My command line in the custom action also needed some help. Thank you again.
FWIW, it's a bad UI for Installshield. The underlying ControlEvent table has an Order column but InstallShield represents it as an ordered list and hides the actual order. It's not intuitive and makes you hit the head on the wall unless someone shows you. I would have kept the functionality that they have now but also show the Order column and make it editable.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.