InstallScript檢查某個機碼在不在的方式

InstallScript檢查某個機碼在不在的方式

要檢查機碼在不在可利用RegDBKeyExist方式,但要先切到預設的Root。

如下檢查WSE 2.0是否在,不在的話才執行WSE的安裝程式


    STRING szWSEPath, szKey;
begin    
    //先check是否有裝WSE,沒有才裝
    //check reg SOFTWARE\Microsoft\.NETFramework\AssemblyFolders\Microsoft WSE 2.0  
    RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
    szKey = "SOFTWARE\\Microsoft\\.NETFramework\\AssemblyFolders\\Microsoft WSE 2.0";
    if (RegDBKeyExist(szKey) < 0) then
        //還沒裝WSE
        //安裝WSE
        szWSEPath = INSTALLDIR ^ "WSE.MSI";
        LongPathToQuote(szWSEPath, TRUE);
        LaunchAppAndWait("msiexec.exe", "/i " + szWSEPath, LAAW_OPTION_WAIT);  
    endif;
    
end;

另外,因為我要裝的執行檔都是.NET的,我會先將InstallShield的.NET Scane At Build Component Setting改成None,如下圖所示,不然在Build時,它一個檔案一個檔案去Scan,會Build到昏頭的!

image

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^