以下程式碼可得知工作管理員上有什麼程式在運作,而且不用EMUN(超級浪費資源),隨查隨知,也可利用抓到的handle強制停止PROCESS/thread的運作。不佔資源,還滿好用的,TLHELP32真是好物阿…(煙)
需要kernel32.lib
#include <TLHELP32.H>
void CUninstallApp::FindProcessAndClose(CString Name)
{
CString GetName;
HANDLE hProcessSnap,hProcess;
BYTE PNum=0;
hProcessSnap = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 );
if( hProcessSnap != INVALID_HANDLE_VALUE ) {
PROCESSENTRY32 pe32;
pe32.dwSize = sizeof( PROCESSENTRY32 );
if( !Process32First( hProcessSnap, &pe32 ) ) {
CloseHandle( hProcessSnap ); // Must clean up the snapshot object!
}
else{
do{
GetName.Format("%s",pe32.szExeFile);
GetName.MakeLower();
if(GetName.Replace("要查的程式","要查的程式")!=0){//用Compare也一樣,也可加副檔名
HWND hwnd;
hwnd=NULL;
// AfxMessageBox(GetName);
hProcess=OpenProcess(PROCESS_TERMINATE,FALSE,pe32.th32ProcessID);
TerminateProcess(hProcess,1); //停止PROCESS
::ValidateRgn(NULL);
CloseHandle( hProcess );
CloseHandle( hProcessSnap );
break;
}
}while( Process32Next( hProcessSnap, &pe32 ) );
}
}
}
- May 12 Mon 2008 22:26
[C++]確認程式有沒有在跑/強制停止PROCESS
全站熱搜
留言列表