0

如何在 Installshield 的 installscript 中获取复选框的值?

背景: 我有一个具有属性的复选框,"UALCSTATUS"其值为“打开”。在对话框部分。当我使用以下命令获取 installscript 中的值时,它获取 0 或什么都不获取(无论是选中还是未选中)

MsiGetProperty(hMSI, "UALCSTATUS", szStrValue, nVal); 

选中复选框时是否必须设置自定义操作,以便我可以设置"UALCSTATUS"属性的值,以便将其设置为 "ON" 。

4

1 回答 1

0

与 Windows Installer UI 中的复选框相关联的属性设置为评估为真或假的值。虽然您可以在CheckBox 表中调整用于 true/checked 的确切值,但更简单的方法是使用属性名称的条件字符串调用MsiEvaluateCondition,并将其与 MSICONDITION_TRUE (1) 进行比较:

if MsiEvaluateCondition(hMSI, "UALCSTATUS") = MSICONDITION_TRUE then
    : : :
endif;

或者,对于这样一个简单的条件,您可以按照您的描述获取属性并将其与空字符串进行比较。如果它是空的,那么复选框也是空的。如果它设置为其他任何值,则选中该复选框。

附带说明一下,对于使用基于 InstallScript 的 UI 的项目,您将调用CtrlGetState来确定是否选中了该复选框,而不是检查属性。通常,这会通过 byref 参数暴露给显示对话框的函数。

于 2016-01-27T13:56:24.700 回答