枚举进程
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); }