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;
}
{
((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;
}