繁体   English   中英

如何获得C ++ Windows服务的安装目录?

[英]How can I get the installed directory for a C++ Windows Service?

我有一个C ++ Windows服务,我想访问与该服务的可执行文件位于同一目录的可执行文件(通过系统功能)。 我想象要这样做,我将需要找到该目录,以便可以引用目标可执行文件的路径。 如何在代码中找到安装服务的目录?

正如其他人提到的那样, GetModuleFileName()可以完成此工作,但YMMV可以。 最可靠的方法是从注册表项HKLM\\System\\CurrentControlSet\\Services\\%ServiceName%\\ImagePath中读取此信息,其中%ServiceName%是服务的名称。

对于用C读取注册表的示例++检查这个出来。

祝好运!

您可以使用QueryServiceConfig()函数。 二进制文件的路径存储在QUERY_SERVICE_CONFIG结构的lpBinaryPathName字段中。

要看。

如果来自服务内部,则始终可以使用GetModuleFileName ,它会生成完全限定的路径。

如果来自另一个程序,则由于它是服务,因此您可以检查服务的注册表信息。

您可以使用GetModuleFileName函数。 请参阅“ 安装服务”示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM