Service.Query

number Service.Query ( string DisplayName,
string KeyName = "" )
Примеры

Описание

Запрашивает систему о состоянии указанной службы.

Параметры

DisplayName

(строка) Отображаемое имя службы, о которой нужно сделать запрос.

KeyName

(строка) Ключевое название службы, о которой нужно сделать запрос.

Возврат

ResultVariable

(число) Число обозначающее состояние указанной службы. Может быть одним из следующих:

КОНСТАНТА
CONSTANT
ЗНАЧЕНИЕ
VALUE
ОПИСАНИЕ
DESCRIPTION
SERVICE_NOT_FOUND0Служба не найдена.
SERVICE_STOPPED1Служба не запущена.
SERVICE_START_PENDING2Служба запускается.
SERVICE_STOP_PENDING3Служба останавливается.
SERVICE_RUNNING4Служба работает.
SERVICE_CONTINUE_PENDING 5Ожидается возобновление работы службы.
SERVICE_PAUSE_PENDING6Ожидается пауза службы.
SERVICE_PAUSED7Служба приостановлена (пауза).
SERVICE_ERROR-1Возвращается при ошибке.

Можно использовать действие Application.GetLastError для определения случился ли отказ в работе этого действия и почему.

При добавлении действия из редактора скрипта, можно использовать это поле для определения переменной, которая возвращает значение, сохраняющееся в ней.
Смотрите также: Связанные действия

Примеры

Пример 1

result = Service.Query("Service1", "");
Запрашиваем службу с отображаемым именем 'Service1' и сохраняем результат в переменной 'result'.

Пример 2

-- Specify the service to query
-- Определяем запрашиваемую службу
ServiceToQueryDisplay = "Service1";
ServiceToQueryKey = "Boom";

-- Query the specified service
-- Запрашиваем указанную службу
QueryResult = Service.Query(ServiceToQueryDisplay, ServiceToQueryKey);
if not (QueryResult == SERVICE_RUNNING) then
    -- Set err to 0
    -- Устанавливаем переменную err в 0
    err = 0;
    -- The service is not running.
    -- Служба не запущена.
    if (QueryResult == SERVICE_PAUSED) then
        -- The service is paused, try continue
        -- Служба находится в паузе, пробуем возобновить работу
        Service.Continue(ServiceToQueryDisplay, ServiceToQueryKey);
        err = Application.GetLastError();
    elseif (QueryResult == SERVICE_STOPPED) then
        -- The service is stopped, try start
        -- Служба остановлена, пробуем запустить
        Service.Start(ServiceToQueryDisplay, ServiceToQueryKey, nil);
        err = Application.GetLastError();
    end
    if not (err == 0) then
        -- An error happened with Continue/Start
        -- Произошла ошибка при возобновлении/запуске
        Dialog.Message("Error (" .. err .. ")", "Unable to start/restart the service.\r\nService is not running");
    else
        Dialog.Message("PERFECTION!", "The service was started/restarted fine.");
    end
else
    -- The service is running
    -- Служба работает
    Dialog.Message("PERFECTION!", "The service is running fine.");
end
Запрашиваем указанную службу. Если служба работает, показываем диалоговое окно сообщения. Если она не работает, перезапускаем её и показываем диалоговое окно сообщения об успешном запуске или ошибке.
Смотрите также: Связанные действия