Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Hide features


6 replies to this topic

Thomas Eskesen

Thomas Eskesen
  • Members
  • 86 posts

Posted 15 March 2001 - 08:22


It seem like it is impossible to alter the Features at runtime (after the CostFinalize function)!?!??!
Can this be true?

I need to show/hide different features in the CustomSetup dialog dependent on the serial number entered in the CustomerInformation dialog!
Is this possible? How?

I can set a Property from my script on the "next"-button in the CustomerInformation dialog - but I can not use it in the Feature settings?!?!? And MsiSetFeatureAttributes did not do anything at this time!?!?

Has anyone any experience or hints in this matter?

Thanking you in anticipation
Regards,
Thomas Eskesen


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 15 March 2001 - 11:04

You could call the costing functions after the serial number dialog. However in this case you must prevent customers from going Back to the serial number dialog and change the s/n because you should call the cost functions only once per sequence.

SteveP

SteveP
  • Members
  • 126 posts

Posted 16 March 2001 - 02:26

I would probably sequence the CostFinalize after the dialog is completed.  Then you can set Conditions to select the appropriate functions to display.  You can eliminate the the UserRegistrationDlg from the sequence by skipping it with the Back button and adding a CA to the Next button on the registration dialog that sets a Property that is used a conditional from the previous dialog's Next button.

You should only call CostInitialize once, but I seem to recall something about being able to re-run cost finalize after doing a CustomizeDlg.  I'm not 100% sure on that, so please confirm it before you rely on it.


Thomas Eskesen

Thomas Eskesen
  • Members
  • 86 posts

Posted 16 March 2001 - 09:25

And there is no problem in moving the CostFinalize in the sequece from number 550 to e.g. 690 - after the setup dialogs? E.g. The custom setup must us data f.x. Diskspace e.a. from the finalize function? To show "OutOfSpace!??!?!?

I also don not understand what you mean by "...eliminate the the UserRegistrationDlg from the sequence by skipping it with the Back button and adding a CA to the Next button on the registration dialog that sets a Property that is used a conditional from the previous dialog's Next button... " - what should I eliminate and Why?


There is also a CustomSetup in the MaintananceWelcome... Can I move the CostFinalize from 550 to 770?

Thanx!
Regards,
Thomas

(Edited by Thomas Eskesen at 9:39 am on Mar. 16, 2001)


Thomas Eskesen

Thomas Eskesen
  • Members
  • 86 posts

Posted 16 March 2001 - 13:15

If I move the CostFinalize my CustomSetUp i just always empty!??!?

Thomas


SteveP

SteveP
  • Members
  • 126 posts

Posted 16 March 2001 - 23:13

I am not sure how your custom setup is designed.  If it uses a SelectionTree control, then it will have to be used after CostFinalize.  I had assumed that you were using a different selection process, based on the entry in the UserRegistrationDlg.

In general, then, if you are using a ListBox control or a series of PushButtons or something of that nature, you can position your dialog display to occur *before* CostFinalize.  I would use the selections to set a property or series of properties that would describe my installation options.  I would use the properties to satisfy install section options defined in the Condition Table.  The Condition Table is evaluated during the CostFinalize action.

As Stefan said, the user should be presented the opportunity to type in a Serial Number only once during the installation process.  His suggestion was to hide the dialog that allows the user to enter the registration number.  You can accomplish this by making sure that the Back button on the dialog that *follows* the registration dialog points to the dialog that appears *before* the registration dialog.

To ensure that the client can only see the registration dialog *once* going forward, you can set a property value on the control event from the Next button on the registration dialog.  The next time the user attempts to get to the registration dialog from the previous dialog, you can test the value of the property set the first time through the loop and skip the registration dialog.

This would be much easier to explain on a white board.  Please send me an email if you would like to discuss the problem in greater detail.