ProcessModule.cpp
上传用户:shouhua
上传日期:2014-12-06
资源大小:5685k
文件大小:2k
源码类别:

杀毒

开发平台:

Visual C++

  1. // ProcessModule.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "AntiEvilTools.h"
  5. #include "ProcessModule.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CProcessModule dialog
  13. CProcessModule::CProcessModule(CWnd* pParent /*=NULL*/)
  14. : CDialog(CProcessModule::IDD, pParent)
  15. {
  16. //{{AFX_DATA_INIT(CProcessModule)
  17. // NOTE: the ClassWizard will add member initialization here
  18. //}}AFX_DATA_INIT
  19. }
  20. void CProcessModule::DoDataExchange(CDataExchange* pDX)
  21. {
  22. CDialog::DoDataExchange(pDX);
  23. //{{AFX_DATA_MAP(CProcessModule)
  24. DDX_Control(pDX, IDC_LIST_PROCESS_MODULE, m_listModule);
  25. //}}AFX_DATA_MAP
  26. }
  27. BEGIN_MESSAGE_MAP(CProcessModule, CDialog)
  28. //{{AFX_MSG_MAP(CProcessModule)
  29. // NOTE: the ClassWizard will add message map macros here
  30. //}}AFX_MSG_MAP
  31. END_MESSAGE_MAP()
  32. /////////////////////////////////////////////////////////////////////////////
  33. // CProcessModule message handlers
  34. BOOL CProcessModule::OnInitDialog() 
  35. {
  36. CDialog::OnInitDialog();
  37. // TODO: Add extra initialization here
  38. pid = -1;
  39. m_listModule.SetExtendedStyle(LVS_EX_FULLROWSELECT);
  40. m_listModule.InsertColumn(0, "模块", LVCFMT_LEFT, 80);
  41. m_listModule.InsertColumn(1, "路径", LVCFMT_LEFT, 320);
  42. return TRUE;  // return TRUE unless you set the focus to a control
  43.               // EXCEPTION: OCX Property Pages should return FALSE
  44. }
  45. void CProcessModule::SetPID(DWORD tPid)
  46. {
  47.      pid = tPid;
  48. }
  49. void CProcessModule::Refresh()
  50. {
  51. // TODO: Add extra validation here
  52. DWORD pid = GetPid();
  53. HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pid);
  54. if((int)hSnap == -1)
  55. {
  56. MessageBox("Create Failed!");
  57. return;
  58. }
  59. MODULEENTRY32 info;
  60. info.dwSize = sizeof(info);
  61.     m_listModule.DeleteAllItems();
  62. if(!Module32First(hSnap, &info))
  63. {
  64. MessageBox("Module32First Failed");
  65. return;
  66. }
  67. int index = 0;
  68. do
  69. {
  70. m_listModule.InsertItem(index, info.szModule);
  71. m_listModule.SetItemText(index, 1, info.szExePath);
  72. index++;
  73. }while(Module32Next(hSnap, &info));
  74. CloseHandle(hSnap);
  75. }
  76. DWORD CProcessModule::GetPid()
  77. {
  78. return pid;
  79. }