Как я могу получить описание службы Windows, как показано ниже?Получить описание услуги?
Я попытался с помощью реестра Windows, но большинство услуг, по всей видимости, не имеет описания, или значение описания хранится в библиотеке DLL - так это, кажется, неправильный подход.
Пример:
Служба времени Windows (W32Time), описание в реестре отображается как
@% SystemRoot% \ system32 \ w32time.dll, -201
Тем не менее фактическое описание, приведенное в разделе Services.msc:
Поддерживает синхронизацию даты и времени на всех клиентах и серверах в сети . Если эта услуга остановлена, синхронизация даты и времени будет недоступна. Если эта служба отключена, то любые службы, которые явно зависят от нее, не запустится.
-
Я искал на сайте MSDN и наткнулся на это:
lpDescription
Описание сервиса. Если этот элемент равен NULL, описание не изменяется. Если это значение является пустой строкой (""), текущее описание удаляется.
Описание услуги не должно превышать размер значения реестра типа REG_SZ.
Этот элемент может указать локализованную строку, используя следующий формат:
@ [путь] DllName, -strID
Строка с идентификатором Strid загружается из DllName; путь опционально. Для получения дополнительной информации см RegLoadMUIString ....
-
pszOutBuf [вне, опционально]
Указатель на буфер, который получает строку.
Строки следующей формы получают специальную обработку:
@ [путь] \ DllName, -strID
Строка с идентификатором Strid загружается из DllName; путь опционально. Если параметр pszDirectory не равен NULL, каталог равен , который добавляется к пути, указанному в данных реестра. Обратите внимание: dllname может содержать переменные среды, которые необходимо развернуть.
который я думаю, что было бы предположить, почему просмотр реестра показал описание W32Time как @% SystemRoot% \ system32 \ w32time.dll, -201
Если я правильно понимаю, что нужно прочитать имя DLL в памяти и получить strID, где хранится сервисное описание?
Это все сбивает меня с толку, я был бы признателен, если бы кто-то мог помочь.
Все, что мне нужно - это получить описание Сервиса, оно, конечно, не может быть таким сложным, как это может быть?
Thanks :)
Что вы хотите сказать спасибо, вы пытаетесь быть саркастическим или чем-то еще? Я задал вопрос, на который я не был уверен, мне нужна была помощь и помощь. Я читал на MSDN и до сих пор не понял. Если бы я не отложил то, что я исследовал, это будет выглядеть для многих, что я просто искал кого-то другого, чтобы сделать эту работу для меня. Это не то, что я хочу, я просто хотел получить совет о том, как сделать что-то, на что я думал, для этого сайта. Не нужно даже саркастически относиться к этому. –
Фактически я не был [пытается быть] саркастическим. В любом случае, вы приняли ответ, в котором работники JEDI работали для вас. Это четко указывает. – OnTheFly
Windows может использовать ресурсы для хранения локализованных данных (например, сообщения журнала событий используют один и тот же механизм). Описание сервиса может быть локализовано таким же образом, и это стало еще более важным, поскольку язык Windows можно переключать, поэтому приложения не могут выполнять задачи локализации только при настройке. Вам нужно будет прочитать ресурсы DLL, используя правильную локаль для вашей системы. Но если вы используете API Service Manager, Windows сделает это за вас - и это будет «опубликованный» способ. Внутреннее хранение этих данных может измениться, API-интерфейсы более стабильны. –