在某些應用場合下,我們可能需要在啟動a程序啟動時關閉程序b。mfc下該如何做呢?以下是我專案中用到的**:
int killprocess(dword pid)
//結束程序
if (terminateprocess(hprocess,0))
else }
int getprocess()
; processentry32 pe32;
pe32.dwsize=sizeof(pe32);
//獲得系統內所有程序快照
if(hprocesssnap==invalid_handle_value)
//列舉列表中的第乙個程序
bool bprocess=process32first(hprocesssnap,&pe32);
while(bprocess)
closehandle(hprocesssnap);
return 0;
}bool enabledebugprivilege()
if (!lookupprivilegevalue(null, se_debug_name, &sedebugnamevalue))
tkp.privilegecount = 1;
tkp.privileges[0].luid = sedebugnamevalue;
tkp.privileges[0].attributes = se_privilege_enabled;
if (!adjusttokenprivileges(htoken, false, &tkp, sizeof(tkp), null, null))
return true;
} void cangledetectsystemdlg::closesecondsys()
} while ( process32next ( hsyssnapshot, &proc ) );
} closehandle ( hsyssnapshot );
return;
}
其中void cangledetectsystemdlg::closesecondsys()是關閉程序的函式,「從機檢測系統.exe」是需要關閉的程序,你可以換成自己需要關閉的程序名稱。注意在關閉其他程序時,需要提公升當前程序的許可權。
順便附上在a程序中啟動b程序的**:
void cangledetectsystemdlg::opensecondsys()
; sys2_shell.fmask = see_mask_flag_ddewait;
sys2_shell.lpverb = "open";
sys2_shell.lpfile = "從機檢測系統.exe";
sys2_shell.nshow = sw_normal;
shellexecuteex(&sys2_shell);
}
用ntsd命令強制殺死程序
ntsd從2000開始就是系統自帶的使用者態除錯工具。被偵錯程式附著 attach 的程序會隨調 試器一起退出,所以可以用來在命令列下終止程序。使用ntsd自動就獲得了debug許可權,從而 能殺掉大部分的程序。只有system smss.exe和csrss.exe不能殺。前兩個是純核心態的,最 後...
windows下強制殺死tomcat程序
在windows作業系統中,我們在啟動乙個tomcat伺服器時,經常會發現8080埠已經被占用的錯誤,而我們又不知道如何停止這個tomcat伺服器。1 首先查詢到占用8080埠的程序號pid是多少 cmd netstat ano findstr 8080 這個命令輸出的最後一列表示占用8080埠的程...
用ntsd命令強制殺死程序
ntsd從2000開始就是系統自帶的使用者態除錯工具。被偵錯程式附著 attach 的程序會隨調試器一起退出,所以可以用來在命令列下終止程序。使用ntsd自動就獲得了debug許可權,從而能殺掉大部分的程序。只有system smss.exe和csrss.exe不能殺。前兩個是純核心態的,最後那個是...