0

我正在尝试按照 Windows SDK 中的说明编写我的第一个服务应用程序。我使用以下代码安装了该服务:

SC_HANDLE schs=CreateService(sch,
                             SERVICENAME,"VMFS - Servidor de arquivos",
                             SC_MANAGER_CREATE_SERVICE,
                             SERVICE_WIN32_OWN_PROCESS,
                             SERVICE_AUTO_START,
                             SERVICE_ERROR_NORMAL,
                             pathexe,
                             NULL/*LoadOrderGroup*/,
                             NULL/*TagId*/,
                             NULL/*Dependencies*/,
                             NULL/*Account:Local System*/,
                             NULL/*Password*/);

服务器未启动(错误 1053)。

但是,如果我转到 services.msc 并将服务更改为以我的帐户名 (Valdeci) 登录,则该服务将启动。所以这似乎是一个登录错误。怎么了?我也想在 Windows XP 和 Vista 中运行我的服务,但没有尝试,因为我的开发机器有 Windows 7。

4

2 回答 2

1

尝试使用 NULL 而不是“.\\LocalSystem”,如CreateService 文档中所述。

于 2012-08-18T14:13:52.307 回答
0

我解决了我的问题!我遵循了收到的提示:将代码剥离为“无所事事”服务,但仍然无法正常工作。所以我得出结论,问题不在于代码本身。由于“丢失” DLL,该程序甚至没有启动。我发现“路径”在作为 LocalSystem 运行时的工作方式不同,因此我将所有运行时 DLL 复制到服务的文件夹中。这是我通常安装程序的方式,但在开发时我使用该路径。

谢谢你的时间!

于 2012-08-22T10:33:02.670 回答