枚举并结束进程

枚举进程

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);

	}

你可能感兴趣的:(枚举)