首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

怎样关闭一个服务解决办法

2012-01-14 
怎样关闭一个服务编程关闭自动播放的服务Shell Hardware DetectionSC_HANDLE scHandleOpenSCManager(NU

怎样关闭一个服务
编程关闭自动播放的服务
"Shell Hardware Detection"

SC_HANDLE scHandle=OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS);
if(scHandle==NULL){
MessageBox("创建服务失败");
ErrorCode();
return;
}
SC_HANDLE hService=OpenService(scHandle,"Shell Hardware Detection",SC_MANAGER_ALL_ACCESS);
if(hService==NULL){//老是在这一步失败
ErrorCode();
MessageBox("打开服务失败");

return;
}
if(ControlService(hService,SERVICE_CONTROL_STOP,NULL)){
MessageBox("停止服务成功");
}
结果老是打开服务失败。。。。。。。。。
ERROR_SERVICE_DOES_NOT_EXIST
1060 The specified service does not exist as an installed service. 
这是错误代码

[解决办法]
//参照下面的代码对照你的代码即可解决问题 


SERVICE_STATUS ssStatus; 
DWORD fdwAccess; 
DWORD dwStartTickCount, dwWaitTime;
 
// The required service object access depends on the control. 
 
switch (fdwControl) 

case SERVICE_CONTROL_STOP: 
fdwAccess = SERVICE_STOP; 
break; 
 
case SERVICE_CONTROL_PAUSE: 
case SERVICE_CONTROL_CONTINUE: 
fdwAccess = SERVICE_PAUSE_CONTINUE; 
break; 
 
case SERVICE_CONTROL_INTERROGATE: 
fdwAccess = SERVICE_INTERROGATE; 
break; 
 
default: 
fdwAccess = SERVICE_INTERROGATE; 

 
// Open a handle to the service. 
 
schService = OpenService( 
schSCManager, // SCManager database 
TEXT("Sample_Srv"), // name of service 
fdwAccess); // specify access 
if (schService == NULL) 
{
printf("OpenService failed (%d)\n", GetLastError()); 
return FALSE;
}
 
// Send a control value to the service. 
 
if (! ControlService( 
schService, // handle to service 
fdwControl, // control value to send 
&ssStatus) ) // address of status info 
{
printf("ControlService failed (%d)\n", GetLastError()); 
return FALSE;
}
 
// Print the service status. 
 
printf("\nStatus of Sample_Srv: \n");
printf(" Service Type: 0x%x\n", ssStatus.dwServiceType); 
printf(" Current State: 0x%x\n", ssStatus.dwCurrentState); 
printf(" Controls Accepted: 0x%x\n", 
ssStatus.dwControlsAccepted); 
printf(" Exit Code: %d\n", ssStatus.dwWin32ExitCode); 
printf(" Service Specific Exit Code: %d\n", 
ssStatus.dwServiceSpecificExitCode); 
printf(" Check Point: %d\n", ssStatus.dwCheckPoint); 
printf(" Wait Hint: %d\n", ssStatus.dwWaitHint); 
 
return TRUE; 

热点排行