![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать состояние службы?
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.