diff --git a/trunk/CHANGELOG.txt b/trunk/CHANGELOG.txt index f067ac2d3..51b7dc019 100644 --- a/trunk/CHANGELOG.txt +++ b/trunk/CHANGELOG.txt @@ -4,6 +4,7 @@ Process Hacker * NEW: * CSR Processes tool - displays hidden processes (this does not detect Hacker Defender but does detect simple kernel-mode rootkits) + * Options window has a detailed description for each setting * FIXED: * Disables "Show one graph per CPU" if there is only one CPU * Process tree weirdness for users with limited privileges diff --git a/trunk/ProcessHacker/Forms/OptionsWindow.Designer.cs b/trunk/ProcessHacker/Forms/OptionsWindow.Designer.cs index 849891eb6..fa5534b47 100644 --- a/trunk/ProcessHacker/Forms/OptionsWindow.Designer.cs +++ b/trunk/ProcessHacker/Forms/OptionsWindow.Designer.cs @@ -50,6 +50,7 @@ this.checkShowTrayIcon = new System.Windows.Forms.CheckBox(); this.checkVerifySignatures = new System.Windows.Forms.CheckBox(); this.tabHighlighting = new System.Windows.Forms.TabPage(); + this.label22 = new System.Windows.Forms.Label(); this.label20 = new System.Windows.Forms.Label(); this.label19 = new System.Windows.Forms.Label(); this.label11 = new System.Windows.Forms.Label(); @@ -62,16 +63,6 @@ this.label5 = new System.Windows.Forms.Label(); this.label4 = new System.Windows.Forms.Label(); this.label3 = new System.Windows.Forms.Label(); - this.tabPlotting = new System.Windows.Forms.TabPage(); - this.checkPlotterAntialias = new System.Windows.Forms.CheckBox(); - this.label12 = new System.Windows.Forms.Label(); - this.label13 = new System.Windows.Forms.Label(); - this.label14 = new System.Windows.Forms.Label(); - this.label15 = new System.Windows.Forms.Label(); - this.label16 = new System.Windows.Forms.Label(); - this.label17 = new System.Windows.Forms.Label(); - this.toolTipProvider = new System.Windows.Forms.ToolTip(this.components); - this.label22 = new System.Windows.Forms.Label(); this.colorPackedProcesses = new ProcessHacker.Components.ColorModifier(); this.colorDotNetProcesses = new ProcessHacker.Components.ColorModifier(); this.colorJobProcesses = new ProcessHacker.Components.ColorModifier(); @@ -82,12 +73,21 @@ this.colorOwnProcesses = new ProcessHacker.Components.ColorModifier(); this.colorRemovedProcesses = new ProcessHacker.Components.ColorModifier(); this.colorNewProcesses = new ProcessHacker.Components.ColorModifier(); + this.tabPlotting = new System.Windows.Forms.TabPage(); + this.checkPlotterAntialias = new System.Windows.Forms.CheckBox(); + this.label12 = new System.Windows.Forms.Label(); + this.label13 = new System.Windows.Forms.Label(); + this.label14 = new System.Windows.Forms.Label(); + this.label15 = new System.Windows.Forms.Label(); + this.label16 = new System.Windows.Forms.Label(); + this.label17 = new System.Windows.Forms.Label(); this.colorIORO = new ProcessHacker.Components.ColorModifier(); this.colorIOW = new ProcessHacker.Components.ColorModifier(); this.colorMemoryWS = new ProcessHacker.Components.ColorModifier(); this.colorMemoryPB = new ProcessHacker.Components.ColorModifier(); this.colorCPUUT = new ProcessHacker.Components.ColorModifier(); this.colorCPUKT = new ProcessHacker.Components.ColorModifier(); + this.toolTipProvider = new System.Windows.Forms.ToolTip(this.components); ((System.ComponentModel.ISupportInitialize)(this.textUpdateInterval)).BeginInit(); this.tabControl.SuspendLayout(); this.tabGeneral.SuspendLayout(); @@ -104,6 +104,8 @@ this.label1.Size = new System.Drawing.Size(83, 13); this.label1.TabIndex = 0; this.label1.Text = "Update Interval:"; + this.toolTipProvider.SetToolTip(this.label1, "The number of milliseconds between each check for new, modified or removed object" + + "s."); // // textUpdateInterval // @@ -154,6 +156,8 @@ this.checkShowProcessDomains.Size = new System.Drawing.Size(156, 18); this.checkShowProcessDomains.TabIndex = 3; this.checkShowProcessDomains.Text = "Show user/group domains"; + this.toolTipProvider.SetToolTip(this.checkShowProcessDomains, "Shows account domains. For example, \"MyUser\" would be displayed as \"ComputerName\\" + + "MyUser\"."); this.checkShowProcessDomains.UseVisualStyleBackColor = true; // // checkWarnDangerous @@ -165,6 +169,8 @@ this.checkWarnDangerous.Size = new System.Drawing.Size(228, 18); this.checkWarnDangerous.TabIndex = 4; this.checkWarnDangerous.Text = "Warn about potentially dangerous actions"; + this.toolTipProvider.SetToolTip(this.checkWarnDangerous, "Warns about any attempts to suspend a system process or inspect a system process\'" + + " thread."); this.checkWarnDangerous.UseVisualStyleBackColor = true; // // label2 @@ -175,6 +181,8 @@ this.label2.Size = new System.Drawing.Size(80, 13); this.label2.TabIndex = 5; this.label2.Text = "Search Engine:"; + this.toolTipProvider.SetToolTip(this.label2, "The URL to open when searching for a process or module. \"%s\" is replaced with the" + + " process/module name."); // // textSearchEngine // @@ -234,6 +242,7 @@ this.buttonFont.Size = new System.Drawing.Size(75, 23); this.buttonFont.TabIndex = 15; this.buttonFont.Text = "Font..."; + this.toolTipProvider.SetToolTip(this.buttonFont, "The font to use for all lists and trees."); this.buttonFont.UseVisualStyleBackColor = true; this.buttonFont.Click += new System.EventHandler(this.buttonFont_Click); // @@ -252,6 +261,7 @@ this.label21.Size = new System.Drawing.Size(100, 13); this.label21.TabIndex = 13; this.label21.Text = "Require Signatures:"; + this.toolTipProvider.SetToolTip(this.label21, "A comma-separated list of process names to require valid signatures for."); // // checkHideHandlesWithNoName // @@ -262,6 +272,7 @@ this.checkHideHandlesWithNoName.Size = new System.Drawing.Size(160, 18); this.checkHideHandlesWithNoName.TabIndex = 12; this.checkHideHandlesWithNoName.Text = "Hide handles with no name"; + this.toolTipProvider.SetToolTip(this.checkHideHandlesWithNoName, "Hides unnamed handles by default. This can be changed in each process window."); this.checkHideHandlesWithNoName.UseVisualStyleBackColor = true; // // checkEnableKPH @@ -273,6 +284,8 @@ this.checkEnableKPH.Size = new System.Drawing.Size(217, 18); this.checkEnableKPH.TabIndex = 12; this.checkEnableKPH.Text = "Enable experimental kernel-mode driver"; + this.toolTipProvider.SetToolTip(this.checkEnableKPH, "Enables the experimental driver which allows Process Hacker to bypass rootkits an" + + "d security software to a certain extent."); this.checkEnableKPH.UseVisualStyleBackColor = true; // // comboSizeUnits @@ -300,6 +313,7 @@ this.label18.Size = new System.Drawing.Size(78, 13); this.label18.TabIndex = 10; this.label18.Text = "Max. Size Unit:"; + this.toolTipProvider.SetToolTip(this.label18, "The maximum unit of size to use."); // // checkStartHidden // @@ -310,6 +324,8 @@ this.checkStartHidden.Size = new System.Drawing.Size(89, 18); this.checkStartHidden.TabIndex = 9; this.checkStartHidden.Text = "Start hidden"; + this.toolTipProvider.SetToolTip(this.checkStartHidden, "Starts Process Hacker hidden. To restore it, double-click on the notification ico" + + "n."); this.checkStartHidden.UseVisualStyleBackColor = true; // // checkHideWhenMinimized @@ -321,6 +337,7 @@ this.checkHideWhenMinimized.Size = new System.Drawing.Size(131, 18); this.checkHideWhenMinimized.TabIndex = 9; this.checkHideWhenMinimized.Text = "Hide when minimized"; + this.toolTipProvider.SetToolTip(this.checkHideWhenMinimized, "Hides Process Hacker when it is minimized."); this.checkHideWhenMinimized.UseVisualStyleBackColor = true; // // checkShowTrayIcon @@ -329,9 +346,10 @@ this.checkShowTrayIcon.FlatStyle = System.Windows.Forms.FlatStyle.System; this.checkShowTrayIcon.Location = new System.Drawing.Point(6, 139); this.checkShowTrayIcon.Name = "checkShowTrayIcon"; - this.checkShowTrayIcon.Size = new System.Drawing.Size(102, 18); + this.checkShowTrayIcon.Size = new System.Drawing.Size(136, 18); this.checkShowTrayIcon.TabIndex = 7; - this.checkShowTrayIcon.Text = "Show tray icon"; + this.checkShowTrayIcon.Text = "Show notification icon"; + this.toolTipProvider.SetToolTip(this.checkShowTrayIcon, "A notification icon which can be configured to alert you of events."); this.checkShowTrayIcon.UseVisualStyleBackColor = true; this.checkShowTrayIcon.CheckedChanged += new System.EventHandler(this.checkShowTrayIcon_CheckedChanged); // @@ -344,11 +362,12 @@ this.checkVerifySignatures.Size = new System.Drawing.Size(254, 18); this.checkVerifySignatures.TabIndex = 3; this.checkVerifySignatures.Text = "Verify signatures and perform additional checks"; + this.toolTipProvider.SetToolTip(this.checkVerifySignatures, "Verifies the digital signatures of all processes and highlights certain types of " + + "suspicious processes."); this.checkVerifySignatures.UseVisualStyleBackColor = true; // // tabHighlighting // - this.tabHighlighting.Controls.Add(this.label22); this.tabHighlighting.Controls.Add(this.label20); this.tabHighlighting.Controls.Add(this.label19); this.tabHighlighting.Controls.Add(this.label11); @@ -379,6 +398,16 @@ this.tabHighlighting.Text = "Highlighting"; this.tabHighlighting.UseVisualStyleBackColor = true; // + // label22 + // + this.label22.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.label22.AutoSize = true; + this.label22.Location = new System.Drawing.Point(12, 387); + this.label22.Name = "label22"; + this.label22.Size = new System.Drawing.Size(300, 13); + this.label22.TabIndex = 10; + this.label22.Text = "Tip: Hover over an item to get a more detailed description of it."; + // // label20 // this.label20.Location = new System.Drawing.Point(214, 133); @@ -461,11 +490,13 @@ // label7 // this.label7.AutoSize = true; - this.label7.Location = new System.Drawing.Point(6, 8); + this.label7.Location = new System.Drawing.Point(6, 9); this.label7.Name = "label7"; this.label7.Size = new System.Drawing.Size(108, 13); this.label7.TabIndex = 4; this.label7.Text = "Highlighting Duration:"; + this.toolTipProvider.SetToolTip(this.label7, "The number of milliseconds for which new or removed objects will be highlighted a" + + "s such."); // // label6 // @@ -505,114 +536,6 @@ this.label3.TabIndex = 0; this.label3.Text = "New Objects:"; // - // tabPlotting - // - this.tabPlotting.Controls.Add(this.checkPlotterAntialias); - this.tabPlotting.Controls.Add(this.label12); - this.tabPlotting.Controls.Add(this.label13); - this.tabPlotting.Controls.Add(this.label14); - this.tabPlotting.Controls.Add(this.label15); - this.tabPlotting.Controls.Add(this.label16); - this.tabPlotting.Controls.Add(this.label17); - this.tabPlotting.Controls.Add(this.colorIORO); - this.tabPlotting.Controls.Add(this.colorIOW); - this.tabPlotting.Controls.Add(this.colorMemoryWS); - this.tabPlotting.Controls.Add(this.colorMemoryPB); - this.tabPlotting.Controls.Add(this.colorCPUUT); - this.tabPlotting.Controls.Add(this.colorCPUKT); - this.tabPlotting.Location = new System.Drawing.Point(4, 22); - this.tabPlotting.Name = "tabPlotting"; - this.tabPlotting.Padding = new System.Windows.Forms.Padding(3); - this.tabPlotting.Size = new System.Drawing.Size(417, 338); - this.tabPlotting.TabIndex = 2; - this.tabPlotting.Text = "Plotting"; - this.tabPlotting.UseVisualStyleBackColor = true; - // - // checkPlotterAntialias - // - this.checkPlotterAntialias.AutoSize = true; - this.checkPlotterAntialias.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.checkPlotterAntialias.Location = new System.Drawing.Point(6, 6); - this.checkPlotterAntialias.Name = "checkPlotterAntialias"; - this.checkPlotterAntialias.Size = new System.Drawing.Size(110, 18); - this.checkPlotterAntialias.TabIndex = 22; - this.checkPlotterAntialias.Text = "Use Anti-aliasing"; - this.checkPlotterAntialias.UseVisualStyleBackColor = true; - // - // label12 - // - this.label12.AutoSize = true; - this.label12.Location = new System.Drawing.Point(6, 135); - this.label12.Name = "label12"; - this.label12.Size = new System.Drawing.Size(87, 13); - this.label12.TabIndex = 21; - this.label12.Text = "IO Reads+Other:"; - // - // label13 - // - this.label13.AutoSize = true; - this.label13.Location = new System.Drawing.Point(6, 160); - this.label13.Name = "label13"; - this.label13.Size = new System.Drawing.Size(54, 13); - this.label13.TabIndex = 20; - this.label13.Text = "IO Writes:"; - // - // label14 - // - this.label14.AutoSize = true; - this.label14.Location = new System.Drawing.Point(6, 109); - this.label14.Name = "label14"; - this.label14.Size = new System.Drawing.Size(69, 13); - this.label14.TabIndex = 12; - this.label14.Text = "Working Set:"; - // - // label15 - // - this.label15.AutoSize = true; - this.label15.Location = new System.Drawing.Point(6, 83); - this.label15.Name = "label15"; - this.label15.Size = new System.Drawing.Size(72, 13); - this.label15.TabIndex = 13; - this.label15.Text = "Private Bytes:"; - // - // label16 - // - this.label16.AutoSize = true; - this.label16.Location = new System.Drawing.Point(6, 58); - this.label16.Name = "label16"; - this.label16.Size = new System.Drawing.Size(83, 13); - this.label16.TabIndex = 14; - this.label16.Text = "CPU User Time:"; - // - // label17 - // - this.label17.AutoSize = true; - this.label17.Location = new System.Drawing.Point(6, 32); - this.label17.Name = "label17"; - this.label17.Size = new System.Drawing.Size(91, 13); - this.label17.TabIndex = 10; - this.label17.Text = "CPU Kernel Time:"; - // - // toolTipProvider - // - this.toolTipProvider.AutomaticDelay = 250; - this.toolTipProvider.AutoPopDelay = 5000; - this.toolTipProvider.InitialDelay = 250; - this.toolTipProvider.IsBalloon = true; - this.toolTipProvider.ReshowDelay = 50; - this.toolTipProvider.ToolTipIcon = System.Windows.Forms.ToolTipIcon.Info; - this.toolTipProvider.ToolTipTitle = "Description"; - // - // label22 - // - this.label22.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.label22.AutoSize = true; - this.label22.Location = new System.Drawing.Point(6, 319); - this.label22.Name = "label22"; - this.label22.Size = new System.Drawing.Size(333, 13); - this.label22.TabIndex = 10; - this.label22.Text = "Tip: Hover over the names to get a more detailed description of them."; - // // colorPackedProcesses // this.colorPackedProcesses.Color = System.Drawing.Color.Transparent; @@ -693,6 +616,102 @@ this.colorNewProcesses.Size = new System.Drawing.Size(40, 20); this.colorNewProcesses.TabIndex = 1; // + // tabPlotting + // + this.tabPlotting.Controls.Add(this.checkPlotterAntialias); + this.tabPlotting.Controls.Add(this.label12); + this.tabPlotting.Controls.Add(this.label13); + this.tabPlotting.Controls.Add(this.label14); + this.tabPlotting.Controls.Add(this.label15); + this.tabPlotting.Controls.Add(this.label16); + this.tabPlotting.Controls.Add(this.label17); + this.tabPlotting.Controls.Add(this.colorIORO); + this.tabPlotting.Controls.Add(this.colorIOW); + this.tabPlotting.Controls.Add(this.colorMemoryWS); + this.tabPlotting.Controls.Add(this.colorMemoryPB); + this.tabPlotting.Controls.Add(this.colorCPUUT); + this.tabPlotting.Controls.Add(this.colorCPUKT); + this.tabPlotting.Location = new System.Drawing.Point(4, 22); + this.tabPlotting.Name = "tabPlotting"; + this.tabPlotting.Padding = new System.Windows.Forms.Padding(3); + this.tabPlotting.Size = new System.Drawing.Size(417, 338); + this.tabPlotting.TabIndex = 2; + this.tabPlotting.Text = "Plotting"; + this.tabPlotting.UseVisualStyleBackColor = true; + // + // checkPlotterAntialias + // + this.checkPlotterAntialias.AutoSize = true; + this.checkPlotterAntialias.FlatStyle = System.Windows.Forms.FlatStyle.System; + this.checkPlotterAntialias.Location = new System.Drawing.Point(6, 6); + this.checkPlotterAntialias.Name = "checkPlotterAntialias"; + this.checkPlotterAntialias.Size = new System.Drawing.Size(110, 18); + this.checkPlotterAntialias.TabIndex = 22; + this.checkPlotterAntialias.Text = "Use Anti-aliasing"; + this.toolTipProvider.SetToolTip(this.checkPlotterAntialias, "Uses anti-aliasing for all graphs. This can cause higher CPU usage on older compu" + + "ters."); + this.checkPlotterAntialias.UseVisualStyleBackColor = true; + // + // label12 + // + this.label12.AutoSize = true; + this.label12.Location = new System.Drawing.Point(6, 135); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(92, 13); + this.label12.TabIndex = 21; + this.label12.Text = "I/O Reads+Other:"; + this.toolTipProvider.SetToolTip(this.label12, "I/O reads and other operations - ReadFile, DeviceIoControl"); + // + // label13 + // + this.label13.AutoSize = true; + this.label13.Location = new System.Drawing.Point(6, 160); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(59, 13); + this.label13.TabIndex = 20; + this.label13.Text = "I/O Writes:"; + this.toolTipProvider.SetToolTip(this.label13, "I/O writes - WriteFile"); + // + // label14 + // + this.label14.AutoSize = true; + this.label14.Location = new System.Drawing.Point(6, 109); + this.label14.Name = "label14"; + this.label14.Size = new System.Drawing.Size(69, 13); + this.label14.TabIndex = 12; + this.label14.Text = "Working Set:"; + this.toolTipProvider.SetToolTip(this.label14, "The working set."); + // + // label15 + // + this.label15.AutoSize = true; + this.label15.Location = new System.Drawing.Point(6, 83); + this.label15.Name = "label15"; + this.label15.Size = new System.Drawing.Size(72, 13); + this.label15.TabIndex = 13; + this.label15.Text = "Private Bytes:"; + this.toolTipProvider.SetToolTip(this.label15, "The amount of memory not shared with other processes."); + // + // label16 + // + this.label16.AutoSize = true; + this.label16.Location = new System.Drawing.Point(6, 58); + this.label16.Name = "label16"; + this.label16.Size = new System.Drawing.Size(83, 13); + this.label16.TabIndex = 14; + this.label16.Text = "CPU User Time:"; + this.toolTipProvider.SetToolTip(this.label16, "Time spent in user-mode."); + // + // label17 + // + this.label17.AutoSize = true; + this.label17.Location = new System.Drawing.Point(6, 32); + this.label17.Name = "label17"; + this.label17.Size = new System.Drawing.Size(91, 13); + this.label17.TabIndex = 10; + this.label17.Text = "CPU Kernel Time:"; + this.toolTipProvider.SetToolTip(this.label17, "Time spent in kernel-mode."); + // // colorIORO // this.colorIORO.Color = System.Drawing.Color.Transparent; @@ -741,12 +760,23 @@ this.colorCPUKT.Size = new System.Drawing.Size(40, 20); this.colorCPUKT.TabIndex = 11; // + // toolTipProvider + // + this.toolTipProvider.AutomaticDelay = 250; + this.toolTipProvider.AutoPopDelay = 5000; + this.toolTipProvider.InitialDelay = 250; + this.toolTipProvider.IsBalloon = true; + this.toolTipProvider.ReshowDelay = 50; + this.toolTipProvider.ToolTipIcon = System.Windows.Forms.ToolTipIcon.Info; + this.toolTipProvider.ToolTipTitle = "Description"; + // // OptionsWindow // this.AcceptButton = this.buttonClose; this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(449, 417); + this.Controls.Add(this.label22); this.Controls.Add(this.tabControl); this.Controls.Add(this.buttonClose); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; @@ -767,6 +797,7 @@ this.tabPlotting.ResumeLayout(false); this.tabPlotting.PerformLayout(); this.ResumeLayout(false); + this.PerformLayout(); } diff --git a/trunk/ProcessHacker/Forms/OptionsWindow.resx b/trunk/ProcessHacker/Forms/OptionsWindow.resx index fb4813b39..d443dcf18 100644 --- a/trunk/ProcessHacker/Forms/OptionsWindow.resx +++ b/trunk/ProcessHacker/Forms/OptionsWindow.resx @@ -120,4 +120,13 @@ 17, 17 + + 17, 17 + + + 17, 17 + + + 17, 17 + \ No newline at end of file