#include?"pch.h" #include?<iostream> #include?<Windows.h> //線程同步:消息、事件、臨界區(qū)(不是內(nèi)核對(duì)象)、互斥體 //創(chuàng)建互斥體對(duì)象,守護(hù)程序利用OpenMutex()函數(shù)檢測(cè)對(duì)方的互斥體對(duì)象是否存在,不存在則創(chuàng)建進(jìn)程 //線程回調(diào)函數(shù) //參數(shù):程序名稱(chēng) DWORD?WINAPI?ThreadCheckProc(LPVOID?lParam)?{ STARTUPINFOA?si?=?{?sizeof(si)?}; PROCESS_INFORMATION?pi?=?{?0?}; HANDLE?hMutex; while?(true)?{ hMutex?=?OpenMutexA(MUTEX_ALL_ACCESS,?FALSE,?(LPCSTR)lParam); if?(!hMutex)?{ ????????//unicode下,用W版會(huì)失敗 CreateProcessA( (LPCSTR)lParam,? NULL,?NULL,?NULL, FALSE, CREATE_NEW_CONSOLE,? NULL,?NULL, &si,?&pi); WaitForSingleObject(pi.hProcess,?INFINITE); CloseHandle(pi.hProcess); CloseHandle(pi.hThread); } else?{ CloseHandle(hMutex); } Sleep(500); } } int?main() { DWORD?Tid; //創(chuàng)建自己的互斥體對(duì)象 CreateMutexA(NULL,?TRUE,?(LPCSTR)"p1.exe"); //創(chuàng)建線程檢測(cè)對(duì)方的互斥體 CreateThread(NULL,?0,?ThreadCheckProc,?(LPVOID*)"p2.exe",?0,?&Tid); while?(1)?{?Sleep(500);?}; return?0; }
克什克騰ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書(shū)銷(xiāo)售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書(shū)合作)期待與您的合作!
#include?"pch.h" #include?<iostream> #include?<Windows.h> /線程回調(diào)函數(shù) //參數(shù):程序名稱(chēng) DWORD?WINAPI?ThreadCheckProc(LPVOID?lParam)?{ STARTUPINFOA?si?=?{?sizeof(si)?}; PROCESS_INFORMATION?pi?=?{?0?}; HANDLE?hMutex; while?(true)?{ hMutex?=?OpenMutexA(MUTEX_ALL_ACCESS,?FALSE,?(LPCSTR)lParam); if?(!hMutex)?{ ????????//unicode下,用W版會(huì)失敗 CreateProcessA( (LPCSTR)lParam,? NULL,?NULL,?NULL, FALSE, CREATE_NEW_CONSOLE,? NULL,?NULL, &si,?&pi); WaitForSingleObject(pi.hProcess,?INFINITE); CloseHandle(pi.hProcess); CloseHandle(pi.hThread); } else?{ CloseHandle(hMutex); } Sleep(500); } } int?main() { DWORD?Tid; //創(chuàng)建自己的互斥體對(duì)象 CreateMutexA(NULL,?TRUE,?(LPCSTR)"p2.exe"); //創(chuàng)建線程檢測(cè)對(duì)方的互斥體 CreateThread(NULL,?0,?ThreadCheckProc,?(LPVOID*)"p1.exe",?0,?&Tid); while?(1)?{?Sleep(500);?}; return?0; }
編譯環(huán)境:vs2017? unicode
修改生成的程序?yàn)閜1.exe,p2.exe,并且p1.exe,p2.exe在同一路徑下,可以實(shí)現(xiàn)簡(jiǎn)單的雙進(jìn)程守護(hù)。
掛起其中的一個(gè)進(jìn)程,可以實(shí)現(xiàn)全部關(guān)閉。或者,迅速關(guān)閉p1.exe,p2.exe亦可。
網(wǎng)站名稱(chēng):C++實(shí)現(xiàn)雙進(jìn)程守護(hù)
鏈接分享:http://www.chinadenli.net/article18/gcigdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、App開(kāi)發(fā)、網(wǎng)站導(dǎo)航、企業(yè)網(wǎng)站制作、定制開(kāi)發(fā)、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)