Edit Condition Dialog
This dialog allows you to edit a conditional statement.
1. Expression
This field contains the resulted conditional statement and can also be edited using Smart Condition Edit Control. Use the button to validate it.
If the condition is invalid, you will be prompted with an error message that will indicate the error's beginning.
Use
to test the expression.2. Insert Operand
This section allows you to insert operands in the statement.
2.1 Property
Insert reference to an installer property which is already created in your package.
Example: MY_PROP
This condition will be true only if the property MY_PROP contains a value. If the property is empty the condition is not fulfilled.
2.2 Environment Variables
Insert reference to an environment variable.
Example: %JAVA_HOME
This condition will be true only if the environment variable JAVA_HOME exists on the machine on which the package is running. If JAVA_HOME doesn't exist the condition will not be met.
2.3 Folder
Insert reference to an installation folder.
Example: APPDIR
This condition will be true only if the property APPDIR which is assigned to the Application Folder from the Files and Folders is resolved.
2.4 Component Action
Insert a reference to the action state of a component (for example if a component will be installed or not).
Example: $Your_Component=3
Test if the correspondent component will be installed on the machine.
2.5 Component State
Insert reference to the installed state of a component (for example if a component is already installed when the installation runs).
Example: ?Your_Component=3
This condition will be true only if the correspondent component was installed. For example you have a custom action which unregister a certain DLL file with the attached component. If the component wasn't installed the custom action will not run during uninstall, otherwise the custom action will be executed.
2.6 Feature Action
Insert reference to the action state of a feature (for example if a feature will be installed or not).
Example: &Feature=5
Test if the correspondent feature will be reinstalled on the machine.
2.7 Feature State
Insert reference to the installed state of a feature (for example if a feature is already installed when the installation runs).
Example: !Feature=3
This condition will be true only if the feature is already installed on the machine.
2.8 Constant
Add a constant to the conditional statement.
These constants represent the feature and component state values used in conditional expressions.
You can use the following:
- INSTALLSTATE_UNKNOWN (-1) - No action to be taken on the feature or component.
- INSTALLSTATE_ADVERTISED (1) - Advertised feature. This state is not available for components.
- INSTALLSTATE_ABSENT (2) - Feature or component is not present.
- INSTALLSTATE_LOCAL (3) - Feature or component is on the local computer.
- INSTALLSTATE_SOURCE (4) - Feature or component will run from the source.
Example: &Feature=3
This condition will be true only if the feature "Feature" will be installed locally. If the feature is not selected for installation the condition is false.
3. Insert Operator
In this section you can insert operators in the conditional statement. Use the
button to add the selected one.3.1 Logical operators:
- IMP - TRUE if left term is FALSE or right term is TRUE.
- EQV - TRUE if both terms are TRUE or both terms are FALSE.
- XOR - TRUE if either but not both terms are TRUE.
- OR - TRUE if either or both terms are TRUE.
- AND - TRUE if both terms are TRUE.
- NOT - Unary operator; inverts state of following term.
3.2 Comparative operators:
- = - TRUE if left value is equal to right value.
- ~= - TRUE if left value is equal to right value. The comparison is case insensitive.
- <> - TRUE if left value is not equal to right value.
- ~<> - TRUE if left value is not equal to right value. The comparison is case insensitive.
- > - TRUE if left value is greater than right value.
- ~> - TRUE if left value is greater than right value. The comparison is case insensitive.
- >= - TRUE if left value is greater than or equal to right value.
- ~>= - TRUE if left value is greater than or equal to right value. The comparison is case insensitive.
- < - TRUE if left value is less than right value.
- ~< - TRUE if left value is less than right value. The comparison is case insensitive.
- <= - TRUE if left value is less than or equal to right value.
- ~<= - TRUE if left value is less than or equal to right value. The comparison is case insensitive.
3.3 Sub-String/Bitwise Operators
Substring operators can occur between two string values.
- >< - TRUE if left string contains the right string.
- ~>< - TRUE if left string contains the right string. The comparison is case insensitive.
- << - TRUE if left string starts with the right string.
- ~<< - TRUE if left string starts with the right string. The comparison is case insensitive.
- >> - TRUE if left string ends with the right string.
- ~>> - TRUE if left string ends with the right string. The comparison is case insensitive.
Bitwise operators can be used between two integer values.
- >< - TRUE if the left and right integers have any bits in common.
- << - TRUE if the left integer's high 16-bits are equal to the right integer.
- >> - TRUE if the left integer's low 16-bits are equal to the right integer.
4. Predefined conditions
This section is described in the Predefined Conditions article.
Topics
- Predefined Conditions
Predefined conditions ready to be used. - Detect Installed Software
Add a condition to determine the minimum installed software version. - Detect Installed Office App
Add a condition to determine the minimum installed Microsoft Office App version.