启动服务时找不到文件

时间:2011-11-01 16:28:35

标签: c++ windows-7

我在Windows 7中遇到问题,这可能与Windows处理驱动器上某些位置的用户文件的方式有关。我正在使用共享将文件复制到远程计算机。我然后将该文件添加为服务。问题是scm没有看到文件...它给我文件找不到错误。 一旦我将文件复制到共享,我可以设置权限吗?

HSCM = OpenSCManager(hostname.c_str(), SERVICES_ACTIVE_DATABASE, GENERIC_READ | SC_MANAGER_CREATE_SERVICE | SERVICE_START);

wstring remote_file_location = L"\\\\" + *hostname + L"\\admin$\\system32\\" + Service::GetServiceName() + L".exe";

CopyFile(&local_file_location[0], &remote_file_location[0], false)

SC_HANDLE h_service = CreateService(HSCM, servicename.c_str(), servicename.c_str(), SC_MANAGER_CREATE_SERVICE, SERVICE_WIN32_OWN_PROCESS, SERVICE_DEMAND_START, SERVICE_ERROR_IGNORE, (L"%SYSTEMROOT%\\system32\\" + servicename + L".exe").c_str(), NULL, NULL, NULL, NULL, NULL);

1 个答案:

答案 0 :(得分:0)

将文件存储在%systemroot%目录中可解决此问题。该文件现在可供所有用户使用。