Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.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+使用SC.exe安装Windows服务+;编码 我正在研究一个VS2010的C++项目,我想安装一个Windows服务。我的问题是默认情况下是否在所有Windows 7和Windows 8中都存在sc.exe,是否可以使用以下代码在Windows中安装服务?或者我还应该做些什么来实现它 void CreateService(void) { system("sc create MyService binPath=c:\\abc.exe"); }_Windows_Winapi - Fatal编程技术网

通过C+使用SC.exe安装Windows服务+;编码 我正在研究一个VS2010的C++项目,我想安装一个Windows服务。我的问题是默认情况下是否在所有Windows 7和Windows 8中都存在sc.exe,是否可以使用以下代码在Windows中安装服务?或者我还应该做些什么来实现它 void CreateService(void) { system("sc create MyService binPath=c:\\abc.exe"); }

通过C+使用SC.exe安装Windows服务+;编码 我正在研究一个VS2010的C++项目,我想安装一个Windows服务。我的问题是默认情况下是否在所有Windows 7和Windows 8中都存在sc.exe,是否可以使用以下代码在Windows中安装服务?或者我还应该做些什么来实现它 void CreateService(void) { system("sc create MyService binPath=c:\\abc.exe"); },windows,winapi,Windows,Winapi,期待您的回复。您不需要使用sc命令,您可以通过调用OpenSCManager()和CreateService()函数来安装服务。这里是一些示例代码,请确保添加正确的错误检查 SC_HANDLE h_manager = NULL; SC_HANDLE h_service = NULL; h_manager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS); h_service = CreateServiceW( h_manager,

期待您的回复。

您不需要使用
sc
命令,您可以通过调用
OpenSCManager()
CreateService()
函数来安装服务。

这里是一些示例代码,请确保添加正确的错误检查

SC_HANDLE h_manager = NULL;
SC_HANDLE h_service = NULL;

h_manager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);

h_service = CreateServiceW( 
    h_manager,                 // SCM database
    L"MyService",              // name of service
    L"My Service",             // display name
    SERVICE_ALL_ACCESS,        // desired access
    SERVICE_WIN32_OWN_PROCESS, // service type
    SERVICE_AUTO_START,        // start type
    SERVICE_ERROR_NORMAL,      // error control type
    L"c:\\abc.exe",            // path to service's binary
    NULL,                      // no load ordering group
    NULL,                      // no tag identifier
    NULL,                      // no dependencies
    L"NT AUTHORITY\\NetworkService",
    L"");                     // no password

CloseServiceHandle(h_service); 
CloseServiceHandle(h_manager);
文档链接:


为什么不使用“OpenSCManager”和“CreateService”功能?@JoãoAugusto,为什么不回答这个问题。@Ben:我不知道是否需要使用sc.:)@大卫·费弗南:为什么?应该不惜一切代价避免。这是万不得已的办法。您的目标操作系统为处理服务提供了丰富的API。使用它。