2012-05-29 33 views
0

嘗試集獲取INSTALLDIR屬性/得到使用MsiSetProperty/MsiGetProperty方法INSTALLDIR屬性。但它不適用於InstallscriptMSI項目。我在這裏錯過了什麼?無法設置/在「InstallscriptMSI」類型的項目

在其他論壇中發現,在某些情況下,Installshield屬性的訪問權限有限。

感謝您的快速響應。

謝謝。 Venu.G

+0

http://blog.deploymentengineering.com/2006/06/installscript-meet-customactiondata.html –

回答

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; 
+0

Vikky, 就拿情況下我想INSTALLDIR設置爲非以編程方式默認目標文件夾。顯然腳本dosent承認財產。我如何解決這個問題? – iManiac

+0

@iManiac使用szSDKDirectory = PROGRAMFILES ^「companyfoldername \\ productname」; nResult = SdAskDestPath(szTitle,「」,szSDKDirectory,0);如果(szSDKDirectory!= PROGRAMFILES ^「companyfoldername \\ productname」),則szSDKDirectory = szSDKDirectory ^「companyfoldername \\ productname」;萬一;最後設置這個INSTALLDIR = szSDKDirectory; – vikky

+0

我真的很抱歉,忘了提。我試圖在升級過程中設置屬性。您的最後評論已經實施,這是在正常安裝過程中。 – iManiac

相關問題