请教一个比较普通的问题:如何获得服务管理器中所有服务列表
只要得到所有服务名称即可 谢谢 问题点数:20、回复次数:4Top
1 楼firmbird(firmbird)回复于 2004-11-01 09:15:24 得分 0
EnumServicesStatusTop
2 楼Pregunta(马甲狼)回复于 2004-11-01 09:35:19 得分 0
能提供具体点的例子吗 我查了MSDN在应用程序中好象不太好用啊Top
3 楼firmbird(firmbird)回复于 2004-11-01 11:32:49 得分 20
SC_HANDLE handle=OpenSCManager(NULL,NULL,SC_MANAGER_CREATE_SERVICE);
//enumerate services
LPENUM_SERVICE_STATUS pServices=(LPENUM_SERVICE_STATUS)LocalAlloc(LPTR,sizeof(LPENUM_SERVICE_STATUS)+10240);
DWORD cbBufSize=sizeof(LPENUM_SERVICE_STATUS)+10240;
DWORD cbBufNeeded;
DWORD ServicesReturned;
DWORD ResumeHandle=0;
while(TRUE){
if(!EnumServicesStatus(handle,SERVICE_WIN32,SERVICE_STATE_ALL,pServices,cbBufSize,&cbBufNeeded,&ServicesReturned,&ResumeHandle)){
cout<<pServices->lpDisplayName<<endl;
if(GetLastError()!=ERROR_MORE_DATA)
break;
}
else{
int count=0;
while(count<ServicesReturned){
cout<<pServices->lpDisplayName<<endl;
pServices++;
count++;
}
break;
}
}
CloseServiceHandle(handle);Top
4 楼Pregunta(马甲狼)回复于 2004-11-02 10:04:58 得分 0
谢谢你哦Top




