private void GetMemoryInfo() { // Lấy thông tin trạng thái Memory MEMORYSTATUSEX statEX = new MEMORYSTATUSEX(); statEX.dwLength = (uint)Marshal.SizeOf(typeof(MEMORYSTATUSEX)); lbxInfo.Items.Clear(); if (API.GlobalMemoryStatusEx(ref statEX)) { pbRAM.Value = (int)statEX.dwMemoryLoad; lbRAM.Text = statEX.dwMemoryLoad + " %"; // 0-100 lbxInfo.Items.Add("Tổng kích thước (Vật lý): " + statEX.ullTotalPhys + " bytes"); lbxInfo.Items.Add("Kích thước (Vật lý) có sẵn: " + statEX.ullAvailPhys + " bytes"); lbxInfo.Items.Add("Kích thước (Ảo) đã sử dụng: " + (statEX.ullTotalPageFile - statEX.ullTotalPhys) + " bytes"); lbxInfo.Items.Add("Kích thước (Ảo) khả dụng: " + (statEX.ullAvailPageFile - statEX.ullAvailPhys) + " bytes"); } // Hàm lấy thông tin hiệu suất PERFORMANCE_INFORMATION perfInfo = new PERFORMANCE_INFORMATION(); uint input_size = (uint)System.Runtime.InteropServices.Marshal.SizeOf(typeof(PERFORMANCE_INFORMATION)); if (API.GetPerformanceInfo(out perfInfo, input_size)) { lbxInfo.Items.Add("-----------------------------------------------------------------------"); lbxInfo.Items.Add("Số trang tối đa hiện tại: " + perfInfo.CommitLimit.ToUInt64() + " pages"); lbxInfo.Items.Add("Số trang tối đa đồng thời: " + perfInfo.CommitPeak.ToUInt64() + " pages"); lbxInfo.Items.Add("Kích thước 1 trang: " + perfInfo.PageSize.ToUInt64() + " bytes"); lbxInfo.Items.Add("Số handle: " + perfInfo.HandleCount); lbxInfo.Items.Add("Số process: " + perfInfo.ProcessCount); lbxInfo.Items.Add("Số thread: " + perfInfo.ThreadCount); } }
private void GetProcesses() { procs = Process.GetProcesses(); //Trả về tất cả các tiến trình đang chạy trên máy tính if (Convert.ToInt32(lbProcess.Text) != procs.Length) { lbxProcess.Items.Clear(); for (int i = 0; i < procs.Length; i++) { lbxProcess.Items.Add("> " + procs[i].ProcessName); // Tạo danh sách tương tự task manager } } PERFORMANCE_INFORMATION perfInfo = new PERFORMANCE_INFORMATION(); uint input_size = (uint)System.Runtime.InteropServices.Marshal.SizeOf(typeof(PERFORMANCE_INFORMATION)); if (API.GetPerformanceInfo(out perfInfo, input_size)) { lbProcess.Text = perfInfo.ProcessCount.ToString(); } }
public static extern bool GetPerformanceInfo(out PERFORMANCE_INFORMATION pPerformanceInformation, uint cb);