ciw_blue吧 关注:22贴子:259
  • 2回复贴,共1

【源代码】进程管理器

只看楼主收藏回复

void CTestDlg::GetProcName()
{
((CListBox*)GetDlgItem( IDC_LIST1 ))->ResetContent( );
    PROCESSENTRY32 pe32;
pe32.dwSize=sizeof(pe32);

HANDLE hProcessSnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);

BOOL bMore=Process32First(hProcessSnap,&pe32);

while(bMore)
{     
((CListBox*)GetDlgItem( IDC_LIST1 ))-> AddString( pe32.szExeFile );
bMore=::Process32Next(hProcessSnap,&pe32);
}
   
::CloseHandle(hProcessSnap);
}

void CTestDlg::KillProc(DWORD dwId)
{

BOOL bRet=FALSE;

HANDLE hProcess=::OpenProcess(PROCESS_ALL_ACCESS,FALSE,dwId);
if(hProcess!=NULL)
{
bRet=::TerminateProcess(hProcess,0);
}

::CloseHandle(hProcess);

GetProcName();
}

void CTestDlg::OnKillProcBtn() 
{
CString procName;
    int index = ((CListBox*)GetDlgItem( IDC_LIST1 ))-> GetCurSel();
if( index > -1 )
{
((CListBox*)GetDlgItem( IDC_LIST1 ))->GetText( index , procName);
KillProc( GetProcIDFromName( procName ));
}
}

DWORD CTestDlg::GetProcIDFromName(CString name)
{
PROCESSENTRY32 pe;
DWORD id = 0;

HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
pe.dwSize = sizeof(PROCESSENTRY32);
if( !Process32First(hSnapshot,&pe) )
return 0;

do
{
pe.dwSize = sizeof(PROCESSENTRY32);
if( Process32Next(hSnapshot,&pe)==FALSE )
break;
if(strcmp(pe.szExeFile,name) == 0)
{
id = pe.th32ProcessID;
break;
}

} while(1);

CloseHandle(hSnapshot);

return id;
}



1楼2008-04-05 21:21回复
    void CTestDlg::OnLButtonDown(UINT nFlags, CPoint point) 
    {
    CDialog::OnLButtonDown(nFlags, point); 
     PostMessage(WM_NCLBUTTONDOWN ,HTCAPTION, MAKELPARAM(point.x, point.y)); 
     
    }

    void CTestDlg::OnCloseMe() 
    {
    if( MessageBox( "真的要退出程序吗?", "提示", MB_YESNO | MB_ICONWARNING ) == IDYES )
    {
    Shell_NotifyIcon(NIM_DELETE,&nid);
    ExitProcess( 0 );
    }
    }

    void CTestDlg::OnMinME() 
    {
    // TODO: Add your control notification handler code here
    OnSize( SIZE_MINIMIZED, 0, 0 );
    }


    2楼2008-04-05 21:22
    回复
      感觉用WIN API查进程弊端很大..
      不知道有没有从驱动上查的?


      3楼2010-04-22 18:15
      回复