64,654
社区成员
发帖
与我相关
我的任务
分享
BOOL CNTService::Install()
{
// Open the Service Control Manager
SC_HANDLE hSCM = ::OpenSCManager(NULL, // local machine
NULL, // ServicesActive database
SC_MANAGER_ALL_ACCESS); // full access
if (!hSCM) return FALSE;
// Get the executable file path
char szFilePath[_MAX_PATH];
::GetModuleFileName(NULL, szFilePath, sizeof(szFilePath));
// Create the service
SC_HANDLE hService = ::CreateService(hSCM,
m_szServiceName,
m_szServiceName,
SERVICE_ALL_ACCESS,
SERVICE_WIN32_OWN_PROCESS,
SERVICE_AUTO_START, // start condition
SERVICE_ERROR_NORMAL,
szFilePath, //file path
NULL,
NULL,
NULL,
NULL,
NULL);
if (!hService) {
::CloseServiceHandle(hSCM);
return FALSE;
}
// tidy up
::CloseServiceHandle(hService);
::CloseServiceHandle(hSCM);
return TRUE;
}
system("net start \"Server Name\"");
SC_HANDLE hSCM = ::OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
if (hSCM == NULL)
{
MessageBox(_T("无法打开服务管理器"), szServiceName, MB_OK);
return;
}
SC_HANDLE hService = ::OpenService(hSCM, szServiceName, SERVICE_ALL_ACCESS);
if (hService == NULL)
{
::CloseServiceHandle(hSCM);
MessageBox( _T("无法打开指定服务,请检查服务是否安装"), szServiceName, MB_OK);
return;
}
//SERVICE_STATUS status;
BOOL b=StartService(hService, 0, NULL );
//删除服务
//BOOL bDelete = ::DeleteService(hService);
::CloseServiceHandle(hService);
::CloseServiceHandle(hSCM);
if (b)
{
MessageBox( _T("成功启动服务"), szServiceName, MB_OK);
return;
}
//LogEvent(_T("Service could not be deleted"));
MessageBox( _T("无法启动服务,请检查服务是否已经运行"), szServiceName, MB_OK);