【发布时间】:2012-08-28 13:10:05
【问题描述】:
我已经基于这个code example 编写了一个非常简单的服务应用程序。
应用程序作为其正常运行的一部分假定在它找到的目录或其执行路径中存在一个文件。
当我“安装”服务并随后从控制面板中的服务管理器“启动”服务时。应用程序失败,因为它找不到要打开和读取的文件(即使该文件与已安装的可执行文件位于同一目录中)。
我的问题是,当一个 Windows 服务运行时,预期的运行路径应该是什么?
调用“CreateService”时,似乎只有二进制文件的路径参数,而不是执行。有什么方法可以指出应该从哪里执行二进制文件?
我在 windows vista 和 windows 7 上试过这个。遇到同样的问题。
【问题讨论】:
-
没有。 GetModuleFileName(NULL, ...) 仍然可以找到 EXE 的位置。