api控制系统服务

 

api控制系统服务 SC_HANDLE  sc = OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS);  // 服务控制器
api控制系统服务
api控制系统服务
// 获得服务状态
api控制系统服务
DWORD get_srvst(SC_HANDLE sc)
api控制系统服务
{
api控制系统服务
api控制系统服务 SC_HANDLE  schService;
api控制系统服务 
if (NULL == sc) 
api控制系统服务    printf(
"OpenSCManager failed (%d)\n", GetLastError());
api控制系统服务
api控制系统服务 schService 
= OpenService(
api控制系统服务        sc,          
// SCM database 
api控制系统服务
        L"sharedaccess",          // service name
api控制系统服务
        SERVICE_ALL_ACCESS); 
api控制系统服务 
api控制系统服务    
if (schService == NULL) 
api控制系统服务    

api控制系统服务  printf(
"OpenSCManager failed (%d)\n", GetLastError());
api控制系统服务        
return 0
api控制系统服务    }

api控制系统服务 SC_STATUS_TYPE st;
api控制系统服务 LPSERVICE_STATUS_PROCESS buf;
api控制系统服务 buf
=(LPSERVICE_STATUS_PROCESS) LocalAlloc(LPTR, 1024);
api控制系统服务 DWORD dwneed;
api控制系统服务 
if(QueryServiceStatusEx(schService,SC_STATUS_PROCESS_INFO,(LPBYTE)buf,1024,&dwneed))
api控制系统服务 
{
api控制系统服务  
return buf->dwCurrentState;
api控制系统服务 }

api控制系统服务
api控制系统服务 
return 0;
api控制系统服务
api控制系统服务 
api控制系统服务}

api控制系统服务
api控制系统服务
api控制系统服务
int  Open_Service(SC_HANDLE sc)
api控制系统服务
{
api控制系统服务
api控制系统服务
api控制系统服务    SC_HANDLE  schService;
api控制系统服务    
if (NULL == sc) 
api控制系统服务    printf(
"OpenSCManager failed (%d)\n", GetLastError());
api控制系统服务
api控制系统服务    schService 
= OpenService(
api控制系统服务        sc,          
// SCM database 
api控制系统服务
        L"sharedaccess",          // service name
api控制系统服务
        SERVICE_ALL_ACCESS); 
api控制系统服务 
api控制系统服务    
if (schService == NULL) 
api控制系统服务    

api控制系统服务        printf(
"OpenSCManager failed (%d)\n", GetLastError());
api控制系统服务        
return 0
api控制系统服务    }

api控制系统服务
api控制系统服务
api控制系统服务
api控制系统服务    
if (!StartService(
api控制系统服务            schService,  
// handle to service 
api控制系统服务
            0,           // number of arguments 
api控制系统服务
            NULL) )      // no arguments 
api控制系统服务
    {
api控制系统服务        
return 0
api控制系统服务    }

api控制系统服务    
else 
api控制系统服务    
{
api控制系统服务        printf(
"Service start pending.\n"); 
api控制系统服务    }

api控制系统服务    
api控制系统服务    CloseServiceHandle(schService);
api控制系统服务    
return 0;
api控制系统服务}

api控制系统服务
int  Close_Service(SC_HANDLE sc)
api控制系统服务
{
api控制系统服务    
api控制系统服务    SC_HANDLE  schService;
api控制系统服务    
if (NULL == sc) 
api控制系统服务    printf(
"OpenSCManager failed (%d)\n", GetLastError());
api控制系统服务
api控制系统服务    schService 
= OpenService(
api控制系统服务        sc,          
// SCM database 
api控制系统服务
        L"sharedaccess",          // service name
api控制系统服务
        SERVICE_ALL_ACCESS); 
api控制系统服务 
api控制系统服务
api控制系统服务    
if (schService == NULL) 
api控制系统服务    

api控制系统服务        
return 0
api控制系统服务    }

api控制系统服务    SERVICE_STATUS ssStatus; 
api控制系统服务
api控制系统服务    ControlService(schService,SERVICE_CONTROL_STOP,
&ssStatus);
api控制系统服务    CloseServiceHandle(schService);
api控制系统服务}
dwCurrentState
Current state of the service. This member can be one of the following values.
Value Meaning
SERVICE_CONTINUE_PENDING
0x00000005
The service continue is pending.
SERVICE_PAUSE_PENDING
0x00000006
The service pause is pending.
SERVICE_PAUSED
0x00000007
The service is paused.
SERVICE_RUNNING
0x00000004
The service is running.
SERVICE_START_PENDING
0x00000002
The service is starting.
SERVICE_STOP_PENDING
0x00000003
The service is stopping.
SERVICE_STOPPED
0x00000001
The service is not running.

你可能感兴趣的:(api)