Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как узнать состояние службы?


OneFragLeft ©   (2004-12-01 20:13:00) 

Собственно сабж, стоит только добавить, что требуется узнать, состояние стандартных сервисов, конкретно Messenger.
Спасибо.


OneFragLeft   (2004-12-01 22:21:00) [1]

Ой, я уже нашёл.


OneFragLeft   (2004-12-01 22:12:00) [2]

А Вы не подскажите, в каком модуле описана QueryServiceStatus()? Я его что-то найти не могу.


VMcL   (2004-12-01 22:10:00) [3]

>> OneFragLeft ©  (01.12.04 22:05) [10]

Вообще-то здесь хендла процессав упор нету. Здесь есть хендл сервиса(SC_HANDLE).

Если бы Вы прочитали справку, Вы бы увидели:
hService
[in] Handle to the service. This handle is returned by the OpenServiceor the CreateServicefunction


В общем случае порядок вызова такой:
OpenSCManager(), OpenService(), QueryServiceStatus(), CloseServiceHandle(), CloseServiceHandle().


OneFragLeft   (2004-12-01 22:05:00) [4]

BOOL QueryServiceStatus(
    SC_HANDLE hService, // handle of service
    LPSERVICE_STATUS lpServiceStatus  // address of service status structure  
    );

Вот сюда надо хэндл. Поэтому я и спросил как его найти.
OpenProcess дает его, но надо ID проесса. Так?


VMcL   (2004-12-01 22:01:00) [5]

>> OneFragLeft ©  (01.12.04 21:51) [8]

[3] - это ответ на [2]. А связи [2] ни с сабджем, ни с [1] я, вообще-то, тоже не вижу.


OneFragLeft   (2004-12-01 21:51:00) [6]

[3]:)


VMcL   (2004-12-01 21:47:00) [7]

>> OneFragLeft ©  (01.12.04 21:44) [6]

Не вижу связи OpenProcess с сабджевой темой.


OneFragLeft   (2004-12-01 21:44:00) [8]

Хм..
HANDLE OpenProcess(
      DWORD dwDesiredAccess, // access flag
      BOOL bInheritHandle, // handle inheritance flag
      DWORD dwProcessId// process identifier
      );


VMcL   (2004-12-01 21:39:00) [9]

>> OneFragLeft ©  (01.12.04 21:33) [4]

А зачем, собственно?


OneFragLeft   (2004-12-01 21:33:00) [10]

Спасибо большое, но вот ещё вопрос: что указывать в качестве dwProcessId, где можно узнать какой он у определённой службы?


VMcL   (2004-12-01 21:26:00) [11]

>> OneFragLeft ©  (01.12.04 21:19) [2]

Например: OpenProcess, CreateProcess, ShellExecuteEx


OneFragLeft   (2004-12-01 21:19:00) [12]

А как получит хэндл процесса?


Leonid Troyanovsky   (2004-12-01 21:15:00) [13]


> OneFragLeft ©   (01.12.04 20:13)  
> Собственно сабж, стоит только добавить, что требуется узнать,
> состояние стандартных сервисов, конкретно Messenger.


QueryServiceStatus ?

--
С уважением, LVT.


Наверх

Титульная страница Поиск, карта сайта Написать письмо