用OnFresh()对当前进程表进行刷新
void OnFresh() { m_number=0; m_wndList.ResetContent(); HANDLE hSnapshot; hSnapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); PROCESSENTRY32 pe; Process32First(hSnapshot,&pe); do{ int index=m_wndList.AddString(pe.szExeFile); m_wndList.SetItemData(index,pe.th32ProcessID); m_number++; }while(Process32Next(hSnapshot,&pe)); CloseHandle(hSnapshot); GetDlgItem(IDC_STOP)->EnableWindow(FALSE); UpdateData (FALSE); } |
用void OnStop()对指定进程的停止操作
void CSHUTDOWNDlg::OnStop() { int index=m_wndList.GetCurSel(); DWORD data=m_wndList.GetItemData (index); HANDLE hProcess; hProcess=OpenProcess(PROCESS_TERMINATE,FALSE,data); if(hProcess)TerminateProcess(hProcess,0); else MessageBox("该程序可能已被关闭"); Sleep(500); OnFresh(); } |