Guest User

Untitled

a guest
Jul 22nd, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.49 KB | None | 0 0
  1. public struct MEMORYSTATUS
  2. {
  3. public UInt32 dwLength;
  4. public UInt32 dwMemoryLoad;
  5. public UInt32 dwTotalPhys;
  6. public UInt32 dwAvailPhys;
  7. public UInt32 dwTotalPageFile;
  8. public UInt32 dwAvailPageFile;
  9. public UInt32 dwTotalVirtual;
  10. public UInt32 dwAvailVirtual;
  11. }
  12.  
  13. [DllImport("coredll.dll")]
  14. private static extern int GlobalMemoryStatus(ref MEMORYSTATUS lpBuffer);
  15.  
  16. public static void GetGlobalMemoryStatus(ref UInt32 dwTotal, ref UInt32 dwAvail,
  17. ref UInt32 dwProcTotal, ref UInt32 dwProcAvail)
  18. {
  19. MEMORYSTATUS status = new MEMORYSTATUS();
  20. GlobalMemoryStatus(ref status);
  21.  
  22. dwTotal = status.dwTotalPhys;
  23. dwAvail = status.dwAvailPhys;
  24. dwProcTotal = status.dwTotalVirtual;
  25. dwProcAvail = status.dwAvailVirtual;
  26. }
  27.  
  28. private void UpdateMemoryDisplay()
  29. {
  30. /*************************************************************************/
  31. bool IsTotalGB = false;
  32. bool IsUsedGB = false;
  33. uint TotalRamMemory = 0;
  34. uint AvailRamMemory = 0;
  35. uint ProcTotalRamMemory = 0;
  36. uint ProcAvailRamMemory = 0;
  37.  
  38. GetGlobalMemoryStatus(ref TotalRamMemory, ref AvailRamMemory,
  39. ref ProcTotalRamMemory, ref ProcAvailRamMemory);
  40.  
  41. float TotalMB = (float)((float)TotalRamMemory / (1024 * 1024));
  42. float UsedMB = TotalMB - (float)((float)AvailRamMemory / (1024 * 1024));
  43.  
  44. int RamPercent = (int)((UsedMB / TotalMB) * 100.0);
  45.  
  46. if (1000 < TotalMB)
  47. {
  48. TotalMB /= 1000;
  49. IsTotalGB = true;
  50. }
  51.  
  52. if (1000 < UsedMB)
  53. {
  54. UsedMB /= 1000;
  55. IsUsedGB = true;
  56. }
  57.  
  58. this.RamMemMinLbl.Text = UsedMB.ToString("0.0") + ((false != IsUsedGB) ? "GB" : "MB");
  59. this.RamMemMaxLbl.Text = TotalMB.ToString("0.0") + ((false != IsTotalGB) ? "GB" : "MB");
  60. this.RamMemPercent.Current = RamPercent;
  61.  
  62. IsUsedGB = false;
  63.  
  64. TotalMB = (float)((float)ProcTotalRamMemory / (1024 * 1024));
  65. UsedMB = TotalMB - (float)((float)ProcAvailRamMemory / (1024 * 1024));
  66.  
  67. if (1000 < UsedMB)
  68. {
  69. UsedMB /= 1000;
  70. IsUsedGB = true;
  71. }
  72.  
  73. this.ProcRamMemMinLbl.Text = UsedMB.ToString("0.0") + ((false != IsUsedGB) ? "GB" : "MB");
  74.  
  75. IsUsedGB = false;
  76.  
  77. UsedMB = (float)((float)GC.GetTotalMemory(false) / (1024 * 1024));
  78.  
  79. if (1000 < UsedMB)
  80. {
  81. UsedMB /= 1000;
  82. IsUsedGB = true;
  83. }
  84.  
  85. this.GCMemMinLbl.Text = UsedMB.ToString("0.0") + ((false != IsUsedGB) ? "GB" : "MB");
  86. /*************************************************************************/
  87. }
Add Comment
Please, Sign In to add comment