我已经编写了一个应用程序并使用服务来启动它。全部使用 C++,在 Windows 7 上。我的查询类似于Windows 服务如何确定其服务名称?
有没有办法在运行时确定(在 C++ 中)可执行文件中启动该可执行文件的服务的名称。
只需要一个指向正确方向的指针。
谢谢
我已经编写了一个应用程序并使用服务来启动它。全部使用 C++,在 Windows 7 上。我的查询类似于Windows 服务如何确定其服务名称?
有没有办法在运行时确定(在 C++ 中)可执行文件中启动该可执行文件的服务的名称。
只需要一个指向正确方向的指针。
谢谢
您可以使用EnumServicesStatus
获取所有服务的列表然后过滤它们,我想最好的方法是比较二进制名称。然后调用QueryServiceConfig
获取服务配置,包括服务名称。
我希望这就是你要找的。当然,要做到这一点,您的应用程序必须在 Windows Vista 和 7 中以管理员身份运行,否则调用OpenSCManager
肯定会失败。
编辑: 另一种快速方法是将服务名称硬编码在服务和可执行文件之间共享的 def 文件或单独的配置文件中,从而消除 SCManager 的所有麻烦