0

尝试使用 MsiSetProperty/MsiGetProperty 方法设置/获取 INSTALLDIR 属性。但它在 InstallscriptMSI projects 的情况下不起作用。我在这里想念什么?

在另一个论坛中发现,Installshield 属性在某些情况下访问受限。

4

1 回答 1

0

笔记:

MsiGetProperty 和 MsiSetProperty 属性不能用于延迟的 InstallScript 自定义操作,这些操作无权访问活动的 .msi 数据库并且无法识别任何 Windows Installer 属性。他们只能访问已写入执行脚本的信息。

例子:

// Include header file for built-in functions 

#include "isrt.h" 

// Include header file for MSI API functions and constants 

#include "iswi.h"
export prototype Func1(HWND);
function Func1(hMSI)
STRING svName;
NUMBER nvSize, nResponse; 

begin 

// Retrieve the user's name from the MSI database 

nvSize = 256; 

MsiGetProperty (hMSI, "USERNAME", svName, nvSize); 



nResponse = AskYesNo ("Your name will be registered as " + 

                     svName + ". Is this correct?", YES); 


if nResponse = NO then 

    AskText ("Enter the name that will be registered for " + 

             "this product.", svName, svName); 

    MsiSetProperty(hMSI, "USERNAME", svName); 

endif; 

end; 
于 2012-05-29T05:03:16.360 回答