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