Parametry:
Uwaga: Funkcja korzysta z zewnętrznej funkcji SdShowMsgWait()
function BOOL ApacheService(szPath, szFile, szService, nAction, bLog) BOOL bResult; STRING szAction, szLog, szMsg; number nvState; begin bResult = FALSE; switch (nAction) case 0: if (StrLength(szService)=0) then szAction = " -k stop "; szLog = "- zatrzymanie usługi Apache"; else szAction = " -k stop -n \""+szService+"\" "; szLog = "- zatrzymanie usługi Apache jako \""+szService+"\""; endif; szMsg = "Zatrzymanie serwera Apache..."; case 1: if (StrLength(szService)=0) then szAction = " -k start "; szLog = "- uruchomienie usługi Apache"; else szAction = " -k start -n \""+szService+"\" "; szLog = "- uruchomienie usługi Apache jako \""+szService+"\""; endif; szMsg = "Uruchomienie serwera Apache..."; case 2: if (StrLength(szService)=0) then szAction = " -k restart "; szLog = "- restart usługi Apache"; else szAction = " -k restart -n \""+szService+"\" "; szLog = "- restart usługi Apache jako \""+szService+"\""; endif; szMsg = "Restart serwera Apache..."; case 3: if (StrLength(szService)=0) then szAction = " -k install "; szLog = "- instalacja usługi Apache"; else szAction = " -k install -n \""+szService+"\" "; szLog = "- instalacja usługi Apache jako \""+szService+"\""; endif; szMsg = "Instalacja usługi serwera Apache..."; case 4: if (StrLength(szService)=0) then szAction = " -k uninstall "; szLog = "- deinstalacja usługi Apache"; else szAction = " -k uninstall -n \""+szService+"\" "; szLog = "- deinstalacja usługi Apache jako \""+szService+"\""; endif; szMsg = "Deinstalacja usługi serwera Apache..."; endswitch; if (StrLength(szService)=0) then szService = "Apache2.2"; endif; if Is(FILE_EXISTS, szPath ^ szFile) then SdShowMsgWait(szMsg, nProgress, 8, TRUE); if (bLog) then WriteLog(1,szLog); endif; if LaunchApplication(szPath ^ szFile, szAction, szPath, SW_HIDE, 0, LAAW_OPTION_USE_SHELLEXECUTE | LAAW_OPTION_WAIT | LAAW_OPTION_SHOW_HOURGLASS)=ISERR_SUCCESS then Sleep(1000); //Tak na wszelki słuczaj switch (nAction) //STOP// case 0: if ServiceExistsService(szService) then repeat Sleep(500); ServiceGetServiceState (szService, nvState ); SdShowMsgWait(szMsg, nProgress, 8, TRUE); until (nvState = SERVICE_STOPPED); if (nvState = SERVICE_STOPPED) then if (bLog) then WriteLog(2,"- usługa \""+szService+"\" zatrzymana"); endif; bResult = TRUE; endif; else if (bLog) then WriteLog(2,"- nie można zatrzymać usługi \""+szService+"\", usługa nie jest zainstalowana w systemie!"); endif; bResult = TRUE; endif; //START// case 1: if ServiceExistsService(szService) then repeat Sleep(500); ServiceGetServiceState(szService, nvState); SdShowMsgWait(szMsg, nProgress, 8, TRUE); until (nvState = SERVICE_RUNNING)||(nvState = SERVICE_STOPPED); if (nvState = SERVICE_RUNNING) then if (bLog) then WriteLog(2,"- usługa \""+szService+"\" uruchomiona"); endif; bResult = TRUE; endif; if (nvState = SERVICE_STOPPED) then if (bLog) then WriteLog(2,"- usługa \""+szService+"\" nie została uruchomiona"); endif; bResult = FALSE; endif; else if (bLog) then WriteLog(2,"- nie można uruchomić usługi \""+szService+"\", usługa nie jest zainstalowana w systemie!"); endif; endif; //INSTALL// case 3: if ServiceExistsService(szService) then if (bLog) then WriteLog(2,"- usługa \""+szService+"\" zainstalowana"); endif; bResult = TRUE; else if (bLog) then WriteLog(2,"- nie można zainstalować usługi \""+szService+"\", błąd instalacji usługi"); endif; endif; //UNINSTALL// case 4: if !ServiceExistsService(szService) then if (bLog) then WriteLog(2,"- usługa \""+szService+"\" usunięta"); endif; bResult = TRUE; else if (bLog) then WriteLog(2,"- nie można odinstalować usługi \""+szService+"\", błąd deinstalacji usługi"); endif; endif; endswitch; else bResult = FALSE; if (bLog) then WriteLog(1,"Błąd uruchomienia serwisu: \""+szPath ^ szFile+"\" parametr:\""+szAction+"\""); endif; endif; SdShowMsgWait(szMsg, nProgress, 8, FALSE); else if bLog then WriteLog(1,"Brak pliku \""+szPath ^ szFile+"\" "); endif; endif; return bResult; end;
Brak komentarzy:
Prześlij komentarz