private void timerCpu_Tick(object sender, EventArgs e) { ScanProcesses(); List <ListViewItem> removeList = new List <ListViewItem>(); foreach (ListViewItem item in listViewJavaProcesses.Items) { try { JavaProcess jp = item.Tag as JavaProcess; if (jp.Process.HasExited) { removeList.Add(item); } else { jp.Process.Refresh(); item.SubItems[COL_CPU].Text = $"{jp.CpuPTotalRel} %"; item.SubItems[COL_PRIVATEBYTES].Text = $"{jp.Process.WorkingSet64:n0}"; item.SubItems[COL_THREAD].Text = $"{jp.Process.Threads.Count:n0}"; } } catch (Exception ex) { item.SubItems[COL_ARGS].Text = "run log4jDigger as Administrator: " + ex.Message; } } foreach (ListViewItem item in removeList) { listViewJavaProcesses.Items.Remove(item); } }
private void openWithJConsoleToolStripMenuItem_Click(object sender, EventArgs e) { if (listViewJavaProcesses.SelectedItems.Count > 0) { String appPath = FindApplication("jconsole.exe"); if (appPath != null) { JavaProcess jp = listViewJavaProcesses.SelectedItems[0].Tag as JavaProcess; ProcessStartInfo si = new ProcessStartInfo(appPath, jp.Process.Id.ToString()); // si.Verb = "runas"; Process.Start(si); } } }
private void AddNewProcess(Process p) { JavaProcess jp = new JavaProcess(p); ListViewItem item = new ListViewItem(); item.Tag = jp; item.Text = jp.Process.Id.ToString(); ListViewSubItem sItemName = new ListViewSubItem(); sItemName.Text = jp.Process.ProcessName; item.SubItems.Add(sItemName); ListViewSubItem sItemStartTime = new ListViewSubItem(); try { sItemStartTime.Text = jp.Process.StartTime.ToString("dd.MM.yy HH:mm:ss"); } catch (Exception ex) { sItemStartTime.Text = "no access"; } item.SubItems.Add(sItemStartTime); ListViewSubItem sItemBytes = new ListViewSubItem(); sItemBytes.Text = $"{jp.Process.WorkingSet64:n0}"; item.SubItems.Add(sItemBytes); ListViewSubItem sItemThreads = new ListViewSubItem(); sItemThreads.Text = $"{jp.Process.Threads.Count:n0}"; item.SubItems.Add(sItemThreads); ListViewSubItem sItemCpu = new ListViewSubItem(); sItemCpu.Text = $"-"; item.SubItems.Add(sItemCpu); ListViewSubItem sItemArgs = new ListViewSubItem(); sItemArgs.Text = jp.CommandLine; item.SubItems.Add(sItemArgs); listViewJavaProcesses.Items.Add(item); }
public void ScanProcesses() { foreach (Process p in Process.GetProcessesByName("java").Union(Process.GetProcessesByName("javaw").Union(Process.GetProcessesByName("tomcat9")))) { ListViewItem item = listViewJavaProcesses.Items.Cast <ListViewItem>().FirstOrDefault(x => x.Text == p.Id.ToString()); if (item == null) { AddNewProcess(p); } else { JavaProcess jp = item.Tag as JavaProcess; jp.ScanCpu(); } } timerCpu.Enabled = true; }
private void contextMenuStripProcess_Opening(object sender, CancelEventArgs e) { if (listViewJavaProcesses.SelectedItems.Count > 0) { openFolderToolStripMenuItem.DropDownItems.Clear(); JavaProcess jp = (JavaProcess)listViewJavaProcesses.SelectedItems[0].Tag; if (jp.Paths != null) { foreach (String path in jp.Paths) { ToolStripMenuItem menuItem = new ToolStripMenuItem(); menuItem.Text = path; menuItem.Click += MenuItem_Click; openFolderToolStripMenuItem.DropDownItems.Add(menuItem); } } } }
private void enviromentToClipoardToolStripMenuItem_Click(object sender, EventArgs e) { if (listViewJavaProcesses.SelectedItems.Count > 0) { StringBuilder sb = new StringBuilder(); JavaProcess jp = listViewJavaProcesses.SelectedItems[0].Tag as JavaProcess; if (jp.Process.StartInfo.Environment != null) { foreach (KeyValuePair <String, String> kv in jp.Process.StartInfo.Environment.OrderBy(x => x.Key)) { sb.AppendLine($"{kv.Key}: {kv.Value}"); } } if (sb.Length > 0) { Clipboard.SetText(sb.ToString()); } } }