| Компоненты | - ServiceTools |
ServiceTools
Краткое описание
Компонент предназначен для управления сервисами Windows
Параметры
Методы
События
Данные
Пример
Пример использования компонента ServiceTools
Пример перечисления сервисов в системе
Пример создания и управления сервисами
1. Создание сервиса My_Service
Создаем новый проект -- Файл -> Новый -> Windows -> Сервис, затем, копируем вышепреведенный код на поле, сохраняем схему под именем My_Service и компилируем ее. После получения файла My_Service.exe, копируем его в папку C:\
Примечание: Сервисы обязательно должны запускаться только из папок на основных дисках, с виртуальных дисков сервисы запускаться не смогут, по причине того, что виртуальные диски создаются уже после загрузки системных сервисов.
2. Управление сервисом My_Service при помощи компонента ServiceTools
Данный пример показывает установку и запуск сервиса в режиме RunType=Auto. Если не запустить сервис в режиме RunType=Auto сразу после установки, то он запустится автоматически после перезагрузки системы. Если при создании сервиса использовать режим RunType=Demand (Вручную), то сервис необходимо запускать всегда самостоятельно
Add(MainForm,2953706,112,84)
{
Width=354
Height=266
Caption="Пример использования ServiceTools"
BorderStyle=1
}
Add(ServiceTools,710980,238,119)
{
Name="Messenger"
link(onStatus,10241807:doMessage,[])
}
Add(Button,2340857,175,84)
{
Left=85
Top=90
Caption="start"
link(onClick,710980:doStart,[(229,90)(229,125)])
}
Add(Button,4628631,175,126)
{
Left=180
Top=90
Caption="stop"
link(onClick,710980:doStop,[])
}
Add(Message,10241807,301,119)
{
Message="service"
}
Add(MainForm,2953706,98,112)
{
Width=451
Caption="EnumServices"
Position=1
Point(WidthControls)
link(onCreate,7455525:doEnumServices,[])
link(WidthControls,1240927:GetData,[])
}
Add(ServiceTools,7455525,154,98)
{
ServiceType=0
Point(onEnumServices)
Point(doEnumServices)
link(onEnumServices,1620401:doRowAction,[])
}
Add(MTStrTbl,7661493,210,84)
{
Left=5
Top=5
Width=435
Height=210
Align=5
Name="tab"
Columns=#8:Name=120|16:Display Name=250|9:Status=50|
FlatScroll=1
}
Add(MST_RowAction,1620401,210,119)
{
MSTControl="tab"
}
Add(EventFromData,1240927,98,49)
{
link(onEvent,5959656:doData,[])
}
Add(DoData,5959656,147,49)
{
Data=Integer(0)
link(onEventData,1240927:doData,[(191,55)(191,43)(86,43)(86,55)])
}
1. Создание сервиса My_Service
Add(NTService,2953706,63,105)
{
ServiceName="My_Service"
Description="Test"
RunType=0
link(onStart,13027975:doMessage,[])
link(onStop,13077125:doMessage,[(119,125)(119,153)])
}
Add(Message,13027975,147,105)
{
Message="Start Service"
}
Add(Message,13077125,147,147)
{
Message="Stop Service"
}
Примечание: Сервисы обязательно должны запускаться только из папок на основных дисках, с виртуальных дисков сервисы запускаться не смогут, по причине того, что виртуальные диски создаются уже после загрузки системных сервисов.
2. Управление сервисом My_Service при помощи компонента ServiceTools
Add(MainForm,2953706,112,280)
{
}
Add(Button,12973883,112,168)
{
Left=10
Top=30
Caption="Install"
link(onClick,8515284:doInstall,[])
}
Add(Button,54097,112,203)
{
Left=70
Top=30
Caption="UnInstall"
link(onClick,8515284:doUninstall,[(181,209)(181,181)])
}
Add(Button,10212580,112,98)
{
Left=260
Top=30
Caption="Start"
link(onClick,8515284:doStart,[(192,104)(192,160)])
}
Add(Button,7403126,112,133)
{
Left=320
Top=30
Caption="Stop"
link(onClick,8515284:doStop,[(181,139)(181,167)])
}
Add(ServiceTools,8515284,238,154)
{
Name="My_Service"
FileName="c:\My_Service.exe"
Point(StatusService)
Point(doGetStatus)
Point(onGetStatus)
link(onGetStatus,15986041:doGetString,[])
}
Add(Timer,11687477,112,238)
{
Interval=100
link(onTimer,8515284:doGetStatus,[(192,244)(192,188)])
}
Add(StrList,15986041,294,133)
{
Strings=#13:Нет в сиcтеме|10:Остановлен|18:В процессе запуска|21:В процессе завершения|7:Запущен|44:В процессе запуска после временной остановки|30:В процессе временной остановки|19:Временно остановлен|
Point(doGetString)
Point(onGetString)
link(onGetString,8867508:doText,[])
}
Add(Edit,8867508,350,140)
{
Left=5
Top=5
Width=375
Text=""
}
Замечания
Обновление элемента: [svn]ServiceTools.pas[/svn]
BB-code статьи для вставки
Всего комментариев: 0
(комментарии к статье еще не добавлены)