1.调用OpenService(...) 和QueryServiceConfig(...) 两个API查询服务节点启动类型和文件路径;
SC_HANDLE WINAPI OpenService( __in SC_HANDLE hSCManager, __in LPCTSTR lpServiceName, __in DWORD dwDesiredAccess );
BOOL WINAPI QueryServiceConfig( __in SC_HANDLE hService, __out LPQUERY_SERVICE_CONFIG lpServiceConfig, __in DWORD cbBufSize, __out LPDWORD pcbBytesNeeded );
MSDN解释如上;传入相应的参数即可得到
LPQUERY_SERVICE_CONFIG指针指向的类型结构体;
包含启动类型和文件路径,CServItem节点中添加 CString m_strBinPath; DWORD m_dwStartType;两个成员函数,保存文件路径和启动类型;
2.封装BOOL GetServPathAndStartType(LPCTSTR lpszServName, CServItem &tItem);和CString GetStartTypeString(DWORD dwStartType);函数,将所需信息压入CServItem节点中。
3.在EnumServicesStatus 遍历for循环中添加GetServPathAndStartType(pServNext->m_strServName, *pServNext);函数的调用压入启动类型和文件路径信息;
4.view视图添加列表函数:
GetListCtrl().SetItemText(idx, 2, m_ServCfg.GetStartTypeString(m_pHeader->m_dwStartType));
GetListCtrl().SetItemText(idx, 3, m_pHeader->m_strBinPath);
5.运行项目: