2016-01-27 2 views
0

Comment récupérer la valeur d'une case à cocher dans le script d'installation dans Installshield?Récupérer la valeur de checkbox de DIalog dans Openscript

Contexte: J'ai une case à cocher qui a la propriété "UALCSTATUS" et sa valeur est "ON" .dans la section Dialogs. Quand je vais chercher la valeur dans installscript en utilisant la commande suivante, il va chercher 0 ou rien (si coché ou décoché)

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

Dois-je mettre une action personnalisée lorsque je vérifie la case à cocher pour que je puisse définir la valeur de la propriété "UALCSTATUS" afin qu'elle soit définie sur "ON".

Répondre

0

Les propriétés liées aux cases à cocher de l'interface utilisateur de Windows Installer sont définies sur des valeurs qui ont la valeur true ou false. Alors que vous pouvez modifier la valeur exacte utilisée pour vrai/vérifié dans le CheckBox table, une approche plus simple serait d'appeler MsiEvaluateCondition avec une chaîne de condition du nom de la propriété, et le comparer avec MSICONDITION_TRUE (1):

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

Alternativement pour une condition aussi simple, vous pouvez simplement obtenir la propriété comme vous l'avez décrit et la comparer à une chaîne vide. S'il est vide, la case à cocher est vide. Si elle est définie sur autre chose, la case à cocher est activée. En remarque, pour un projet utilisant une interface utilisateur basée sur InstallScript, au lieu de vérifier les propriétés, vous appelez CtrlGetState pour déterminer si la case est cochée. Généralement, il est ensuite exposé via un paramètre byref à la fonction qui affiche la boîte de dialogue.