Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在Windows7中以LocalSystem运行服务?_C++_Winapi_Windows 7_Windows Services - Fatal编程技术网

C++ 如何在Windows7中以LocalSystem运行服务?

C++ 如何在Windows7中以LocalSystem运行服务?,c++,winapi,windows-7,windows-services,C++,Winapi,Windows 7,Windows Services,我正试图按照Windows SDK中的说明编写我的第一个服务应用程序。我使用以下代码安装了该服务: SC_HANDLE schs=CreateService(sch, SERVICENAME,"VMFS - Servidor de arquivos", SC_MANAGER_CREATE_SERVICE, SERVICE_W

我正试图按照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。

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

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


谢谢你的时间

LocalSystem是默认帐户。我将重点调试您的服务的启动代码,以便了解当用户帐户不是您自己的帐户时,为什么它会失败。我不知道如何调试服务的启动代码。我使用C++Builder。我试过了,不工作,我改为“.\LoalSaleStand”,但也没有工作。您的服务正在启动,但没有及时报告它的状态(这就是1053个意思)。您的代码在ServiceMain()中执行什么操作,该函数被调用以启动您的服务?它是否访问网络、映射驱动器、注册表等。?试着尽可能地剥离它来调试这种情况。谢谢你的回答。我会尽量减少代码,看看它是否有效。但是,正如我所说,当我将帐户更改为我的个人帐户时,它会工作,我的ServiceMain会快速报告状态。好的。我提到的事情(访问映射驱动器、读取注册表)对每个用户的操作都不同,这可能解释了为什么该服务在您的帐户中工作,但在LocalSystem中不工作。我的系统路径不包括DLL的路径。仅设置了用户路径。现在,我使系统路径等于用户路径,不需要将DLL复制到服务路径。