środa, 5 maja 2010

Detekcja Adobe Reader w InstallShield InstallScript

Prosta funkcja detekcyjna zainstalowanego Adobe Reader w systemie
Windows. Funkcja zwraca true/false w zależności od rezultatu detekcji.
Parametrem przekazywanym jest tylko informacja o tym czy zapisać
wyniki detekcji do pliku log
function BOOL DetectAdobeReader(bLog)
string RegPath,sVersion,sVer;
number nSize,nType,nResult,i;
LIST nList;
BOOL bResult;
begin                                      
    bResult = FALSE;
    if (bLog) then WriteLog(0,"* Sprawdzenie zainstalowanego Adobre Reader"); endif;
    RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);          
     RegPath="SOFTWARE\\Adobe\\Acrobat Reader";
     if (RegDBKeyExist(RegPath)=1) then 
        
        nList  = ListCreate(STRINGLIST);
        nResult = RegDBQueryKey ( RegPath, REGDB_KEYS, nList ); 
        if (nResult = 0) then     
           if (ListCount(nList)>0) then   
                if (bLog) then WriteLog(1," - znaleziono wersje:"); endif;
                ListSetIndex(nList,LISTFIRST);    
                for  i=0 to ListCount(nList)-1  
                    ListCurrentString(nList,sVer);
                    if (bLog) then WriteLog(2,sVer); endif; 
                    ListSetIndex(nList,LISTNEXT); 
                endfor;    
                bResult = TRUE;
           else
                   if (bLog) then WriteLog(1," - pobrana lista kluczy jest pusta"); endif;    
           endif;
        else
            if (bLog) then WriteLog(1," - nie udało się pobrać listy kluczy rejestru"); endif;
        endif;

        
        nType = REGDB_STRING; 
        nSize = 255;
            
           ListDestroy(nList);
     else 
           if (bLog) then WriteLog(1,"- nieznaleziono"); endif;
     endif; 
    
    return bResult;
end; 

Brak komentarzy:

Prześlij komentarz