Служба на Delphi, от начало до конца
В интернете достаточно много инструкций как написать службу на делфи, вроде все простые, но мне как новичку в создание служб на делфи, таких инструкций было не достаточно. Из-за этого я долго рожал свою первую службу.
Начинаем писать службу или сервис на делфи.
1) Запускаем Delphi
2) Выполняем команды File\ Close all
3) Далее File\New\ Other в появившимся окне во вкладке New (она у меня открывается по умолчанию) нужно выбрать Service application. После нажатие кнопки OK запускается проект службы.
4) Выбираем форму service1 во вкладке с лево нажимаем на events в событие Execute вставляем следующий код
///////////////////
While not terminated do
begin
sleep (100); // или 100 — эта задержка нужна, чтоб проц не грузить
ServiceThread.ProcessRequests (True); //цикл прекращается если true. продолжается если false
End
///////////////////
Он не даст службе закрываться после выполнение цикла работ.
Перед ним можно вставить свой код
Так же я использую свой код в службе в разделе oncreate
Туда я кидаю команды, которые нужно выполнить разово при запуске службы и включаю таймер, в котором и идет периодически работа.
5) Фактически служба готова
6) После компиляции проекта ctrl+f9 или просто f9, если ошибок нету, служба запустится выполнит часть своих работ и закроется, Это нормально, так и должно быть.
7) Устанавливаем нашу службу одним из следующих методов
А) можно в консоли ввести «адрес пути к нашей будущей службе\ имя файла с расширение» /install
В итоге служба установиться, выдав сообщение, что установка прошла успешно.
Б) можно просто создать ярлык файла в данном случае project.exe и в его свойствах написать в строке объект после кавычек /install.
Запускаем ярлык и видим сообщение об удачной установки, а если дописать после install команду silent то сообщение об установки видно не будет. (/install /silent)
8) Идем по следующему адресу Пуск\ панель управдения\администрирование\службы находим в списке нашу установленную службу. Стандартное имя у ней Service1, исполняемый файл project.exe
9) Нажимаем правой кнопочкой мыши по нашей службе, в появившемся меню нажимаем команду ПУСК. Все, после этого наша служба работает. Просмотреть её можно в диспетчере задач. Если служба заглючила то обычно она по тихому закрывается.