服務相關程式設計

2021-07-09 04:31:02 字數 2769 閱讀 9645

列舉服務:

void cservermanagedlg::showservicelist(dword dwservicetype)

dword dwbufsize = 512 * sizeof(enum_service_status);

dword dwbyteneeded, dwservicereturned, lpresumehandle = 0;

enum_service_status serstatus[512] = ;

bool bret = enumservicesstatus(hscm, dwservicetype, service_state_all, serstatus, dwbufsize,

&dwbyteneeded, &dwservicereturned, &lpresumehandle);

for(dword i=0; i.format("%d", i);

m_servicelist.insertitem(i, str);

m_servicelist.setitemtext(i, 1, serstatus[i].lpservicename); //服務名

m_servicelist.setitemtext(i, 2, serstatus[i].lpdisplayname); //顯示名稱

switch(serstatus[i].servicestatus

.dwcurrentstate) //服務當前狀態

case service_stopped:

case service_running:

default:

m_servicelist.setitemtext(i, 3, "其他");}}

closeservicehandle(hscm);

}

啟動服務:

void cservermanagedlg::onbuttonstart() 

if(-1 == nselected)

//獲取選中的服務的服務名

char szservicename[maxbyte] = ;

m_servicelist.getitemtext(nselected, 1, szservicename, maxbyte);

sc_handle hscm = openscmanager(null, null, sc_manager_all_access);

if(null == hscm)

sc_handle hscservice = openservice(hscm, szservicename, service_all_access);

//啟動服務

bool bret = startservice(hscservice, 0, null);

if(bret == true)

m_servicelist.setitemtext(nselected, 3, "執行");

else

int n = getlasterror();

closeservicehandle(hscservice);

closeservicehandle(hscm);

}

停止服務:

void cservermanagedlg::onbuttonstop() 

if(-1 == nselected)

//獲取選中的服務的服務名

char szservicename[maxbyte] = ;

m_servicelist.getitemtext(nselected, 1, szservicename, maxbyte);

sc_handle hscm = openscmanager(null, null, sc_manager_all_access);

if(null == hscm)

sc_handle hscservice = openservice(hscm, szservicename, service_all_access);

service_status servicestatus;

//停止服務

bool bret = controlservice(hscservice, service_control_stop, &servicestatus);

if(bret == true)

m_servicelist.setitemtext(nselected, 3, "停止");

else

int n = getlasterror();

closeservicehandle(hscservice);

closeservicehandle(hscm);

}

初始化:

程式設計相關文章

2016 6 libevent學習 fast portable non blocking network programming with libevent libevent原始碼分析 the way to go go入門指南 nginx開發從入門到精通 nginx模組開發入門 redis原始碼分析...

網路程式設計相關

http協議中get和post有什麼區別,cookie 和 essions有什麼不同和聯絡?音未公司 get是從伺服器上獲取資料,post是向伺服器傳送資料 get相對於post的話不安全,傳輸的資料一般明文顯示在 中,post一般使用者表單的提交,資料通過 l加密傳輸 get傳送的資料有限制,不能...

oracle相關服務介紹

成功安裝oracle 11g資料庫後,你會發現自己電腦執行速度會變慢,配置較低的電腦甚至出現非常卡的狀況,通過禁止非必須開啟的oracle服務可以提公升電腦的執行速度。那麼,具體該怎麼做呢?按照win7 64位環境下oracle 11g r2安裝詳解中的方法成功安裝oracle 11g後,共有7個服...