Advertisement
Guest User

Untitled

a guest
Jun 5th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
AutoIt 3.49 KB | None | 0 0
  1. #include <Constants.au3>
  2. $service = "FirebirdServerDefaultInstance"
  3.  
  4.    $run=start()
  5.    If $run = 0 Then
  6.       ;_FileWriteLog($File, "Служба: "&$service&" уже запущена")
  7.       msgbox(0,"","Служба: "&$service&" уже запущена")
  8.    ElseIf $run = 1 Then
  9.      ; _FileWriteLog($File,"Служба: "&$service&" запущена")
  10.      msgbox(0,"","Служба: "&$service&" запущена")
  11.    ElseIf $run = 2 Then
  12.      ; _FileWriteLog($File, "Служба: "&$service&" не удалось запустить!")
  13.      msgbox(0,"","Служба: "&$service&" не удалось запустить")
  14.    ElseIf $run = 3 Then
  15.      ; _FileWriteLog($File, "Служба: "&$service&" не найдена!")
  16.      msgbox(0,"","Служба: "&$service&" не найдена")
  17.    EndIf
  18.  
  19.      $run=stop()
  20.    If $run = 0 Then
  21.       ;_FileWriteLog($File, "Служба: "&$service&" уже запущена")
  22.       msgbox(0,"","Служба: "&$service&" уже остановлена")
  23.    ElseIf $run = 1 Then
  24.      ; _FileWriteLog($File,"Служба: "&$service&" запущена")
  25.      msgbox(0,"","Служба: "&$service&" остановлена")
  26.    ElseIf $run = 2 Then
  27.      ; _FileWriteLog($File, "Служба: "&$service&" не удалось запустить!")
  28.      msgbox(0,"","Служба: "&$service&" не удалось остановить")
  29.    ElseIf $run = 3 Then
  30.      ; _FileWriteLog($File, "Служба: "&$service&" не найдена!")
  31.      msgbox(0,"","Служба: "&$service&" не найдена")
  32.    EndIf
  33.  
  34. ;Функция для получения вывода от sc
  35. Func _StdOut($pid)
  36.     Local $data
  37.   ProcessWaitClose($pid)
  38.   $data = StdOutRead($pid)
  39.   If $data Then
  40.     Return $data
  41.   Else
  42.     MsgBox(0, "", "Не удалось получить вывод программы.")
  43.     Exit(4)
  44.   EndIf
  45. EndFunc
  46.  
  47. Func IsServiceInstalled(Const $service)
  48. Local $code = RunWait("sc.exe query " & $service)
  49.    If $code = 0 Then
  50.       Return 2 ;Существует
  51.    Else
  52.       Return 3 ;Не существует
  53.   EndIf
  54. EndFunc
  55.  
  56. ;Функция для проверки запуска службы
  57. Func IsServiceRunning(Const $service)
  58.   Local $pid = Run("sc.exe query " & $service, "", @SW_HIDE, $STDOUT_CHILD)
  59.   Local $data = _StdOut($pid)
  60.   ;MsgBox(0, "", $data)
  61.   If StringRegExp($data, "[^\r\n]+RUNNING") Then
  62.     ; "ЗАПУЩЕНА"
  63.     Return 0
  64.   ElseIf StringRegExp($data, "[^\r\n]+STOPPED") Then
  65.     ;Return "ОСТАНОВЛЕНА"
  66.     Return 1
  67.   Else
  68.     ;Return "ФИГ ЗНАЕТ"
  69.     MsgBox(0,"","Не удалось определить статус службы: " & $service)
  70.   EndIf
  71. EndFunc
  72.  
  73. Func Start()
  74.    $InstFunc = IsServiceInstalled($service)
  75.    If $InstFunc = 2 Then
  76.       $RunFunc = IsServiceRunning($service)
  77.       If $RunFunc = 0 Then
  78.          Return 0
  79.       ElseIf $RunFunc = 1 Then
  80.          RunWait("sc start " & $service)
  81.          Sleep(1000)
  82.          $RunFunc = IsServiceRunning($service)
  83.          If $RunFunc = 0 Then
  84.             Return 1
  85.          ElseIf $RunFunc = 1 Then
  86.             Return 2
  87.          EndIf
  88.       EndIf
  89.    ElseIf $InstFunc = 3 Then
  90.       Return 3
  91.    EndIf
  92. EndFunc
  93.  
  94. Func Stop()
  95.    $InstFunc = IsServiceInstalled($service)
  96.    If $InstFunc = 2 Then
  97.       $RunFunc = IsServiceRunning($service)
  98.       If $RunFunc = 1 Then
  99.          Return 0
  100.       ElseIf $RunFunc = 0 Then
  101.          RunWait("sc stop " & $service)
  102.          Sleep(1000)
  103.          $RunFunc = IsServiceRunning($service)
  104.          If $RunFunc = 1 Then
  105.             Return 1
  106.          ElseIf $RunFunc = 0 Then
  107.             Return 2
  108.          EndIf
  109.       EndIf
  110.    ElseIf $InstFunc = 3 Then
  111.       Return 3
  112.    EndIf
  113. EndFunc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement