eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 1 марта!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: CSRMO (+5 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Программирование —› Службы Windows
Посл.ответ Сообщение


Ранг: 752.8 (! !)
Статус: Участник
Student

Создано: 11 февраля 2016 19:12 New!
Цитата · Личное сообщение · #1

Когда устанавливаем службу задаётся произвольное имя под которым она будет известна в системе и по которому можно ей управлять.
Как программно из самой службы получить имя под которым она была установлена?

Ранг: 3.0 (гость)
Статус: Участник

Создано: 11 февраля 2016 19:33 New!
Цитата · Личное сообщение · #2

Что за служба?


Ранг: 140.7 (ветеран)
Статус: Участник

Создано: 11 февраля 2016 19:51 · Поправил: 11 февраля 2016 19:52 -=AkaBOSS=- New!
Цитата · Личное сообщение · #3

в ServiceMain имя службы передаётся в качестве первого аргумента:

SvcMain has access to the command-line arguments for the service in the way that the main function of a console application does. The first parameter contains the number of arguments being passed to the service in the second parameter. There will always be at least one argument. The second parameter is a pointer to an array of string pointers. The first item in the array is always the service name.

MSDN - Writing a ServiceMain Function

| Сообщение посчитали полезным: Rainbow, Isaev



Ранг: 752.8 (! !)
Статус: Участник
Student

Создано: 12 февраля 2016 13:09 · Поправил: 12 февраля 2016 13:13 Isaev New!
Цитата · Личное сообщение · #4

-=AkaBOSS=- пишет:
в ServiceMain имя службы передаётся в качестве первого аргумента


Это ServiceName... У службы есть ServiceName и DisplayName.

Например:
ServiceName = MySrv_Service (оно отображается в списке служб, оно же передаётся в ServiceMain)
DisplayName = My_Service

При установке службы через /INSTALL запрашиваются оба параметра, а управление происходит через DisplayName
Если нам нужно остановить службу например, нам нужно DisplayName, как это не странно... В данном случае:
Code:
  1. NET STOP My_Service

о котором служба не знает? или я просто его не могу найти


Ранг: 140.7 (ветеран)
Статус: Участник

Создано: 12 февраля 2016 13:18 New!
Цитата · Личное сообщение · #5

Isaev пишет:
Если нам нужно остановить службу например, нам нужно DisplayName

неа. Display Name это опциональное название, которое отображается в списке служб. По нему нельзя обратиться к службе, совсем.

разберём на примере:
служба установлена в раздел HKLM\SYSTEM\CurrentControlSet\Services\Spooler
DisplayName = Диспетчер очереди печати
ServiceName = Spooler

Угадай, какое имя используется для управления?


Ранг: 752.8 (! !)
Статус: Участник
Student

Создано: 12 февраля 2016 15:08 · Поправил: 12 февраля 2016 15:12 Isaev New!
Цитата · Личное сообщение · #6

-=AkaBOSS=- пишет:
Угадай, какое имя используется для управления?

похоже любое но это уже решает проблему... Я всегда пользовался первым, потому и затупил





PS: а для общего развития, DisplayName можно таки получить из самой службы?


Ранг: 140.7 (ветеран)
Статус: Участник

Создано: 12 февраля 2016 15:54 · Поправил: 12 февраля 2016 15:56 -=AkaBOSS=- New!
Цитата · Личное сообщение · #7

Isaev пишет:
DisplayName можно таки получить из самой службы?

GetServiceDisplayName?

| Сообщение посчитали полезным: Isaev



Ранг: 752.8 (! !)
Статус: Участник
Student

Создано: 12 февраля 2016 17:05 New!
Цитата · Личное сообщение · #8

похоже... после выходных попробую
 eXeL@B —› Программирование —› Службы Windows
Эта тема закрыта. Ответы больше не принимаются.

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS