在Installscript中检索DIalog的复选框的值

时间:2016-01-27 10:50:39

标签: installshield installscript installscript-msi

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

背景: 我有一个复选框,其中包含属性"UALCSTATUS",其值为“ON”。在Dialogs部分。当我使用以下命令获取installscript中的值时,它将获取0或无任何内容(无论是已选中还是未选中)

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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

作为旁注,对于使用基于InstallScript的UI的项目,您不是要检查属性,而是调用CtrlGetState来确定是否选中了复选框。通常,这会通过byref参数暴露给显示对话框的函数。