gpt4 book ai didi

delphi - 获取服务的描述?

转载 作者:行者123 更新时间:2023-12-03 15:19:38 27 4
gpt4 key购买 nike

如何获取如下 Windows 服务的描述?

enter image description here

我尝试使用 Windows 注册表,但大多数服务似乎没有描述,或者描述值存储在 dll 中 - 所以这似乎是错误的方法。

示例:

Windows时间服务(W32Time),在注册表中的描述显示为

@%SystemRoot%\system32\w32time.dll,-201

然而,在 Services.msc 中看到的实际描述是:

Maintains date and time synchronization on all clients and servers in the network. If this service is stopped, date and time synchronization will be unavailable. If this service is disabled, any services that explicitly depend on it will fail to start.

-

我一直在 MSDN 网站上搜索并发现了这个:

SERVICE_DESCRIPTION structure

lpDescription

The description of the service. If this member is NULL, the description remains unchanged. If this value is an empty string (""), the current description is deleted.

The service description must not exceed the size of a registry value of type REG_SZ.

This member can specify a localized string using the following format:

@[path]dllname,-strID

The string with identifier strID is loaded from dllname; the path is optional. For more information, see RegLoadMUIString....

-

pszOutBuf [out, optional]

A pointer to a buffer that receives the string.

Strings of the following form receive special handling:

@[path]\dllname,-strID

The string with identifier strID is loaded from dllname; the path is optional. If the pszDirectory parameter is not NULL, the directory is prepended to the path specified in the registry data. Note that dllname can contain environment variables to be expanded.

我认为这可以说明为什么查看注册表将 W32Time 描述显示为 @%SystemRoot%\system32\w32time.dll,-201

如果我理解正确的话,我需要读取内存中的 dll 名称并检索存储服务描述的 strID?

这对我来说很困惑,如果有人能提供帮助,我将不胜感激。

我需要的只是获取服务的描述,它肯定不会像这样复杂,可以吗?

谢谢:)

最佳答案

在所有版本的 Delphi 中,JEDI JCL包含获得友好的服务描述所需的一切,以及与服务控制 API 相关的任何其他内容。

单元 JclSvcCtrl.pas 中的 TJclSCManager 类包含一个属性 Services,其中包括注册的每个服务的名称和描述,并且还允许您执行启动、停止、启用和禁用服务等操作。

更新:ldsandon 的另一个答案指出,Delphi RTL 显然已经在 XE2 的 WinSvc 单元中包含了这一点。请参阅下面有关 QueryServiceConfig2 的答案。感谢 ldsandon 指出了这一事实。

关于delphi - 获取服务的描述?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9136878/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com