środa, 21 kwietnia 2010

Detekcja zainstalowanego modułu PHP w systemie

Funkcja zwraca TRUE/FALSE i scieżkę instalacji modułu PHP w przypadku wykrycia

function BOOL DetectPHP(svPath, svVer, bLog)
BOOL bResult;
string RegPath,sKey,sFolder,sValue,sData,svVersionNumber,Path;
number nType, nSize;
begin
    bResult = FALSE;
    if (bLog) then WriteLog(0,"* Detekcja zainstalowanego PHP ..."); endif;
    //Sprawdzenie w rejestrach
    RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
    RegPath="SOFTWARE\\PHP";
    if (RegDBKeyExist(RegPath)=1) then
        sValue="InstallDir";          
         sKey = RegPath;
         if (RegDBGetKeyValueEx( sKey, sValue, nType, sData, nSize )=0) then   
             StrRemoveLastSlash( sData );
             if (Is(PATH_EXISTS, sData)) then
                 if (Is(FILE_EXISTS, sData ^ "php.exe")) then
                     svPath = sData;
                     if (VerGetFileVersion(svPath ^"php.exe", svVersionNumber)=0) then
                         svVer = svVersionNumber;            
                         bResult = TRUE;                            
                     endif;       
                 endif;
             endif;            
         endif;
    endif;
   
   
    //Nie wykrytow w rejestrach - sprawdznie na dysku
    if(!bResult) then
       
        if (Is(PATH_EXISTS, PROGRAMFILES ^ "PHP")) then
            if (Is(FILE_EXISTS, PROGRAMFILES ^ "PHP" ^ "php.exe")) then
                 svPath = PROGRAMFILES ^ "PHP";
                 if (VerGetFileVersion(svPath ^"php.exe", svVersionNumber)=0) then
                     svVer = svVersionNumber;            
                     bResult = TRUE;                            
                 endif;       
             endif;
        else
            if (Is(PATH_EXISTS, "c:\\PHP")) then
                if (Is(FILE_EXISTS, "c:\\PHP" ^ "php.exe")) then
                     svPath = "c:\\PHP";
                     if (VerGetFileVersion(svPath ^"php.exe", svVersionNumber)=0) then                        
                         svVer = svVersionNumber;            
                         bResult = TRUE;                            
                     endif;       
                 endif;   
            endif;
        endif;
       
    endif;
   
    if (bResult) then
        if (bLog) then
             WriteLog(1,"- Zainstalowany moduł PHP w wersji "+svVersionNumber);
             WriteLog(2,"w katalogu :"+svPath);
         endif;
    else
        if (bLog) then
            WriteLog(1,"- nie wykryto zainstalowanego modułu PHP");
        endif;    
    endif;   
   
    return bResult;
end;

Brak komentarzy:

Prześlij komentarz