浏览代码

Updated to v11.4

deadmoon 3 年之前
父节点
当前提交
8816d8f6ea

+ 7 - 0
CHANGELOG.md

@@ -2,6 +2,13 @@
 
 
 All notable changes to this project will be documented in this file.
 All notable changes to this project will be documented in this file.
 
 
+## [11.4] - 2022-01-30
+- New: Hardware specs tab
+- New: Network speed monitoring in Quick Access Menu (if enabled)
+
+## Verify your app using SHA256
+7A04483407F7493B6B18CFB56BFD42F1BE63CBAF3A4BD89CD25334E60DE318A7
+
 ## [11.3] - 2022-01-29
 ## [11.3] - 2022-01-29
 - Quality improvements in many aspects (Telemetry services, Enhanced privacy, etc.)
 - Quality improvements in many aspects (Telemetry services, Enhanced privacy, etc.)
 - Visual changes
 - Visual changes

+ 56 - 56
Optimizer/Forms/MainForm.Designer.cs

@@ -252,8 +252,6 @@ namespace Optimizer
             this.toolHWGoogle = new System.Windows.Forms.ToolStripMenuItem();
             this.toolHWGoogle = new System.Windows.Forms.ToolStripMenuItem();
             this.toolHWDuck = new System.Windows.Forms.ToolStripMenuItem();
             this.toolHWDuck = new System.Windows.Forms.ToolStripMenuItem();
             this.panel11 = new System.Windows.Forms.Panel();
             this.panel11 = new System.Windows.Forms.Panel();
-            this.btnCopyHW = new System.Windows.Forms.Button();
-            this.btnSaveHW = new System.Windows.Forms.Button();
             this.hwDetailed = new Optimizer.ToggleCard();
             this.hwDetailed = new Optimizer.ToggleCard();
             this.integratorTab = new System.Windows.Forms.TabPage();
             this.integratorTab = new System.Windows.Forms.TabPage();
             this.synapse = new Optimizer.MoonTabs();
             this.synapse = new Optimizer.MoonTabs();
@@ -396,6 +394,8 @@ namespace Optimizer
             this.trayExit = new System.Windows.Forms.ToolStripMenuItem();
             this.trayExit = new System.Windows.Forms.ToolStripMenuItem();
             this.launcherIcon = new System.Windows.Forms.NotifyIcon(this.components);
             this.launcherIcon = new System.Windows.Forms.NotifyIcon(this.components);
             this.helpBox = new Optimizer.MoonTip();
             this.helpBox = new Optimizer.MoonTip();
+            this.btnCopyHW = new System.Windows.Forms.LinkLabel();
+            this.btnSaveHW = new System.Windows.Forms.LinkLabel();
             this.tpanel.SuspendLayout();
             this.tpanel.SuspendLayout();
             ((System.ComponentModel.ISupportInitialize)(this.picUpdate)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.picUpdate)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
@@ -3521,8 +3521,8 @@ namespace Optimizer
             // panel11
             // panel11
             // 
             // 
             this.panel11.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
             this.panel11.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
-            this.panel11.Controls.Add(this.btnCopyHW);
             this.panel11.Controls.Add(this.btnSaveHW);
             this.panel11.Controls.Add(this.btnSaveHW);
+            this.panel11.Controls.Add(this.btnCopyHW);
             this.panel11.Controls.Add(this.hwDetailed);
             this.panel11.Controls.Add(this.hwDetailed);
             this.panel11.Dock = System.Windows.Forms.DockStyle.Top;
             this.panel11.Dock = System.Windows.Forms.DockStyle.Top;
             this.panel11.Location = new System.Drawing.Point(3, 3);
             this.panel11.Location = new System.Drawing.Point(3, 3);
@@ -3530,44 +3530,6 @@ namespace Optimizer
             this.panel11.Size = new System.Drawing.Size(993, 35);
             this.panel11.Size = new System.Drawing.Size(993, 35);
             this.panel11.TabIndex = 1;
             this.panel11.TabIndex = 1;
             // 
             // 
-            // btnCopyHW
-            // 
-            this.btnCopyHW.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
-            this.btnCopyHW.BackColor = System.Drawing.Color.DodgerBlue;
-            this.btnCopyHW.FlatAppearance.BorderSize = 0;
-            this.btnCopyHW.FlatAppearance.MouseDownBackColor = System.Drawing.Color.RoyalBlue;
-            this.btnCopyHW.FlatAppearance.MouseOverBackColor = System.Drawing.Color.RoyalBlue;
-            this.btnCopyHW.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
-            this.btnCopyHW.ForeColor = System.Drawing.Color.White;
-            this.btnCopyHW.Location = new System.Drawing.Point(703, 4);
-            this.btnCopyHW.Margin = new System.Windows.Forms.Padding(2);
-            this.btnCopyHW.Name = "btnCopyHW";
-            this.btnCopyHW.Size = new System.Drawing.Size(140, 25);
-            this.btnCopyHW.TabIndex = 91;
-            this.btnCopyHW.Tag = "themeable";
-            this.btnCopyHW.Text = "Copy";
-            this.btnCopyHW.UseVisualStyleBackColor = false;
-            this.btnCopyHW.Click += new System.EventHandler(this.btnCopyHW_Click);
-            // 
-            // btnSaveHW
-            // 
-            this.btnSaveHW.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
-            this.btnSaveHW.BackColor = System.Drawing.Color.DodgerBlue;
-            this.btnSaveHW.FlatAppearance.BorderSize = 0;
-            this.btnSaveHW.FlatAppearance.MouseDownBackColor = System.Drawing.Color.RoyalBlue;
-            this.btnSaveHW.FlatAppearance.MouseOverBackColor = System.Drawing.Color.RoyalBlue;
-            this.btnSaveHW.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
-            this.btnSaveHW.ForeColor = System.Drawing.Color.White;
-            this.btnSaveHW.Location = new System.Drawing.Point(847, 4);
-            this.btnSaveHW.Margin = new System.Windows.Forms.Padding(2);
-            this.btnSaveHW.Name = "btnSaveHW";
-            this.btnSaveHW.Size = new System.Drawing.Size(140, 25);
-            this.btnSaveHW.TabIndex = 90;
-            this.btnSaveHW.Tag = "themeable";
-            this.btnSaveHW.Text = "Save";
-            this.btnSaveHW.UseVisualStyleBackColor = false;
-            this.btnSaveHW.Click += new System.EventHandler(this.btnSaveHW_Click);
-            // 
             // hwDetailed
             // hwDetailed
             // 
             // 
             this.hwDetailed.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
             this.hwDetailed.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
@@ -3632,7 +3594,7 @@ namespace Optimizer
             // 
             // 
             // integrator7
             // integrator7
             // 
             // 
-            this.integrator7.Font = new System.Drawing.Font("Segoe UI Semibold", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.integrator7.Font = new System.Drawing.Font("Segoe UI Semibold", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
             this.integrator7.ForeColor = System.Drawing.Color.Silver;
             this.integrator7.ForeColor = System.Drawing.Color.Silver;
             this.integrator7.Location = new System.Drawing.Point(6, 225);
             this.integrator7.Location = new System.Drawing.Point(6, 225);
             this.integrator7.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.integrator7.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
@@ -3645,12 +3607,12 @@ namespace Optimizer
             // integrator6
             // integrator6
             // 
             // 
             this.integrator6.AutoSize = true;
             this.integrator6.AutoSize = true;
-            this.integrator6.Font = new System.Drawing.Font("Segoe UI Semibold", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.integrator6.Font = new System.Drawing.Font("Segoe UI Semibold", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
             this.integrator6.ForeColor = System.Drawing.Color.Silver;
             this.integrator6.ForeColor = System.Drawing.Color.Silver;
             this.integrator6.Location = new System.Drawing.Point(38, 183);
             this.integrator6.Location = new System.Drawing.Point(38, 183);
             this.integrator6.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.integrator6.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.integrator6.Name = "integrator6";
             this.integrator6.Name = "integrator6";
-            this.integrator6.Size = new System.Drawing.Size(122, 25);
+            this.integrator6.Size = new System.Drawing.Size(103, 21);
             this.integrator6.TabIndex = 9;
             this.integrator6.TabIndex = 9;
             this.integrator6.Tag = "";
             this.integrator6.Tag = "";
             this.integrator6.Text = "• Commands";
             this.integrator6.Text = "• Commands";
@@ -3658,12 +3620,12 @@ namespace Optimizer
             // integrator5
             // integrator5
             // 
             // 
             this.integrator5.AutoSize = true;
             this.integrator5.AutoSize = true;
-            this.integrator5.Font = new System.Drawing.Font("Segoe UI Semibold", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.integrator5.Font = new System.Drawing.Font("Segoe UI Semibold", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
             this.integrator5.ForeColor = System.Drawing.Color.Silver;
             this.integrator5.ForeColor = System.Drawing.Color.Silver;
             this.integrator5.Location = new System.Drawing.Point(38, 158);
             this.integrator5.Location = new System.Drawing.Point(38, 158);
             this.integrator5.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.integrator5.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.integrator5.Name = "integrator5";
             this.integrator5.Name = "integrator5";
-            this.integrator5.Size = new System.Drawing.Size(157, 25);
+            this.integrator5.Size = new System.Drawing.Size(133, 21);
             this.integrator5.TabIndex = 8;
             this.integrator5.TabIndex = 8;
             this.integrator5.Tag = "";
             this.integrator5.Tag = "";
             this.integrator5.Text = "• Any type of file";
             this.integrator5.Text = "• Any type of file";
@@ -3671,12 +3633,12 @@ namespace Optimizer
             // integrator4
             // integrator4
             // 
             // 
             this.integrator4.AutoSize = true;
             this.integrator4.AutoSize = true;
-            this.integrator4.Font = new System.Drawing.Font("Segoe UI Semibold", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.integrator4.Font = new System.Drawing.Font("Segoe UI Semibold", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
             this.integrator4.ForeColor = System.Drawing.Color.Silver;
             this.integrator4.ForeColor = System.Drawing.Color.Silver;
             this.integrator4.Location = new System.Drawing.Point(38, 132);
             this.integrator4.Location = new System.Drawing.Point(38, 132);
             this.integrator4.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.integrator4.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.integrator4.Name = "integrator4";
             this.integrator4.Name = "integrator4";
-            this.integrator4.Size = new System.Drawing.Size(181, 25);
+            this.integrator4.Size = new System.Drawing.Size(156, 21);
             this.integrator4.TabIndex = 7;
             this.integrator4.TabIndex = 7;
             this.integrator4.Tag = "";
             this.integrator4.Tag = "";
             this.integrator4.Text = "• Links to webpages";
             this.integrator4.Text = "• Links to webpages";
@@ -3684,12 +3646,12 @@ namespace Optimizer
             // integrator3
             // integrator3
             // 
             // 
             this.integrator3.AutoSize = true;
             this.integrator3.AutoSize = true;
-            this.integrator3.Font = new System.Drawing.Font("Segoe UI Semibold", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.integrator3.Font = new System.Drawing.Font("Segoe UI Semibold", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
             this.integrator3.ForeColor = System.Drawing.Color.Silver;
             this.integrator3.ForeColor = System.Drawing.Color.Silver;
             this.integrator3.Location = new System.Drawing.Point(38, 106);
             this.integrator3.Location = new System.Drawing.Point(38, 106);
             this.integrator3.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.integrator3.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.integrator3.Name = "integrator3";
             this.integrator3.Name = "integrator3";
-            this.integrator3.Size = new System.Drawing.Size(194, 25);
+            this.integrator3.Size = new System.Drawing.Size(167, 21);
             this.integrator3.TabIndex = 6;
             this.integrator3.TabIndex = 6;
             this.integrator3.Tag = "";
             this.integrator3.Tag = "";
             this.integrator3.Text = "• Shortcuts to folders";
             this.integrator3.Text = "• Shortcuts to folders";
@@ -3697,19 +3659,19 @@ namespace Optimizer
             // integrator2
             // integrator2
             // 
             // 
             this.integrator2.AutoSize = true;
             this.integrator2.AutoSize = true;
-            this.integrator2.Font = new System.Drawing.Font("Segoe UI Semibold", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.integrator2.Font = new System.Drawing.Font("Segoe UI Semibold", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
             this.integrator2.ForeColor = System.Drawing.Color.Silver;
             this.integrator2.ForeColor = System.Drawing.Color.Silver;
             this.integrator2.Location = new System.Drawing.Point(38, 81);
             this.integrator2.Location = new System.Drawing.Point(38, 81);
             this.integrator2.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.integrator2.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.integrator2.Name = "integrator2";
             this.integrator2.Name = "integrator2";
-            this.integrator2.Size = new System.Drawing.Size(138, 25);
+            this.integrator2.Size = new System.Drawing.Size(117, 21);
             this.integrator2.TabIndex = 5;
             this.integrator2.TabIndex = 5;
             this.integrator2.Tag = "";
             this.integrator2.Tag = "";
             this.integrator2.Text = "• Any program";
             this.integrator2.Text = "• Any program";
             // 
             // 
             // integrator1
             // integrator1
             // 
             // 
-            this.integrator1.Font = new System.Drawing.Font("Segoe UI Semibold", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.integrator1.Font = new System.Drawing.Font("Segoe UI Semibold", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
             this.integrator1.ForeColor = System.Drawing.Color.Silver;
             this.integrator1.ForeColor = System.Drawing.Color.Silver;
             this.integrator1.Location = new System.Drawing.Point(6, 10);
             this.integrator1.Location = new System.Drawing.Point(6, 10);
             this.integrator1.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.integrator1.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
@@ -5344,7 +5306,7 @@ namespace Optimizer
             this.trayExit});
             this.trayExit});
             this.launcherMenu.Name = "launcherMenu";
             this.launcherMenu.Name = "launcherMenu";
             this.launcherMenu.RenderMode = System.Windows.Forms.ToolStripRenderMode.System;
             this.launcherMenu.RenderMode = System.Windows.Forms.ToolStripRenderMode.System;
-            this.launcherMenu.Size = new System.Drawing.Size(221, 356);
+            this.launcherMenu.Size = new System.Drawing.Size(221, 334);
             // 
             // 
             // trayDownSpeed
             // trayDownSpeed
             // 
             // 
@@ -5511,6 +5473,44 @@ namespace Optimizer
             this.helpBox.UseAnimation = false;
             this.helpBox.UseAnimation = false;
             this.helpBox.UseFading = false;
             this.helpBox.UseFading = false;
             // 
             // 
+            // btnCopyHW
+            // 
+            this.btnCopyHW.ActiveLinkColor = System.Drawing.Color.WhiteSmoke;
+            this.btnCopyHW.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+            this.btnCopyHW.Font = new System.Drawing.Font("Segoe UI Semibold", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.btnCopyHW.ForeColor = System.Drawing.Color.Silver;
+            this.btnCopyHW.LinkColor = System.Drawing.Color.Silver;
+            this.btnCopyHW.Location = new System.Drawing.Point(624, 4);
+            this.btnCopyHW.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
+            this.btnCopyHW.Name = "btnCopyHW";
+            this.btnCopyHW.Size = new System.Drawing.Size(180, 24);
+            this.btnCopyHW.TabIndex = 92;
+            this.btnCopyHW.TabStop = true;
+            this.btnCopyHW.Tag = "themeable";
+            this.btnCopyHW.Text = "Copy";
+            this.btnCopyHW.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+            this.btnCopyHW.VisitedLinkColor = System.Drawing.Color.Silver;
+            this.btnCopyHW.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.btnCopyHW_LinkClicked);
+            // 
+            // btnSaveHW
+            // 
+            this.btnSaveHW.ActiveLinkColor = System.Drawing.Color.WhiteSmoke;
+            this.btnSaveHW.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+            this.btnSaveHW.Font = new System.Drawing.Font("Segoe UI Semibold", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.btnSaveHW.ForeColor = System.Drawing.Color.Silver;
+            this.btnSaveHW.LinkColor = System.Drawing.Color.Silver;
+            this.btnSaveHW.Location = new System.Drawing.Point(808, 4);
+            this.btnSaveHW.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
+            this.btnSaveHW.Name = "btnSaveHW";
+            this.btnSaveHW.Size = new System.Drawing.Size(180, 24);
+            this.btnSaveHW.TabIndex = 93;
+            this.btnSaveHW.TabStop = true;
+            this.btnSaveHW.Tag = "themeable";
+            this.btnSaveHW.Text = "Save";
+            this.btnSaveHW.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+            this.btnSaveHW.VisitedLinkColor = System.Drawing.Color.Silver;
+            this.btnSaveHW.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.btnSaveHW_LinkClicked);
+            // 
             // MainForm
             // MainForm
             // 
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
             this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
@@ -5973,17 +5973,17 @@ namespace Optimizer
         private Panel panel11;
         private Panel panel11;
         private ImageList imagesHw;
         private ImageList imagesHw;
         private ToggleCard hwDetailed;
         private ToggleCard hwDetailed;
-        private Button btnSaveHW;
         private ToolStripMenuItem trayHW;
         private ToolStripMenuItem trayHW;
         private ContextMenuStrip indiciumMenu;
         private ContextMenuStrip indiciumMenu;
         private ToolStripMenuItem toolHWCopy;
         private ToolStripMenuItem toolHWCopy;
         private ToolStripMenuItem toolHWGoogle;
         private ToolStripMenuItem toolHWGoogle;
         private ToolStripMenuItem toolHWDuck;
         private ToolStripMenuItem toolHWDuck;
-        private Button btnCopyHW;
         private ToolStripSeparator toolStripSeparator2;
         private ToolStripSeparator toolStripSeparator2;
         private ToolStripMenuItem trayDownSpeed;
         private ToolStripMenuItem trayDownSpeed;
         private ToolStripSeparator seperatorNetMon;
         private ToolStripSeparator seperatorNetMon;
         private ToolStripMenuItem trayUpSpeed;
         private ToolStripMenuItem trayUpSpeed;
+        private LinkLabel btnSaveHW;
+        private LinkLabel btnCopyHW;
     }
     }
 }
 }
 
 

+ 19 - 19
Optimizer/Forms/MainForm.cs

@@ -3821,25 +3821,6 @@ namespace Optimizer
             }
             }
         }
         }
 
 
-        private void btnSaveHW_Click(object sender, EventArgs e)
-        {
-            SaveFileDialog d = new SaveFileDialog();
-            d.InitialDirectory = Application.StartupPath;
-            d.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*";
-            d.FileName = $"Optimizer_Hardware_{Environment.MachineName}_{DateTime.Now.ToShortDateString()}.txt";
-
-            if (d.ShowDialog() == DialogResult.OK) File.WriteAllText(d.FileName, GetSpecsToString(specsTree), Encoding.UTF8);
-        }
-
-        private void btnCopyHW_Click(object sender, EventArgs e)
-        {
-            try
-            {
-                Clipboard.SetText(GetSpecsToString(specsTree));
-            }
-            catch { }
-        }
-
         private string GetSpecsToString(TreeView trv)
         private string GetSpecsToString(TreeView trv)
         {
         {
             StringBuilder sb = new StringBuilder();
             StringBuilder sb = new StringBuilder();
@@ -3868,5 +3849,24 @@ namespace Optimizer
                 specsTree.SelectedNode = e.Node;
                 specsTree.SelectedNode = e.Node;
             }
             }
         }
         }
+
+        private void btnCopyHW_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
+        {
+            try
+            {
+                Clipboard.SetText(GetSpecsToString(specsTree));
+            }
+            catch { }
+        }
+
+        private void btnSaveHW_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
+        {
+            SaveFileDialog d = new SaveFileDialog();
+            d.InitialDirectory = Application.StartupPath;
+            d.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*";
+            d.FileName = $"Optimizer_Hardware_{Environment.MachineName}_{DateTime.Now.ToShortDateString()}.txt";
+
+            if (d.ShowDialog() == DialogResult.OK) File.WriteAllText(d.FileName, GetSpecsToString(specsTree), Encoding.UTF8);
+        }
     }
     }
 }
 }

+ 11 - 11
Optimizer/Forms/MainForm.resx

@@ -1806,7 +1806,7 @@ any application only by typing your desired keyword.</value>
         AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
         AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
         LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
         LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
         ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAC8
         ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAC8
-        GgAAAk1TRnQBSQFMAgEBCQEAAUABAQFAAQEBIAEAASABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAGA
+        GgAAAk1TRnQBSQFMAgEBCQEAAUgBAQFIAQEBIAEAASABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAGA
         AwABYAMAAQEBAAEgBgABwP8A/wD/AP8A/wD/AP8A/wAeAANHAYB0//8AiQADRwGAdP//AIkAAyoBQANH
         AwABYAMAAQEBAAEgBgABwP8A/wD/AP8A/wD/AP8A/wAeAANHAYB0//8AiQADRwGAdP//AIkAAyoBQANH
         AYADRwGAA0cBgANHAYADRwGAA0cBgANHAYADRwGAA0cBgANHAYADRwGAA0cBgANHAYADRwGAA0cBgANH
         AYADRwGAA0cBgANHAYADRwGAA0cBgANHAYADRwGAA0cBgANHAYADRwGAA0cBgANHAYADRwGAA0cBgANH
         AYADRwGAA0cBgANHAYADRwGAA0cBgANHAYADRwGAA0cBgANHAYADRwGAA0cBgANHAYADRwGA/wD/AP8A
         AYADRwGAA0cBgANHAYADRwGAA0cBgANHAYADRwGAA0cBgANHAYADRwGAA0cBgANHAYADRwGA/wD/AP8A
@@ -1958,20 +1958,20 @@ any application only by typing your desired keyword.</value>
   </metadata>
   </metadata>
   <data name="trayDownSpeed.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
   <data name="trayDownSpeed.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
     <value>
-        iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
-        YQUAAAAJcEhZcwAACxIAAAsSAdLdfvwAAACVSURBVGhD7c9bCsQgEERR978qd5YQKCFI5TVD7DbcA/Vj
-        q1QXAAAA4Htqrcs+Op4HC0RjgWgsEI0ForFAtPQLXBX8d/66vkBf4smsnw/hSmzR+HCB/rxF43FciRY3
-        v/NmOFfkl+i7GK7Qk+ibWK7Yneh5Dq7gWfQsF1fURddzcoX30bXcXPEtGs9h6vLN1OUBAHhfKStvXoLZ
-        PGw0bQAAAABJRU5ErkJggg==
+        iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL
+        EgAACxIB0t1+/AAAAJVJREFUaEPtz1sKxCAQRFH3vyp3lhAoIUjlNUPsNtwD9WOrVBcAAADge2qtyz46
+        ngcLRGOBaCwQjQWisUC09AtcFfx3/rq+QF/iyayfD+FKbNH4cIH+vEXjcVyJFje/82Y4V+SX6LsYrtCT
+        6JtYrtid6HkOruBZ9CwXV9RF13NyhffRtdxc8S0az2Hq8s3U5QEAeF8pK29egtk8bDRtAAAAAElFTkSu
+        QmCC
 </value>
 </value>
   </data>
   </data>
   <data name="trayUpSpeed.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
   <data name="trayUpSpeed.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
     <value>
-        iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
-        YQUAAAAJcEhZcwAACxIAAAsSAdLdfvwAAACVSURBVGhD7c9RCsQgDIRh738qb7aLMEKR2dW2YCL8H8xD
-        G5VJAQAAP9RaPy36PEsvf+QSY/kejXNzxa/RsZxcYRcdz8UV/Rddy8EVXImux3LF7kTPxHCFnkTP7eWK
-        9Lj5yp2tXIkWje0Czfi/R+N9ZiXuzMb5FrMCb+fh0hecYYFoLBCNBaKxQDQWiHb8AgAAAMBEKV9ExYLZ
-        y3qhowAAAABJRU5ErkJggg==
+        iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL
+        EgAACxIB0t1+/AAAAJVJREFUaEPtz1EKxCAMhGHvfypvtoswQpHZ1bZgIvwfzEMblUkBAAA/1Fo/Lfo8
+        Sy9/5BJj+R6Nc3PFr9GxnFxhFx3PxRX9F13LwRVcia7HcsXuRM/EcIWeRM/t5Yr0uPnKna1ciRaN7QLN
+        +L9H431mJe7MxvkWswJv5+HSF5xhgWgsEI0ForFANBaIdvwCAAAAwEQpX0TFgtnLeqGjAAAAAElFTkSu
+        QmCC
 </value>
 </value>
   </data>
   </data>
   <data name="trayStartup.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
   <data name="trayStartup.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">

+ 1 - 1
Optimizer/Program.cs

@@ -12,7 +12,7 @@ namespace Optimizer
         /* DO NOT LEAVE THEM EMPTY */
         /* DO NOT LEAVE THEM EMPTY */
 
 
         internal readonly static float Major = 11;
         internal readonly static float Major = 11;
-        internal readonly static float Minor = 3;
+        internal readonly static float Minor = 4;
 
 
         internal readonly static bool EXPERIMENTAL_BUILD = false;
         internal readonly static bool EXPERIMENTAL_BUILD = false;
 
 

+ 26 - 0
Optimizer/Resources/CN.json

@@ -281,6 +281,32 @@
 	"trayRegistry": "注册表修复",
 	"trayRegistry": "注册表修复",
 	"trayExit": "退出",
 	"trayExit": "退出",
 	"tipWhatsThis": "这是什么?",
 	"tipWhatsThis": "这是什么?",
+	"hwDetailed": "详细视图",
+	"btnCopyHW": "复制",
+	"btnSaveHW": "保存",
+	"indiciumTab": "硬件",
+	"toolHWCopy": "复制",
+	"toolHWGoogle": "搜索 Google",
+	"toolHWDuck": "搜索 DuckDuckGo",
+	"trayHW": "硬件信息",
+	"os": "操作系统",
+	"cpu": "处理器",
+	"ram": "存储",
+	"gpu": "图形",
+	"mobo": "母板",
+	"disk": "储存空间",
+	"inet": "网络连接",
+	"audio": "声音的",
+	"dev": "外围设备",
+	"vm": "虚拟内存",
+	"drives": "圆盘",
+	"volumes": "分区",
+	"opticals": "光驱",
+	"removables": "可移动驱动器",
+	"physicalAdapters": "身体的",
+	"virtualAdapters": "虚拟的",
+	"keyboards": "键盘",
+	"pointings": "指点设备",
 	"performanceTip": "收集内部Windows设置以优化性能.
 	"performanceTip": "收集内部Windows设置以优化性能.
 	完全安全使用.
 	完全安全使用.
 
 

+ 26 - 0
Optimizer/Resources/DE.json

@@ -279,6 +279,32 @@
 	"trayRestartExplorer": "Explorer neu starten",
 	"trayRestartExplorer": "Explorer neu starten",
 	"trayExit": "Beenden",
 	"trayExit": "Beenden",
 	"tipWhatsThis": "Was ist das?",
 	"tipWhatsThis": "Was ist das?",
+	"hwDetailed": "Detaillierte Ansicht",
+	"btnCopyHW": "Kopieren",
+	"btnSaveHW": "Speichern",
+	"indiciumTab": "Hardware",
+	"toolHWCopy": "Kopieren",
+	"toolHWGoogle": "Suche mit Google",
+	"toolHWDuck": "Suche mit DuckDuckGo",
+	"trayHW": "Hardware-Informationen",
+	"os": "Betriebssystem",
+	"cpu": "Prozessoren",
+	"ram": "Erinnerung",
+	"gpu": "Grafik",
+	"mobo": "Hauptplatinen",
+	"disk": "Lager",
+	"inet": "Netzwerkadapter",
+	"audio": "Audio",
+	"dev": "Peripherie",
+	"vm": "Virtueller Speicher",
+	"drives": "Festplatten",
+	"volumes": "Partitionen",
+	"opticals": "Optische Laufwerke",
+	"removables": "Wechsellaufwerke",
+	"physicalAdapters": "Physische Adapter",
+	"virtualAdapters": "Virtuelle Adapter",
+	"keyboards": "Tastaturen",
+	"pointings": "Zeigegerate",
 	"performanceTip": "Sammlung von internen Windows-Einstellungen zur Optimierung der Leistung. Vollständig sicher in der Anwendung.
 	"performanceTip": "Sammlung von internen Windows-Einstellungen zur Optimierung der Leistung. Vollständig sicher in der Anwendung.
 
 
 - Verringert die Wartezeit vor dem Beenden von nicht reagierenden Prozessen.
 - Verringert die Wartezeit vor dem Beenden von nicht reagierenden Prozessen.

+ 26 - 0
Optimizer/Resources/ES.json

@@ -279,6 +279,32 @@
 	"trayRestartExplorer": "Reiniciar el explorador",
 	"trayRestartExplorer": "Reiniciar el explorador",
 	"trayExit": "Salir",
 	"trayExit": "Salir",
 	"tipWhatsThis": "Qué es esto?",
 	"tipWhatsThis": "Qué es esto?",
+	"hwDetailed": "Vista detallada",
+	"btnCopyHW": "Dupdo",
+	"btnSaveHW": "Ahorrar",
+	"indiciumTab": "Hardware",
+	"toolHWCopy": "Dupdo",
+	"toolHWGoogle": "Búsqueda Google",
+	"toolHWDuck": "Búsqueda DuckDuckGo",
+	"trayHW": "Hardware",
+	"os": "Sistema operativo",
+	"cpu": "Procesadores",
+	"ram": "Memoria",
+	"gpu": "Graficos",
+	"mobo": "Placas Base ",
+	"disk": "Almacenamiento",
+	"inet": "Adaptadores de red",
+	"audio": "Audio",
+	"dev": "Perifericos",
+	"vm": "Memoria virtual",
+	"drives": "Discos",
+	"volumes": "Particiones",
+	"opticals": "Unidades opticas",
+	"removables": "Discos extraibles",
+	"physicalAdapters": "Adaptadores fisicos",
+	"virtualAdapters": "Adaptadores virtuales",
+	"keyboards": "Teclados",
+	"pointings": "Dispositivos senaladores",
 	"performanceTip": "Colección de configuraciones internas de Windows para optimizar el rendimiento.
 	"performanceTip": "Colección de configuraciones internas de Windows para optimizar el rendimiento.
 Completamente seguro de aplicar.
 Completamente seguro de aplicar.
 
 

+ 26 - 0
Optimizer/Resources/FR.json

@@ -279,6 +279,32 @@
 	"trayRestartExplorer": "Redemarrer l'Explorer",
 	"trayRestartExplorer": "Redemarrer l'Explorer",
 	"trayExit": "Quitter",
 	"trayExit": "Quitter",
 	"tipWhatsThis": "Qu'est-ce que c'est?",
 	"tipWhatsThis": "Qu'est-ce que c'est?",
+	"hwDetailed": "Vue detaillee",
+	"btnCopyHW": "Copie",
+	"btnSaveHW": "Sauver",
+	"indiciumTab": "Materiel",
+	"toolHWCopy": "Copie",
+	"toolHWGoogle": "Chercher Google",
+	"toolHWDuck": "Chercher DuckDuckGo",
+	"trayHW": "Materiel",
+	"os": "Systeme operateur",
+	"cpu": "Processeurs",
+	"ram": "Memory",
+	"gpu": "Mémoire",
+	"mobo": "Cartes meres",
+	"disk": "Stockage",
+	"inet": "Adaptateurs reseau",
+	"audio": "L'audio",
+	"dev": "Peripheriques",
+	"vm": "Memoire virtuelle",
+	"drives": "Disques",
+	"volumes": "Cloisons",
+	"opticals": "Lecteurs optiques",
+	"removables": "Disques amovibles",
+	"physicalAdapters": "Adaptateurs physiques",
+	"virtualAdapters": "Adaptateurs virtuels",
+	"keyboards": "Claviers",
+	"pointings": "Dispositifs de pointage",
 	"performanceTip": "Collection de parametres internes de Windows pour optimiser les performances.
 	"performanceTip": "Collection de parametres internes de Windows pour optimiser les performances.
 Ces changements sont totalement surs.
 Ces changements sont totalement surs.
 
 

+ 26 - 0
Optimizer/Resources/IT.json

@@ -269,6 +269,32 @@
 	"trayRestartExplorer": "Riavvia Explorer",
 	"trayRestartExplorer": "Riavvia Explorer",
 	"trayExit": "Esci",
 	"trayExit": "Esci",
 	"tipWhatsThis": "Che cos'è?",
 	"tipWhatsThis": "Che cos'è?",
+	"hwDetailed": "Vista dettagliata",
+	"btnCopyHW": "Copia",
+	"btnSaveHW": "Salvare",
+	"indiciumTab": "Hardware",
+	"toolHWCopy": "Copia",
+	"toolHWGoogle": "Ricerca Google",
+	"toolHWDuck": "Ricerca DuckDuckGo",
+	"trayHW": "Hardware",
+	"os": "Sistema operativo",
+	"cpu": "Processori",
+	"ram": "Memoria",
+	"gpu": "Grafica",
+	"mobo": "Scheda Madre",
+	"disk": "Conservazione",
+	"inet": "Schede di rete",
+	"audio": "Audio",
+	"dev": "Periferici",
+	"vm": "Memoria virtuale",
+	"drives": "Unita disco",
+	"volumes": "Partizioni",
+	"opticals": "Unita ottiche",
+	"removables": "Unita rimovibili",
+	"physicalAdapters": "Adattatori fisici",
+	"virtualAdapters": "Adattatori virtuali",
+	"keyboards": "Tastiere",
+	"pointings": "Dispositivi di puntamento",
 	"performanceTip": "Raccolta di impostazioni interne di Windows per migliorare le performance.
 	"performanceTip": "Raccolta di impostazioni interne di Windows per migliorare le performance.
 Sicura da applicare.
 Sicura da applicare.
 
 

+ 26 - 0
Optimizer/Resources/PT.json

@@ -279,6 +279,32 @@
 	"trayRestartExplorer": "Reinicie o Explorer",
 	"trayRestartExplorer": "Reinicie o Explorer",
 	"trayExit": "Sair",
 	"trayExit": "Sair",
 	"tipWhatsThis": "O que é isso?",
 	"tipWhatsThis": "O que é isso?",
+	"hwDetailed": "Visao detalhada",
+	"btnCopyHW": "Copiar",
+	"btnSaveHW": "Salve",
+	"indiciumTab": "Hardware",
+	"toolHWCopy": "Copiar",
+	"toolHWGoogle": "Procurar Google",
+	"toolHWDuck": "Procurar DuckDuckGo",
+	"trayHW": "Hardware",
+	"os": "Sistema operacional",
+	"cpu": "Processadores",
+	"ram": "Memoria",
+	"gpu": "Graficos",
+	"mobo": "Placas-mae",
+	"disk": "Armazenar",
+	"inet": "Adaptadores de rede",
+	"audio": "Audio",
+	"dev": "Periféricos",
+	"vm": "Memoria virtual",
+	"drives": "Unidades de disco",
+	"volumes": "Particoes",
+	"opticals": "Unidades opticas",
+	"removables": "Unidades removiveis",
+	"physicalAdapters": "Adaptadores fisicos",
+	"virtualAdapters": "Adaptadores virtuais",
+	"keyboards": "Teclados",
+	"pointings": "Dispositivos apontadores",
 	"performanceTip": "Coleção de configurações internas do Windows para otimizar o desempenho.
 	"performanceTip": "Coleção de configurações internas do Windows para otimizar o desempenho.
 Completamente seguro para aplicar.
 Completamente seguro para aplicar.
 
 

+ 26 - 0
Optimizer/Resources/RU.json

@@ -279,6 +279,32 @@
 	"trayRestartExplorer": "Перезапуск Проводника",
 	"trayRestartExplorer": "Перезапуск Проводника",
 	"trayExit": "Выход",
 	"trayExit": "Выход",
 	"tipWhatsThis": "Что это?",
 	"tipWhatsThis": "Что это?",
+	"hwDetailed": "Детальный вид",
+	"btnCopyHW": "Копировать",
+	"btnSaveHW": "Сохранять",
+	"indiciumTab": "Аппаратное обеспечение",
+	"toolHWCopy": "Копировать",
+	"toolHWGoogle": "Поиск Google",
+	"toolHWDuck": "Поиск DuckDuckGo",
+	"trayHW": "Аппаратное обеспечение",
+	"os": "Операционная система",
+	"cpu": "Процессоры",
+	"ram": "объем памяти",
+	"gpu": "Графика",
+	"mobo": "Материнские платы",
+	"disk": "Место хранения",
+	"inet": "Сетевые адаптеры",
+	"audio": "Аудио",
+	"dev": "Периферия",
+	"vm": "Виртуальная память",
+	"drives": "Дисковый привод",
+	"volumes": "Перегородки",
+	"opticals": "Оптические приводы",
+	"removables": "Съемные диски",
+	"physicalAdapters": "Физические адаптеры",
+	"virtualAdapters": "Виртуальные адаптеры",
+	"keyboards": "Клавиатуры",
+	"pointings": "Указывающих устройств",
 	"performanceTip": "Сбор внутренних настроек Windows для оптимизации производительности.
 	"performanceTip": "Сбор внутренних настроек Windows для оптимизации производительности.
 Полностью безопасно для применения.
 Полностью безопасно для применения.
 
 

+ 26 - 0
Optimizer/Resources/TR.json

@@ -279,6 +279,32 @@
 	"trayRestartExplorer": "Explorer'ı yeniden başlatın",
 	"trayRestartExplorer": "Explorer'ı yeniden başlatın",
 	"trayExit": "Çıkış",
 	"trayExit": "Çıkış",
 	"tipWhatsThis": "Bu nedir?",
 	"tipWhatsThis": "Bu nedir?",
+	"hwDetailed": "Detaylı gorunum",
+	"btnCopyHW": "kopyala",
+	"btnSaveHW": "Kayıt etmek",
+	"indiciumTab": "Donanım",
+	"toolHWCopy": "kopyala",
+	"toolHWGoogle": "Aramak Google",
+	"toolHWDuck": "Aramak DuckDuckGo",
+	"trayHW": "Donanım",
+	"os": "İşletim sistemi",
+	"cpu": "işlemciler",
+	"ram": "Hafıza",
+	"gpu": "Grafik",
+	"mobo": "Anakartlar",
+	"disk": "Depolamak",
+	"inet": "Ag Bagdaştırıcıları",
+	"audio": "Ses",
+	"dev": "Cevre birimleri",
+	"vm": "Sanal bellek",
+	"drives": "Disk suruculeri",
+	"volumes": "Bolumler",
+	"opticals": "Optik suruculer",
+	"removables": "Cıkarılabilir suruculer",
+	"physicalAdapters": "Fiziksel Adaptorler",
+	"virtualAdapters": "Sanal Bagdastırıcılar",
+	"keyboards": "Klavyeler",
+	"pointings": "Isaret Aygıtları",
 	"performanceTip": "Performansı optimize etmek için dahili Windows ayarlarının toplanması.
 	"performanceTip": "Performansı optimize etmek için dahili Windows ayarlarının toplanması.
 Uygulanması tamamen güvenlidir.
 Uygulanması tamamen güvenlidir.
 
 

+ 6 - 4
README.md

@@ -10,7 +10,7 @@ Optimizer is recommended after a fresh, clean installation of Windows to achieve
 
 
 Depending on your version of Windows, Optimizer will also allow you to perform some specific tweaks.
 Depending on your version of Windows, Optimizer will also allow you to perform some specific tweaks.
 <p align="center">
 <p align="center">
-	<a href="https://github.com/hellzerg/optimizer/releases/download/11.3/Optimizer-11.3.exe" target="_blank">
+	<a href="https://github.com/hellzerg/optimizer/releases/download/11.4/Optimizer-11.4.exe" target="_blank">
 		<img src="download-button.png">
 		<img src="download-button.png">
 		<br>
 		<br>
 		<img src="flags.png">
 		<img src="flags.png">
@@ -33,6 +33,8 @@ Depending on your version of Windows, Optimizer will also allow you to perform s
 * Flush DNS cache
 * Flush DNS cache
 * Remove unwanted programs running at startup
 * Remove unwanted programs running at startup
 * Edit your HOSTS file
 * Edit your HOSTS file
+* Network speed monitoring
+* Hardware inspection tool
 * Add items in desktop on right-click menu
 * Add items in desktop on right-click menu
 * Define custom commands for run dialog
 * Define custom commands for run dialog
 * Silent run support using a configuration file
 * Silent run support using a configuration file
@@ -82,6 +84,6 @@ https://github.com/hellzerg/optimizer/blob/master/FEED.md
 
 
 ## Details: ##
 ## Details: ##
 
 
-* Latest version: 11.3
-* Released: January 29, 2022
-* SHA256: 1B1CD410F026507791BD75E23576137A67EEEDC28EF4E1F40346A0E74EBD87A4
+* Latest version: 11.4
+* Released: January 30, 2022
+* SHA256: 7A04483407F7493B6B18CFB56BFD42F1BE63CBAF3A4BD89CD25334E60DE318A7

+ 1 - 1
version.txt

@@ -1 +1 @@
-11.3
+11.4