|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.07.2021, 16:44 | #1 | |||
Пользователь
Регистрация: 05.06.2016
Сообщений: 66
|
Как получить дескриптор службы из DisplayName?
Службу времени взял так как она без зависимостей.
W32Time - из свойств службы. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentCo ntrolSet\services\W32Time] "DisplayName"="@%SystemRoot%\\syste m32\\w32time.dll,-200" Код собрался даже без warning. Код:
szSvcName, // name of service Поэтому попытался получить его через GetServiceKeyNameA() Попытался прошагать: Цитата:
Цитата:
В документации написано: Цитата:
Вот только как это дело "прошагать" если точки прерывания, после вызова GetServiceKeyNameA, не срабатывают? Как эту ServiceName вытащить, чтобы потом задать переменной? Последний раз редактировалось BDA; 06.07.2021 в 21:32. |
|||
06.07.2021, 17:08 | #2 | ||||
Форумчанин
Регистрация: 02.06.2021
Сообщений: 515
|
Цитата:
Цитата:
Цитата:
Цитата:
Зачем она вам? Что вы сделать хотите? |
||||
06.07.2021, 21:16 | #3 | ||
Пользователь
Регистрация: 05.06.2016
Сообщений: 66
|
Цитата:
Цитата:
Эти службы, после выхода из программ продолжают работать. Мне это не нравится. Железо старое. Хочу установить для них ручной запуск, в свойствах (по умолчанию- авто), сделать для каждой лаунчеры и ручную остановку служб(после закрытия программ). P.S. С++ только начал учить и хочется все знать :-) Последний раз редактировалось druidvic; 06.07.2021 в 21:29. |
||
06.07.2021, 21:26 | #4 | |
Пользователь
Регистрация: 05.06.2016
Сообщений: 66
|
Цитата:
пробовал объявлять сразу после main, LPSTR lpServiceName=NULL; без коментариев. результат тот же - падает. Последний раз редактировалось druidvic; 06.07.2021 в 21:34. |
|
06.07.2021, 21:38 | #5 |
Пользователь
Регистрация: 05.06.2016
Сообщений: 66
|
Вот и получается: чтобы запустить надо szSvcName сделать глобальной, а чтобы ее получить надо вызвать процедуру ошибки, при вызове которой прога падает.
|
06.07.2021, 22:55 | #6 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,341
|
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
07.07.2021, 14:57 | #7 |
Пользователь
Регистрация: 05.06.2016
Сообщений: 66
|
BDA, Код собирается и работает на "Ура". С типами Вы, слава богу, нигде не напутали.
Свои ошибки осознал. Чтобы прога не падала надо было использовать if ... else. Это основная моя ошибка. Вместо lpcchBuffer - &lpcchBuffer, т.е. сразу указатель. Вместо "W32Time" - "Служба времени Windows" Спасибо! Без Вас бы код долго исправлял. P.S. Еще раз проштудирую, и можно двигаться дальше. Конечная цель - лаунчер, который будет запускать службы (перед открытием программы), отслеживать завершение и останавливать связанные службы. |
07.07.2021, 18:06 | #8 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
В этом случае службы известны заранее - можно воспользоваться servicename вместо display service name, ибо экранное имя может меняться в зависимости от локализации винды.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как получить дескриптор? | druidvic | Общие вопросы C/C++ | 10 | 05.08.2021 17:05 |
Как получить иконку зная дескриптор? | pavellyba | Общие вопросы Delphi | 0 | 25.09.2011 01:08 |
Как правильно получить дескриптор на устройство | Master_Devel | Win Api | 2 | 24.05.2011 23:54 |
как получить дескриптор приложения в C#? | fiatik | Общие вопросы .NET | 1 | 08.11.2008 08:18 |