From ca3b372d74b3493843b058fe172db735dbfbf580 Mon Sep 17 00:00:00 2001 From: wj32 Date: Sun, 23 Aug 2009 09:34:51 +0000 Subject: [PATCH] #2836706 - "Signature Column in Processes" git-svn-id: svn://svn.code.sf.net/p/processhacker/code@1737 21ef857c-d57f-4fe0-8362-d861dc6d29cd --- trunk/CHANGELOG.txt | 1 + .../Components/ProcessTree/ProcessNode.cs | 5 ++++ .../ProcessTree/ProcessTree.Designer.cs | 24 +++++++++++++++++++ .../ProcessTree/ProcessTreeModel.cs | 2 ++ 4 files changed, 32 insertions(+) diff --git a/trunk/CHANGELOG.txt b/trunk/CHANGELOG.txt index 13d1ab609..a08cbb592 100644 --- a/trunk/CHANGELOG.txt +++ b/trunk/CHANGELOG.txt @@ -2,6 +2,7 @@ Process Hacker 1.5 * NEW/IMPROVED: + * #2836706 - "Signature Column in Processes" * Improved kernel modules list * Detects custom kernels * Performance improvements diff --git a/trunk/ProcessHacker/Components/ProcessTree/ProcessNode.cs b/trunk/ProcessHacker/Components/ProcessTree/ProcessNode.cs index 98c614a08..3127dfe58 100644 --- a/trunk/ProcessHacker/Components/ProcessTree/ProcessNode.cs +++ b/trunk/ProcessHacker/Components/ProcessTree/ProcessNode.cs @@ -631,5 +631,10 @@ namespace ProcessHacker { get { return Utils.FormatTimeSpan(new TimeSpan(_pitem.Process.UserTime)); } } + + public string VerificationStatus + { + get { return _pitem.VerifyResult == VerifyResult.Trusted ? "Verified" : ""; } + } } } diff --git a/trunk/ProcessHacker/Components/ProcessTree/ProcessTree.Designer.cs b/trunk/ProcessHacker/Components/ProcessTree/ProcessTree.Designer.cs index 0a39dc33f..2bee85308 100644 --- a/trunk/ProcessHacker/Components/ProcessTree/ProcessTree.Designer.cs +++ b/trunk/ProcessHacker/Components/ProcessTree/ProcessTree.Designer.cs @@ -66,6 +66,7 @@ this.columnTotalCpuTime = new Aga.Controls.Tree.TreeColumn(); this.columnUserCpuTime = new Aga.Controls.Tree.TreeColumn(); this.columnKernelCpuTime = new Aga.Controls.Tree.TreeColumn(); + this.columnVerificationStatus = new Aga.Controls.Tree.TreeColumn(); this.nodeIcon = new Aga.Controls.Tree.NodeControls.NodeIcon(); this.nodeName = new Aga.Controls.Tree.NodeControls.NodeTextBox(); this.nodePid = new Aga.Controls.Tree.NodeControls.NodeIntegerTextBox(); @@ -104,6 +105,7 @@ this.nodeTotalCpuTime = new Aga.Controls.Tree.NodeControls.NodeTextBox(); this.nodeKernelCpuTime = new Aga.Controls.Tree.NodeControls.NodeTextBox(); this.nodeUserCpuTime = new Aga.Controls.Tree.NodeControls.NodeTextBox(); + this.nodeVerificationStatus = new Aga.Controls.Tree.NodeControls.NodeTextBox(); this.SuspendLayout(); // // treeProcesses @@ -147,6 +149,7 @@ this.treeProcesses.Columns.Add(this.columnTotalCpuTime); this.treeProcesses.Columns.Add(this.columnUserCpuTime); this.treeProcesses.Columns.Add(this.columnKernelCpuTime); + this.treeProcesses.Columns.Add(this.columnVerificationStatus); this.treeProcesses.DefaultToolTipProvider = null; this.treeProcesses.DisplayDraggingNodes = true; this.treeProcesses.Dock = System.Windows.Forms.DockStyle.Fill; @@ -194,6 +197,7 @@ this.treeProcesses.NodeControls.Add(this.nodeTotalCpuTime); this.treeProcesses.NodeControls.Add(this.nodeKernelCpuTime); this.treeProcesses.NodeControls.Add(this.nodeUserCpuTime); + this.treeProcesses.NodeControls.Add(this.nodeVerificationStatus); this.treeProcesses.SelectedNode = null; this.treeProcesses.SelectionMode = Aga.Controls.Tree.TreeSelectionMode.Multi; this.treeProcesses.ShowNodeToolTips = true; @@ -551,6 +555,15 @@ this.columnKernelCpuTime.TooltipText = null; this.columnKernelCpuTime.Width = 100; // + // columnVerificationStatus + // + this.columnVerificationStatus.Header = "Verification Status"; + this.columnVerificationStatus.IsVisible = false; + this.columnVerificationStatus.Sortable = true; + this.columnVerificationStatus.SortOrder = System.Windows.Forms.SortOrder.None; + this.columnVerificationStatus.TooltipText = null; + this.columnVerificationStatus.Width = 60; + // // nodeIcon // this.nodeIcon.DataPropertyName = "Icon"; @@ -917,6 +930,15 @@ this.nodeUserCpuTime.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; this.nodeUserCpuTime.Trimming = System.Drawing.StringTrimming.EllipsisCharacter; // + // nodeVerificationStatus + // + this.nodeVerificationStatus.DataPropertyName = "VerificationStatus"; + this.nodeVerificationStatus.EditEnabled = false; + this.nodeVerificationStatus.IncrementalSearchEnabled = true; + this.nodeVerificationStatus.LeftMargin = 3; + this.nodeVerificationStatus.ParentColumn = this.columnVerificationStatus; + this.nodeVerificationStatus.Trimming = System.Drawing.StringTrimming.EllipsisCharacter; + // // ProcessTree // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -1007,5 +1029,7 @@ private Aga.Controls.Tree.NodeControls.NodeTextBox nodeUserCpuTime; private Aga.Controls.Tree.TreeColumn columnRelativeStartTime; private Aga.Controls.Tree.NodeControls.NodeTextBox nodeRelativeStartTime; + private Aga.Controls.Tree.TreeColumn columnVerificationStatus; + private Aga.Controls.Tree.NodeControls.NodeTextBox nodeVerificationStatus; } } diff --git a/trunk/ProcessHacker/Components/ProcessTree/ProcessTreeModel.cs b/trunk/ProcessHacker/Components/ProcessTree/ProcessTreeModel.cs index 7ff7cbadc..2a078ec61 100644 --- a/trunk/ProcessHacker/Components/ProcessTree/ProcessTreeModel.cs +++ b/trunk/ProcessHacker/Components/ProcessTree/ProcessTreeModel.cs @@ -328,6 +328,8 @@ namespace ProcessHacker case "user cpu time": return ModifySort(n1.ProcessItem.Process.UserTime.CompareTo( n2.ProcessItem.Process.UserTime), sortO); + case "verification status": + return ModifySort(n1.VerificationStatus.CompareTo(n2.VerificationStatus), sortO); default: return 0; }