枚举进程
void CListprocessDlg::OnOK()
{
m_list.DeleteAllItems();
m_list.ModifyStyle(0,LVS_REPORT);
m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
m_list.InsertColumn(0,"进程ID",LVCFMT_LEFT,80);
m_list.InsertColumn(1,"进程名称",LVCFMT_LEFT,150);
HANDLE handle=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
PROCESSENTRY32* info=new PROCESSENTRY32;
info->dwSize=sizeof(PROCESSENTRY32);
int i=0;
if(Process32First(handle,info))
{
if(GetLastError()==ERROR_NO_MORE_FILES )
{
AfxMessageBox("No More Process");
}else
{
CString id;
id.Format("%d",info->th32ProcessID);
m_list.InsertItem(i,id);
m_list.SetItemData(i,info->th32ProcessID);
id.Format("%s",info->szExeFile);
m_list.SetItemText(i,1,id);
i++;
while(Process32Next(handle,info)!=FALSE)
{
id.Format("%5d",info->th32ProcessID);
m_list.InsertItem(i,id);
m_list.SetItemData(i,info->th32ProcessID);
id.Format("%s",info->szExeFile);
m_list.SetItemText(i,1,id);
i++;
}
}
}
CloseHandle(handle);
//CDialog::OnOK();
}
结束进程
POSITION pos;
pos=m_list.GetFirstSelectedItemPosition();
int select=m_list.GetNextSelectedItem(pos);
HANDLE h=OpenProcess(PROCESS_ALL_ACCESS,TRUE,m_list.GetItemData(select));
if(h!=NULL)
{
TerminateProcess(h,0);
}