void CShowAllProcessDlg::OnGetProcess()
{
// TODO: Add your control notification handler code here
HANDLE Snapshot;
Snapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
//获得某一时刻系统的进程、堆(heap)、模块(module)或线程的快照信息
PROCESSENTRY32 processListStr;
processListStr.dwSize=sizeof(PROCESSENTRY32);
BOOL return_value;
return_value=Process32First(Snapshot,&processListStr);
//获得系统进程链表中第一个进程的信息
m_showlist.DeleteAllItems();
int i=0;//item index
while(return_value)
{
m_showlist.InsertItem(i,processListStr.szExeFile,0);
CString s;
s.Format("%d",processListStr.cntThreads);
m_showlist.SetItemText(i,1,s);
s.Format("%d",processListStr.th32ParentProcessID);
m_showlist.SetItemText(i,2,s);
s.Format("%d",processListStr.pcPriClassBase);
m_showlist.SetItemText(i,3,s);
int memory=processListStr.cntThreads;
m_ProcessIndex[i]=processListStr.th32ProcessID;//save ID into array to teminate
return_value=Process32Next(Snapshot,&processListStr);
//获得系统进程链表中下一个进程的信息
i++;
}