private void OnSessionsEventHandler(SystemAdapterHandler adapterHandler, IEnumerable <Core.Packets.SysManager.SessionItem> sessions) { this.sessionsListView.Items.Clear(); this.sessionsListView.Items.AddRange(sessions .Select(c => new SessionViewItem(c.UserName, c.SessionId, c.SessionState, c.WindowStationName, c.HasUserProcess)) .ToArray()); }
private void OnSystemInfoHandlerEvent(SystemAdapterHandler adapterHandler, IEnumerable <SystemInfoItem> infoItems) { systemInfoList.Items.Clear(); foreach (var item in infoItems) { var lv = new ListViewItem(); lv.Text = item.ItemName; lv.SubItems.Add(item.Value); systemInfoList.Items.Add(lv); } }
private void OnProcessListHandlerEvent(SystemAdapterHandler adapterHandler, IEnumerable <ProcessItem> processItems) { var processLst = new List <ProcessItem>(processItems); var listViews = processList.Items.Cast <ProcListViewItem>().ToArray(); //待移除进程项 var waitRemoveItems = new Queue <ProcListViewItem>(); for (int i = 0; i < listViews.Length; i++) { var item = listViews[i]; var processIndex = processLst.FindIndex(c => c.ProcessId == item.ProcessId); if (processIndex > 0) { var process = processLst[processIndex]; processLst.RemoveAt(processIndex); item.Update(process.ProcessId, process.ProcessName, process.WindowName, process.WindowHandler, process.ProcessMemorySize, process.ProcessThreadCount, process.FilePath, process.SessionId, process.User); } else { waitRemoveItems.Enqueue(item); } } foreach (var item in processLst) { if (waitRemoveItems.Count > 0) { var processItem = waitRemoveItems.Dequeue(); processItem.Update(item.ProcessId, item.ProcessName, item.WindowName, item.WindowHandler, item.ProcessMemorySize, item.ProcessThreadCount, item.FilePath, item.SessionId, item.User); } else { var processItem = new ProcListViewItem(item.ProcessId, item.ProcessName, item.WindowName, item.WindowHandler, item.ProcessMemorySize, item.ProcessThreadCount, item.FilePath, item.SessionId, item.User); processList.Items.Add(processItem); } } for (int i = 0; i < waitRemoveItems.Count; i++) { var item = waitRemoveItems.Dequeue(); item.Remove(); } m_proNum.Text = processList.Items.Count.ToString(); }
private void OnOccupyHandlerEvent(SystemAdapterHandler adapterHandler, string cpuOccupy, string memroyOccupy) { this.cpuUse.Text = $"CPU使用率:{cpuOccupy}"; this.moryUse.Text = $"内存:{memroyOccupy}"; }