Automatic account creation is now enabled. Captcha authentication required for account creation and editing unless you are trusted here.
WiX Controls
From WiX Wiki at MindCapers
Control Conditions
The Button controls can have conditions such as disable/ enable/ hide / show. Such condition should use the property from the Edit control.
e.g.:
<Control Id="Cancel" Type="PushButton" ...> <Condition Action="disable"><![CDATA[PROPERTY = 0]]></Condition> <Condition Action="enable"><![CDATA[PROPERTY<>0]]></Condition> </Control>
CheckBoxValue
> I have a checkbox in my gui which is bound to a property: > >
> <Property Id='LAUNCH'>0</Property> > [snip] > <Control Id="Launch" Type="CheckBox" X="135" Y="120" Width="150" > Height="17" Property='LAUNCH' CheckBoxValue='0'> > <Text>Launch Program</Text> > </Control>
> > > Everything is working just fine - except that the checkbox is default > checked, and I would like to have it default not-checked.
Don't set a value to the property at all. The checkbox is checked based on whether the property is set, even if it's set to 0. CheckBoxValue is the value assigned to the property when the checkbox is checked, so you probably want this to be 1. You'd then use LAUNCH = 1 or LAUNCH <> 1 in your conditions.
Something else
<Property Id="EndecaServerProperty" Hidden="yes">devbrain02</Property> <Property Id="EndecaPortProperty" Hidden="yes">8000</Property> <Dialog Id="PropertiesDlg" Width="270" Height="150" Title="[ProductName] [Setup]" NoMinimize="yes"> ... <Control Id="EndecaServerEdit" Type="Edit" X="94" Y="62" Width="150" Height="18" Property="EndecaServerProperty" Indirect="yes" Text="[EndecaServerProperty]"/> ... <Control Id="EndecaPortEdit" Type="Edit" X="94" Y="82" Width="150" Height="18" Property="EndecaPortProperty" Indirect="yes" Text="[EndecaPortProperty]"/>
And I don't see the default properties (set as properties above). Am I doing something wrong?
- Answer
Controls are tied to properties so if you give the properties values, they'll show up as the default content/setting.
- Indirect="yes" tells MSI that the Property value is the name of another property, not the value of the thing itself. Remove that attribute and you should be set. However, depending on what you're doing with the properties, you might need to make them public and secure so they're passed from the UI sequence to the execute sequence. See "Private Properties" and "Public Properties" in the MSI SDK doc for the gory details.
- Thank you very much. Progress but I think I am running into the second problem that you mentioned. The documentation states that in order for the property to be set in the UI phase and passed to the execution phase it has to be public for Windows XP and Windows 2000. I am not running either XP or Windows 2000 (I am running Windows Server 2003) but the symptoms seem to be the same. As I understand it if the property name does not contain lower case letters then it is public. Right?

