- 注册时间
- 2011-3-6
- 最后登录
- 1970-1-1
该用户从未签到
|
//安装服务
BOOL CreateSampleService()
{
SC_HANDLE schSCManager = OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS); // 打开服务控制管理数据库,并返回服务控制管理数据库的句柄
if (schSCManager == NULL)
{
return FALSE;
}
SC_HANDLE schService = CreateService(schSCManager,L"Regprotect",L"Regprotect",
SERVICE_ALL_ACCESS ,
SERVICE_WIN32_OWN_PROCESS,
SERVICE_DEMAND_START,SERVICE_ERROR_NORMAL,
L"C:\\Windows\\SysWOW64\\RegProtect\\RegProtect.exe",
NULL,NULL,NULL,NULL,NULL); //安装服务
if(schService == NULL)
{
return FALSE;
}
CloseServiceHandle(schSCManager); //关闭服务句柄
CloseServiceHandle(schService);
StartSampleService(); //启动服务
return TRUE;
}
//删除服务
BOOL DeliteSampleService()
{
SERVICE_STATUS status;
SC_HANDLE schSCManager = OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS); // 打开服务控制管
//理数据库,并返回服务控制管理数据库的句柄
if(schSCManager == NULL)
{
return FALSE;
}
SC_HANDLE schService = OpenService(schSCManager, L"Regprotect",
SERVICE_ALL_ACCESS | DELETE); // 获得服务句柄
if(schService == NULL)
{
return FALSE;
}
QueryServiceStatus(schService, &status); // 获得服务的当前状态
if (status.dwCurrentState != SERVICE_STOPPED) // 如果服务不处于停止状态,则将其状态设置为
//停止状态
ControlService(schService,SERVICE_CONTROL_STOP, &status);
DeleteService(schService); // 删除服务
CloseServiceHandle(schSCManager); // 关闭服务句柄
CloseServiceHandle(schService);
return TRUE;
}
//启动服务
BOOL StartSampleService()
{
SERVICE_STATUS status;
SC_HANDLE schSCManager = OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS); // 打开服务控制管
//理数据库,并返回服务控制管理数据库的句柄
if (schSCManager == NULL)
{
return FALSE;
}
SC_HANDLE schService = OpenService(schSCManager, L"Regprotect",
SERVICE_ALL_ACCESS | DELETE); // 获得服务句柄
if(schService == NULL)
{
return FALSE;
}
QueryServiceStatus(schService, &status); // 获得服务的当前状态
if (status.dwCurrentState = SERVICE_STOPPED) // 如果服务处于停止状态,则将其状态设置为启动
//状态
StartService(schService, 0, NULL); //启动服务
CloseServiceHandle(schSCManager); // 关闭服务句柄
CloseServiceHandle(schService);
retutn TRUE;
} |
|