我正在开发VS-2010中的C ++项目,我想安装一个Windows服务。我的问题是scinst是否默认存在于所有Windows 7和Windows 8中,是否可以使用以下代码在Windows中安装服务?或者我该怎么做才能实现它。
void CreateService(void)
{
system("sc create MyService binPath=c:\\abc.exe");
}
期待您的回应。
答案 0 :(得分:6)
您无需使用sc
命令,可以通过调用OpenSCManager()
和CreateService()
函数来安装服务。
答案 1 :(得分:1)
以下是一些示例代码,请务必添加正确的错误检查。
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);
文档链接: