Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Constants.au3>
- $service = "FirebirdServerDefaultInstance"
- $run=start()
- If $run = 0 Then
- ;_FileWriteLog($File, "Служба: "&$service&" уже запущена")
- msgbox(0,"","Служба: "&$service&" уже запущена")
- ElseIf $run = 1 Then
- ; _FileWriteLog($File,"Служба: "&$service&" запущена")
- msgbox(0,"","Служба: "&$service&" запущена")
- ElseIf $run = 2 Then
- ; _FileWriteLog($File, "Служба: "&$service&" не удалось запустить!")
- msgbox(0,"","Служба: "&$service&" не удалось запустить")
- ElseIf $run = 3 Then
- ; _FileWriteLog($File, "Служба: "&$service&" не найдена!")
- msgbox(0,"","Служба: "&$service&" не найдена")
- EndIf
- $run=stop()
- If $run = 0 Then
- ;_FileWriteLog($File, "Служба: "&$service&" уже запущена")
- msgbox(0,"","Служба: "&$service&" уже остановлена")
- ElseIf $run = 1 Then
- ; _FileWriteLog($File,"Служба: "&$service&" запущена")
- msgbox(0,"","Служба: "&$service&" остановлена")
- ElseIf $run = 2 Then
- ; _FileWriteLog($File, "Служба: "&$service&" не удалось запустить!")
- msgbox(0,"","Служба: "&$service&" не удалось остановить")
- ElseIf $run = 3 Then
- ; _FileWriteLog($File, "Служба: "&$service&" не найдена!")
- msgbox(0,"","Служба: "&$service&" не найдена")
- EndIf
- ;Функция для получения вывода от sc
- Func _StdOut($pid)
- Local $data
- ProcessWaitClose($pid)
- $data = StdOutRead($pid)
- If $data Then
- Return $data
- Else
- MsgBox(0, "", "Не удалось получить вывод программы.")
- Exit(4)
- EndIf
- EndFunc
- Func IsServiceInstalled(Const $service)
- Local $code = RunWait("sc.exe query " & $service)
- If $code = 0 Then
- Return 2 ;Существует
- Else
- Return 3 ;Не существует
- EndIf
- EndFunc
- ;Функция для проверки запуска службы
- Func IsServiceRunning(Const $service)
- Local $pid = Run("sc.exe query " & $service, "", @SW_HIDE, $STDOUT_CHILD)
- Local $data = _StdOut($pid)
- ;MsgBox(0, "", $data)
- If StringRegExp($data, "[^\r\n]+RUNNING") Then
- ; "ЗАПУЩЕНА"
- Return 0
- ElseIf StringRegExp($data, "[^\r\n]+STOPPED") Then
- ;Return "ОСТАНОВЛЕНА"
- Return 1
- Else
- ;Return "ФИГ ЗНАЕТ"
- MsgBox(0,"","Не удалось определить статус службы: " & $service)
- EndIf
- EndFunc
- Func Start()
- $InstFunc = IsServiceInstalled($service)
- If $InstFunc = 2 Then
- $RunFunc = IsServiceRunning($service)
- If $RunFunc = 0 Then
- Return 0
- ElseIf $RunFunc = 1 Then
- RunWait("sc start " & $service)
- Sleep(1000)
- $RunFunc = IsServiceRunning($service)
- If $RunFunc = 0 Then
- Return 1
- ElseIf $RunFunc = 1 Then
- Return 2
- EndIf
- EndIf
- ElseIf $InstFunc = 3 Then
- Return 3
- EndIf
- EndFunc
- Func Stop()
- $InstFunc = IsServiceInstalled($service)
- If $InstFunc = 2 Then
- $RunFunc = IsServiceRunning($service)
- If $RunFunc = 1 Then
- Return 0
- ElseIf $RunFunc = 0 Then
- RunWait("sc stop " & $service)
- Sleep(1000)
- $RunFunc = IsServiceRunning($service)
- If $RunFunc = 1 Then
- Return 1
- ElseIf $RunFunc = 0 Then
- Return 2
- EndIf
- EndIf
- ElseIf $InstFunc = 3 Then
- Return 3
- EndIf
- EndFunc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement