sphostMonitor.cpp 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #include "sphostMonitor.h"
  2. #include <iostream>
  3. #include <windows.h>
  4. #include <psapi.h>
  5. #include "tlhelp32.h "
  6. #pragma comment(lib,"psapi.lib")
  7. using namespace std;
  8. void getCurrentMemoryInfo(unsigned long *memorySize)
  9. {
  10. HANDLE handle = GetCurrentProcess();
  11. PROCESS_MEMORY_COUNTERS pmc;
  12. GetProcessMemoryInfo(handle, &pmc, sizeof(pmc));
  13. *memorySize = pmc.WorkingSetSize;
  14. }
  15. void cleanMemory()
  16. {
  17. EmptyWorkingSet(GetCurrentProcess());
  18. }
  19. void getHandleNum(unsigned long *handleNum)
  20. {
  21. GetProcessHandleCount(GetCurrentProcess(), handleNum);
  22. }
  23. unsigned long GetProcessIdFromName(char * name)
  24. {
  25. PROCESSENTRY32 pe;
  26. DWORD id = 0;
  27. HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  28. pe.dwSize = sizeof(PROCESSENTRY32);
  29. if (!Process32First(hSnapshot, &pe)) return 0;
  30. do
  31. {
  32. pe.dwSize = sizeof(PROCESSENTRY32);
  33. if (Process32Next(hSnapshot, &pe) == FALSE) break;
  34. if (stricmp(pe.szExeFile, name) == 0)
  35. {
  36. id = pe.th32ProcessID;
  37. break;
  38. }
  39. } while (TRUE);
  40. CloseHandle(hSnapshot);
  41. return id;
  42. }