Browse Source

Maintenance update v14.2

deadmoon 2 years ago
parent
commit
352752aecc

+ 6 - 0
CHANGELOG.md

@@ -1,3 +1,9 @@
+## [14.2] - 2022-10-21
+- Hotfix: Proper DPI scaling for main tabs (#236)
+- Hotfix: Not saving and loading Dutch language
+- Improved: Chrome Telemetry, Enhance Privacy and Optimize Performance
+- Removed: Network monitoring in tray menu
+
 ## [14.1] - 2022-10-18
 - New: Theme engine supporting whole color spectrum (thanks to  cat - https://github.com/vadiscode)
 - New: Disable NVIDIA Telemetry in Universal

+ 1 - 1
Optimizer/Controls/ColorPicker.cs

@@ -1,8 +1,8 @@
 using System;
 using System.Collections.Generic;
 using System.ComponentModel;
-using System.Drawing.Drawing2D;
 using System.Drawing;
+using System.Drawing.Drawing2D;
 using System.Windows.Forms;
 
 namespace Optimizer.Controls

+ 1 - 2
Optimizer/Controls/MoonMenuRenderer.cs

@@ -1,5 +1,4 @@
-using Optimizer;
-using System.Drawing;
+using System.Drawing;
 using System.Windows.Forms;
 
 namespace Optimizer

+ 13 - 1
Optimizer/Controls/MoonTabs.cs

@@ -58,6 +58,18 @@ namespace Optimizer
             }
         }
 
+        // OVERRIDE TAB HEADER WIDTH
+        protected override void OnHandleCreated(EventArgs e)
+        {
+            base.OnHandleCreated(e);
+
+            // Send TCM_SETMINTABWIDTH
+            SendMessage(this.Handle, 0x1300 + 49, IntPtr.Zero, (IntPtr)(Program.DPI_PREFERENCE / 3));
+        }
+
+        [System.Runtime.InteropServices.DllImport("user32.dll")]
+        private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wp, IntPtr lp);
+
         public MoonTabs()
         {
             SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer |
@@ -254,7 +266,7 @@ namespace Optimizer
 
                             if (Alignment == TabAlignment.Top || Alignment == TabAlignment.Bottom)
                             {
-                                rectDivider = new Rectangle(containerHead.X, containerHead.Y + ((Alignment == TabAlignment.Top) ? containerHead.Height : -DividerSize), containerHead.Width, DividerSize);
+                                rectDivider = new Rectangle(containerHead.X + 300, containerHead.Y + ((Alignment == TabAlignment.Top) ? containerHead.Height : -DividerSize), containerHead.Width, DividerSize);
                             }
                             if (Alignment == TabAlignment.Right || Alignment == TabAlignment.Left)
                             {

+ 1 - 1
Optimizer/Forms/FirstRunForm.Designer.cs

@@ -236,7 +236,7 @@ namespace Optimizer
             // 
             // pictureBox9
             // 
-            this.pictureBox9.Image = global::Optimizer.Properties.Resources.china;
+            this.pictureBox9.Image = global::Optimizer.Properties.Resources.taiwan;
             this.pictureBox9.Location = new System.Drawing.Point(160, 160);
             this.pictureBox9.Name = "pictureBox9";
             this.pictureBox9.Size = new System.Drawing.Size(32, 19);

+ 94 - 113
Optimizer/Forms/MainForm.Designer.cs

@@ -32,14 +32,14 @@ namespace Optimizer
         {
             this.components = new System.ComponentModel.Container();
             System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
-            System.Windows.Forms.TreeNode treeNode1 = new System.Windows.Forms.TreeNode("Processors", 0, 0);
-            System.Windows.Forms.TreeNode treeNode2 = new System.Windows.Forms.TreeNode("Memory", 1, 1);
-            System.Windows.Forms.TreeNode treeNode3 = new System.Windows.Forms.TreeNode("Graphics", 2, 2);
-            System.Windows.Forms.TreeNode treeNode4 = new System.Windows.Forms.TreeNode("Motherboard", 3, 3);
-            System.Windows.Forms.TreeNode treeNode5 = new System.Windows.Forms.TreeNode("Storage", 4, 4);
-            System.Windows.Forms.TreeNode treeNode6 = new System.Windows.Forms.TreeNode("Network Adapters", 5, 5);
-            System.Windows.Forms.TreeNode treeNode7 = new System.Windows.Forms.TreeNode("Audio", 6, 6);
-            System.Windows.Forms.TreeNode treeNode8 = new System.Windows.Forms.TreeNode("Peripherals", 7, 7);
+            System.Windows.Forms.TreeNode treeNode9 = new System.Windows.Forms.TreeNode("Processors", 0, 0);
+            System.Windows.Forms.TreeNode treeNode10 = new System.Windows.Forms.TreeNode("Memory", 1, 1);
+            System.Windows.Forms.TreeNode treeNode11 = new System.Windows.Forms.TreeNode("Graphics", 2, 2);
+            System.Windows.Forms.TreeNode treeNode12 = new System.Windows.Forms.TreeNode("Motherboard", 3, 3);
+            System.Windows.Forms.TreeNode treeNode13 = new System.Windows.Forms.TreeNode("Storage", 4, 4);
+            System.Windows.Forms.TreeNode treeNode14 = new System.Windows.Forms.TreeNode("Network Adapters", 5, 5);
+            System.Windows.Forms.TreeNode treeNode15 = new System.Windows.Forms.TreeNode("Audio", 6, 6);
+            System.Windows.Forms.TreeNode treeNode16 = new System.Windows.Forms.TreeNode("Peripherals", 7, 7);
             this.tpanel = new System.Windows.Forms.Panel();
             this.restartAndApply = new System.Windows.Forms.Label();
             this.picRestartNeeded = new System.Windows.Forms.PictureBox();
@@ -54,6 +54,7 @@ namespace Optimizer
             this.bpanel = new System.Windows.Forms.Panel();
             this.tabCollection = new Optimizer.MoonTabs();
             this.universalTab = new System.Windows.Forms.TabPage();
+            this.nvidiaTelemetrySw = new Optimizer.ToggleCard();
             this.ntfsStampSw = new Optimizer.ToggleCard();
             this.smb2Sw = new Optimizer.ToggleCard();
             this.smb1Sw = new Optimizer.ToggleCard();
@@ -378,9 +379,6 @@ namespace Optimizer
             this.DefineCommandIconDialog = new System.Windows.Forms.OpenFileDialog();
             this.ExportDialog = new System.Windows.Forms.SaveFileDialog();
             this.launcherMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
-            this.trayDownSpeed = new System.Windows.Forms.ToolStripMenuItem();
-            this.trayUpSpeed = new System.Windows.Forms.ToolStripMenuItem();
-            this.seperatorNetMon = new System.Windows.Forms.ToolStripSeparator();
             this.trayStartup = new System.Windows.Forms.ToolStripMenuItem();
             this.trayCleaner = new System.Windows.Forms.ToolStripMenuItem();
             this.trayPinger = new System.Windows.Forms.ToolStripMenuItem();
@@ -395,7 +393,7 @@ namespace Optimizer
             this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
             this.trayExit = new System.Windows.Forms.ToolStripMenuItem();
             this.launcherIcon = new System.Windows.Forms.NotifyIcon(this.components);
-            this.nvidiaTelemetrySw = new Optimizer.ToggleCard();
+            this.dnsTitle = new System.Windows.Forms.Label();
             this.tpanel.SuspendLayout();
             ((System.ComponentModel.ISupportInitialize)(this.picRestartNeeded)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.picLab)).BeginInit();
@@ -682,6 +680,21 @@ namespace Optimizer
             this.universalTab.TabIndex = 0;
             this.universalTab.Text = "Universal";
             // 
+            // nvidiaTelemetrySw
+            // 
+            this.nvidiaTelemetrySw.AccessibleName = "Disable NVIDIA Telemetry";
+            this.nvidiaTelemetrySw.AccessibleRole = System.Windows.Forms.AccessibleRole.CheckButton;
+            this.nvidiaTelemetrySw.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
+            this.nvidiaTelemetrySw.Font = new System.Drawing.Font("Segoe UI Semibold", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.nvidiaTelemetrySw.ForeColor = System.Drawing.Color.White;
+            this.nvidiaTelemetrySw.LabelText = "Disable NVIDIA Telemetry";
+            this.nvidiaTelemetrySw.Location = new System.Drawing.Point(21, 513);
+            this.nvidiaTelemetrySw.Name = "nvidiaTelemetrySw";
+            this.nvidiaTelemetrySw.Size = new System.Drawing.Size(490, 24);
+            this.nvidiaTelemetrySw.TabIndex = 73;
+            this.nvidiaTelemetrySw.Tag = "themeable";
+            this.nvidiaTelemetrySw.ToggleChecked = false;
+            // 
             // ntfsStampSw
             // 
             this.ntfsStampSw.AccessibleName = "Disable NTFS Timestamp";
@@ -3113,6 +3126,7 @@ namespace Optimizer
             // tabPage2
             // 
             this.tabPage2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
+            this.tabPage2.Controls.Add(this.dnsTitle);
             this.tabPage2.Controls.Add(this.linkDNSv6A);
             this.tabPage2.Controls.Add(this.linkDNSv4A);
             this.tabPage2.Controls.Add(this.linkDNSv6);
@@ -3136,7 +3150,7 @@ namespace Optimizer
             this.linkDNSv6A.Font = new System.Drawing.Font("Segoe UI Semibold", 11F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
             this.linkDNSv6A.ForeColor = System.Drawing.Color.DodgerBlue;
             this.linkDNSv6A.LinkColor = System.Drawing.Color.DodgerBlue;
-            this.linkDNSv6A.Location = new System.Drawing.Point(105, 190);
+            this.linkDNSv6A.Location = new System.Drawing.Point(109, 218);
             this.linkDNSv6A.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.linkDNSv6A.Name = "linkDNSv6A";
             this.linkDNSv6A.Size = new System.Drawing.Size(15, 20);
@@ -3151,7 +3165,7 @@ namespace Optimizer
             this.linkDNSv4A.Font = new System.Drawing.Font("Segoe UI Semibold", 11F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
             this.linkDNSv4A.ForeColor = System.Drawing.Color.DodgerBlue;
             this.linkDNSv4A.LinkColor = System.Drawing.Color.DodgerBlue;
-            this.linkDNSv4A.Location = new System.Drawing.Point(104, 133);
+            this.linkDNSv4A.Location = new System.Drawing.Point(108, 161);
             this.linkDNSv4A.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.linkDNSv4A.Name = "linkDNSv4A";
             this.linkDNSv4A.Size = new System.Drawing.Size(15, 20);
@@ -3166,7 +3180,7 @@ namespace Optimizer
             this.linkDNSv6.Font = new System.Drawing.Font("Segoe UI Semibold", 11F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
             this.linkDNSv6.ForeColor = System.Drawing.Color.DodgerBlue;
             this.linkDNSv6.LinkColor = System.Drawing.Color.DodgerBlue;
-            this.linkDNSv6.Location = new System.Drawing.Point(105, 167);
+            this.linkDNSv6.Location = new System.Drawing.Point(109, 195);
             this.linkDNSv6.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.linkDNSv6.Name = "linkDNSv6";
             this.linkDNSv6.Size = new System.Drawing.Size(15, 20);
@@ -3181,7 +3195,7 @@ namespace Optimizer
             this.linkDNSv4.Font = new System.Drawing.Font("Segoe UI Semibold", 11F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
             this.linkDNSv4.ForeColor = System.Drawing.Color.DodgerBlue;
             this.linkDNSv4.LinkColor = System.Drawing.Color.DodgerBlue;
-            this.linkDNSv4.Location = new System.Drawing.Point(105, 110);
+            this.linkDNSv4.Location = new System.Drawing.Point(109, 138);
             this.linkDNSv4.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.linkDNSv4.Name = "linkDNSv4";
             this.linkDNSv4.Size = new System.Drawing.Size(15, 20);
@@ -3195,7 +3209,7 @@ namespace Optimizer
             this.label3.AutoSize = true;
             this.label3.Font = new System.Drawing.Font("Segoe UI Semibold", 11F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
             this.label3.ForeColor = System.Drawing.Color.Silver;
-            this.label3.Location = new System.Drawing.Point(23, 168);
+            this.label3.Location = new System.Drawing.Point(27, 196);
             this.label3.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.label3.Name = "label3";
             this.label3.Size = new System.Drawing.Size(77, 20);
@@ -3208,7 +3222,7 @@ namespace Optimizer
             this.label1.AutoSize = true;
             this.label1.Font = new System.Drawing.Font("Segoe UI Semibold", 11F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
             this.label1.ForeColor = System.Drawing.Color.Silver;
-            this.label1.Location = new System.Drawing.Point(23, 111);
+            this.label1.Location = new System.Drawing.Point(27, 139);
             this.label1.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.label1.Name = "label1";
             this.label1.Size = new System.Drawing.Size(78, 20);
@@ -3224,7 +3238,7 @@ namespace Optimizer
             this.btnOpenNetwork.FlatAppearance.MouseOverBackColor = System.Drawing.Color.RoyalBlue;
             this.btnOpenNetwork.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
             this.btnOpenNetwork.ForeColor = System.Drawing.Color.White;
-            this.btnOpenNetwork.Location = new System.Drawing.Point(27, 271);
+            this.btnOpenNetwork.Location = new System.Drawing.Point(31, 299);
             this.btnOpenNetwork.Margin = new System.Windows.Forms.Padding(2);
             this.btnOpenNetwork.Name = "btnOpenNetwork";
             this.btnOpenNetwork.Size = new System.Drawing.Size(212, 29);
@@ -3241,7 +3255,7 @@ namespace Optimizer
             this.flushCacheB.FlatAppearance.MouseOverBackColor = System.Drawing.Color.RoyalBlue;
             this.flushCacheB.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
             this.flushCacheB.ForeColor = System.Drawing.Color.White;
-            this.flushCacheB.Location = new System.Drawing.Point(27, 238);
+            this.flushCacheB.Location = new System.Drawing.Point(31, 266);
             this.flushCacheB.Margin = new System.Windows.Forms.Padding(2);
             this.flushCacheB.Name = "flushCacheB";
             this.flushCacheB.Size = new System.Drawing.Size(212, 29);
@@ -3259,7 +3273,7 @@ namespace Optimizer
             this.boxAdapter.Font = new System.Drawing.Font("Segoe UI Semibold", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
             this.boxAdapter.ForeColor = System.Drawing.Color.White;
             this.boxAdapter.FormattingEnabled = true;
-            this.boxAdapter.Location = new System.Drawing.Point(24, 22);
+            this.boxAdapter.Location = new System.Drawing.Point(28, 50);
             this.boxAdapter.Name = "boxAdapter";
             this.boxAdapter.Size = new System.Drawing.Size(414, 29);
             this.boxAdapter.TabIndex = 107;
@@ -3283,7 +3297,7 @@ namespace Optimizer
             "Adguard DNS",
             "CleanBrowsing",
             "CleanBrowsing (adult filter)"});
-            this.boxDNS.Location = new System.Drawing.Point(24, 57);
+            this.boxDNS.Location = new System.Drawing.Point(28, 85);
             this.boxDNS.Name = "boxDNS";
             this.boxDNS.Size = new System.Drawing.Size(414, 29);
             this.boxDNS.TabIndex = 106;
@@ -3828,47 +3842,47 @@ namespace Optimizer
             this.specsTree.ForeColor = System.Drawing.Color.White;
             this.specsTree.Location = new System.Drawing.Point(0, 0);
             this.specsTree.Name = "specsTree";
-            treeNode1.ImageIndex = 0;
-            treeNode1.Name = "cpu";
-            treeNode1.SelectedImageIndex = 0;
-            treeNode1.Text = "Processors";
-            treeNode2.ImageIndex = 1;
-            treeNode2.Name = "ram";
-            treeNode2.SelectedImageIndex = 1;
-            treeNode2.Text = "Memory";
-            treeNode3.ImageIndex = 2;
-            treeNode3.Name = "gpu";
-            treeNode3.SelectedImageIndex = 2;
-            treeNode3.Text = "Graphics";
-            treeNode4.ImageIndex = 3;
-            treeNode4.Name = "mobo";
-            treeNode4.SelectedImageIndex = 3;
-            treeNode4.Text = "Motherboard";
-            treeNode5.ImageIndex = 4;
-            treeNode5.Name = "disk";
-            treeNode5.SelectedImageIndex = 4;
-            treeNode5.Text = "Storage";
-            treeNode6.ImageIndex = 5;
-            treeNode6.Name = "inet";
-            treeNode6.SelectedImageIndex = 5;
-            treeNode6.Text = "Network Adapters";
-            treeNode7.ImageIndex = 6;
-            treeNode7.Name = "audio";
-            treeNode7.SelectedImageIndex = 6;
-            treeNode7.Text = "Audio";
-            treeNode8.ImageIndex = 7;
-            treeNode8.Name = "dev";
-            treeNode8.SelectedImageIndex = 7;
-            treeNode8.Text = "Peripherals";
+            treeNode9.ImageIndex = 0;
+            treeNode9.Name = "cpu";
+            treeNode9.SelectedImageIndex = 0;
+            treeNode9.Text = "Processors";
+            treeNode10.ImageIndex = 1;
+            treeNode10.Name = "ram";
+            treeNode10.SelectedImageIndex = 1;
+            treeNode10.Text = "Memory";
+            treeNode11.ImageIndex = 2;
+            treeNode11.Name = "gpu";
+            treeNode11.SelectedImageIndex = 2;
+            treeNode11.Text = "Graphics";
+            treeNode12.ImageIndex = 3;
+            treeNode12.Name = "mobo";
+            treeNode12.SelectedImageIndex = 3;
+            treeNode12.Text = "Motherboard";
+            treeNode13.ImageIndex = 4;
+            treeNode13.Name = "disk";
+            treeNode13.SelectedImageIndex = 4;
+            treeNode13.Text = "Storage";
+            treeNode14.ImageIndex = 5;
+            treeNode14.Name = "inet";
+            treeNode14.SelectedImageIndex = 5;
+            treeNode14.Text = "Network Adapters";
+            treeNode15.ImageIndex = 6;
+            treeNode15.Name = "audio";
+            treeNode15.SelectedImageIndex = 6;
+            treeNode15.Text = "Audio";
+            treeNode16.ImageIndex = 7;
+            treeNode16.Name = "dev";
+            treeNode16.SelectedImageIndex = 7;
+            treeNode16.Text = "Peripherals";
             this.specsTree.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
-            treeNode1,
-            treeNode2,
-            treeNode3,
-            treeNode4,
-            treeNode5,
-            treeNode6,
-            treeNode7,
-            treeNode8});
+            treeNode9,
+            treeNode10,
+            treeNode11,
+            treeNode12,
+            treeNode13,
+            treeNode14,
+            treeNode15,
+            treeNode16});
             this.specsTree.Size = new System.Drawing.Size(991, 568);
             this.specsTree.TabIndex = 0;
             this.specsTree.NodeMouseClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.specsTree_NodeMouseClick);
@@ -4135,7 +4149,7 @@ namespace Optimizer
             this.tabPage8.Margin = new System.Windows.Forms.Padding(2);
             this.tabPage8.Name = "tabPage8";
             this.tabPage8.Padding = new System.Windows.Forms.Padding(2);
-            this.tabPage8.Size = new System.Drawing.Size(987, 579);
+            this.tabPage8.Size = new System.Drawing.Size(987, 578);
             this.tabPage8.TabIndex = 1;
             this.tabPage8.Text = "Add/Modify";
             // 
@@ -4479,7 +4493,7 @@ namespace Optimizer
             this.tabPage9.Margin = new System.Windows.Forms.Padding(2);
             this.tabPage9.Name = "tabPage9";
             this.tabPage9.Padding = new System.Windows.Forms.Padding(2);
-            this.tabPage9.Size = new System.Drawing.Size(987, 579);
+            this.tabPage9.Size = new System.Drawing.Size(987, 578);
             this.tabPage9.TabIndex = 2;
             this.tabPage9.Text = "Remove";
             // 
@@ -4589,7 +4603,7 @@ namespace Optimizer
             this.tabPage10.Margin = new System.Windows.Forms.Padding(2);
             this.tabPage10.Name = "tabPage10";
             this.tabPage10.Padding = new System.Windows.Forms.Padding(2);
-            this.tabPage10.Size = new System.Drawing.Size(987, 579);
+            this.tabPage10.Size = new System.Drawing.Size(987, 578);
             this.tabPage10.TabIndex = 3;
             this.tabPage10.Text = "Ready Menus";
             // 
@@ -4729,7 +4743,7 @@ namespace Optimizer
             this.tabPage11.Margin = new System.Windows.Forms.Padding(2);
             this.tabPage11.Name = "tabPage11";
             this.tabPage11.Padding = new System.Windows.Forms.Padding(2);
-            this.tabPage11.Size = new System.Drawing.Size(987, 579);
+            this.tabPage11.Size = new System.Drawing.Size(987, 578);
             this.tabPage11.TabIndex = 4;
             this.tabPage11.Text = "Run Dialog";
             // 
@@ -5405,9 +5419,6 @@ namespace Optimizer
             this.launcherMenu.Font = new System.Drawing.Font("Segoe UI Semibold", 11F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
             this.launcherMenu.ImageScalingSize = new System.Drawing.Size(20, 20);
             this.launcherMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
-            this.trayDownSpeed,
-            this.trayUpSpeed,
-            this.seperatorNetMon,
             this.trayStartup,
             this.trayCleaner,
             this.trayPinger,
@@ -5423,33 +5434,7 @@ namespace Optimizer
             this.trayExit});
             this.launcherMenu.Name = "launcherMenu";
             this.launcherMenu.RenderMode = System.Windows.Forms.ToolStripRenderMode.System;
-            this.launcherMenu.Size = new System.Drawing.Size(221, 360);
-            // 
-            // trayDownSpeed
-            // 
-            this.trayDownSpeed.Font = new System.Drawing.Font("Segoe UI Semibold", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.trayDownSpeed.ForeColor = System.Drawing.Color.White;
-            this.trayDownSpeed.Image = ((System.Drawing.Image)(resources.GetObject("trayDownSpeed.Image")));
-            this.trayDownSpeed.Name = "trayDownSpeed";
-            this.trayDownSpeed.Size = new System.Drawing.Size(220, 26);
-            this.trayDownSpeed.Text = "-";
-            this.trayDownSpeed.Visible = false;
-            // 
-            // trayUpSpeed
-            // 
-            this.trayUpSpeed.Font = new System.Drawing.Font("Segoe UI Semibold", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.trayUpSpeed.ForeColor = System.Drawing.Color.White;
-            this.trayUpSpeed.Image = ((System.Drawing.Image)(resources.GetObject("trayUpSpeed.Image")));
-            this.trayUpSpeed.Name = "trayUpSpeed";
-            this.trayUpSpeed.Size = new System.Drawing.Size(220, 26);
-            this.trayUpSpeed.Text = "-";
-            this.trayUpSpeed.Visible = false;
-            // 
-            // seperatorNetMon
-            // 
-            this.seperatorNetMon.Name = "seperatorNetMon";
-            this.seperatorNetMon.Size = new System.Drawing.Size(217, 6);
-            this.seperatorNetMon.Visible = false;
+            this.launcherMenu.Size = new System.Drawing.Size(221, 302);
             // 
             // trayStartup
             // 
@@ -5589,20 +5574,18 @@ namespace Optimizer
             this.launcherIcon.Text = "Optimizer";
             this.launcherIcon.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.launcherIcon_MouseDoubleClick);
             // 
-            // nvidiaTelemetrySw
+            // dnsTitle
             // 
-            this.nvidiaTelemetrySw.AccessibleName = "Disable NVIDIA Telemetry";
-            this.nvidiaTelemetrySw.AccessibleRole = System.Windows.Forms.AccessibleRole.CheckButton;
-            this.nvidiaTelemetrySw.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
-            this.nvidiaTelemetrySw.Font = new System.Drawing.Font("Segoe UI Semibold", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.nvidiaTelemetrySw.ForeColor = System.Drawing.Color.White;
-            this.nvidiaTelemetrySw.LabelText = "Disable NVIDIA Telemetry";
-            this.nvidiaTelemetrySw.Location = new System.Drawing.Point(21, 513);
-            this.nvidiaTelemetrySw.Name = "nvidiaTelemetrySw";
-            this.nvidiaTelemetrySw.Size = new System.Drawing.Size(490, 24);
-            this.nvidiaTelemetrySw.TabIndex = 73;
-            this.nvidiaTelemetrySw.Tag = "themeable";
-            this.nvidiaTelemetrySw.ToggleChecked = false;
+            this.dnsTitle.AutoSize = true;
+            this.dnsTitle.Font = new System.Drawing.Font("Segoe UI Semibold", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.dnsTitle.ForeColor = System.Drawing.Color.DodgerBlue;
+            this.dnsTitle.Location = new System.Drawing.Point(5, 3);
+            this.dnsTitle.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
+            this.dnsTitle.Name = "dnsTitle";
+            this.dnsTitle.Size = new System.Drawing.Size(258, 28);
+            this.dnsTitle.TabIndex = 114;
+            this.dnsTitle.Tag = "themeable";
+            this.dnsTitle.Text = "Rapidly change DNS server";
             // 
             // MainForm
             // 
@@ -5972,9 +5955,6 @@ namespace Optimizer
         private ToolStripMenuItem toolHWGoogle;
         private ToolStripMenuItem toolHWDuck;
         private ToolStripSeparator toolStripSeparator2;
-        private ToolStripMenuItem trayDownSpeed;
-        private ToolStripSeparator seperatorNetMon;
-        private ToolStripMenuItem trayUpSpeed;
         private ToggleCard vsSw;
         private ToggleCard chromeTelemetrySw;
         private ToggleCard ffTelemetrySw;
@@ -6075,10 +6055,11 @@ namespace Optimizer
         private Button flushCacheB;
         private MoonSelect boxAdapter;
         private MoonSelect boxDNS;
-        private TabControl netTools;
         private Controls.ColorPicker colorPicker1;
         private ToggleCard autoStartToggle;
         private ToggleCard nvidiaTelemetrySw;
+        private Optimizer.MoonTabs netTools;
+        private Label dnsTitle;
     }
 }
 

+ 103 - 102
Optimizer/Forms/MainForm.cs

@@ -38,10 +38,10 @@ namespace Optimizer
         string _shodanIP = string.Empty;
         PingReply tmpReply;
 
-        NetworkMonitor _networkMonitor;
-        double uploadSpeed = 0;
-        double downloadSpeed = 0;
-        bool _networkMonitoringSupported = true;
+        //NetworkMonitor _networkMonitor;
+        //double uploadSpeed = 0;
+        //double downloadSpeed = 0;
+        //bool _networkMonitoringSupported = true;
 
         DesktopItemType _desktopItemType = DesktopItemType.Program;
         DesktopTypePosition _desktopItemPosition = DesktopTypePosition.Top;
@@ -98,8 +98,6 @@ namespace Optimizer
 
         UpdateForm _updateForm;
 
-        int DPI_PREFERENCE;
-
         private string NewDownloadLink(string latestVersion)
         {
             return string.Format("https://github.com/hellzerg/optimizer/releases/download/{0}/Optimizer-{0}.exe", latestVersion);
@@ -696,12 +694,6 @@ namespace Optimizer
             Options.CurrentOptions.DisableFaxService = faxSw.ToggleChecked;
         }
 
-        private void LoadSettings()
-        {
-            pictureBox1.BackColor = Options.CurrentOptions.Theme;
-            colorPicker1.Color = Options.CurrentOptions.Theme;
-        }
-
         //INIT
         public MainForm(SplashForm _splashForm, bool disableIndicium = false, bool disableHostsEditor = false, bool disableCommonApps = false, bool disableUWPApps = false, bool disableStartups = false, bool disableCleaner = false, bool disableIntegrator = false, bool disablePinger = false)
         {
@@ -712,13 +704,13 @@ namespace Optimizer
 
             CheckForIllegalCrossThreadCalls = false;
 
-            DPI_PREFERENCE = Convert.ToInt32(Microsoft.Win32.Registry.GetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ThemeManager", "LastLoadedDPI", "96"));
-
             _splashForm.LoadingStatus.Text = "checking for requirements";
 
             // theming
             Options.ApplyTheme(this);
-            LoadSettings();
+            pictureBox1.BackColor = Options.CurrentOptions.Theme;
+            colorPicker1.Color = Options.CurrentOptions.Theme;
+
             launcherMenu.Renderer = new MoonMenuRenderer();
             indiciumMenu.Renderer = new MoonMenuRenderer();
 
@@ -729,9 +721,9 @@ namespace Optimizer
             _trayMenu = Options.CurrentOptions.EnableTray;
             quickAccessToggle.ToggleChecked = Options.CurrentOptions.EnableTray;
             launcherIcon.Visible = Options.CurrentOptions.EnableTray;
-            seperatorNetMon.Visible = Options.CurrentOptions.EnableTray;
-            trayDownSpeed.Visible = Options.CurrentOptions.EnableTray;
-            trayUpSpeed.Visible = Options.CurrentOptions.EnableTray;
+            //seperatorNetMon.Visible = Options.CurrentOptions.EnableTray;
+            //trayDownSpeed.Visible = Options.CurrentOptions.EnableTray;
+            //trayUpSpeed.Visible = Options.CurrentOptions.EnableTray;
             autoStartToggle.ToggleChecked = Options.CurrentOptions.AutoStart;
 
             // help tips
@@ -878,7 +870,7 @@ namespace Optimizer
                 tabCollection.TabPages.Remove(integratorTab);
             }
 
-            _splashForm.LoadingStatus.Text = "getting feed";
+            _splashForm.LoadingStatus.Text = "fetching feed";
 
             // APPS DOWNLOADER
             if (!disableCommonApps)
@@ -917,9 +909,7 @@ namespace Optimizer
 
             // PINGER
             if (!disablePinger)
-            { 
-                if (!PingerHelper.IsInternetAvailable()) return; 
-
+            {
                 LoadPingerDNSConfig();
                 DisplayCurrentDNS();
 
@@ -932,8 +922,6 @@ namespace Optimizer
                 launcherMenu.Items.RemoveByKey("trayPinger");
             }
 
-            LoadTranslationAndSetSize();
-
             Program._MainForm = this;
 
             if (string.IsNullOrEmpty(Options.CurrentOptions.AppsFolder))
@@ -960,7 +948,10 @@ namespace Optimizer
                 txtDownloadFolder.Text = Options.CurrentOptions.AppsFolder;
             }
 
-            if (!Program.EXPERIMENTAL_BUILD && PingerHelper.IsInternetAvailable()) CheckForUpdate(true);
+            if (!Program.EXPERIMENTAL_BUILD && PingerHelper.IsInternetAvailable())
+            {
+                CheckForUpdate(true);
+            }
 
             if (Program.EXPERIMENTAL_BUILD)
             {
@@ -968,10 +959,8 @@ namespace Optimizer
                 picLab.Visible = true;
             }
 
-            // network monitoring
-            InitNetworkMonitoring();
-
-            // make toggles function
+            LoadTranslationAndSetSize();
+            //InitNetworkMonitoring();
             EnableToggleEvents();
         }
 
@@ -1177,6 +1166,12 @@ namespace Optimizer
                 this.MinimumSize = _sizeDefault;
                 this.Size = _sizeDefault;
             }
+            if (Options.CurrentOptions.LanguageCode == LanguageCode.NL)
+            {
+                boxLang.Text = "Nederlands";
+                this.MinimumSize = _sizeDefault;
+                this.Size = _sizeDefault;
+            }
         }
 
         private void GetHardwareSpecs()
@@ -1705,67 +1700,67 @@ namespace Optimizer
             }
         }
 
-        private void InitNetworkMonitoring()
-        {
-            try
-            {
-                _networkMonitor = new NetworkMonitor();
-
-                if (Options.CurrentOptions.EnableTray)
-                {
-                    _networkMonitor.StartMonitoring();
-                    _networkMonitoringSupported = true;
-                    NetworkLiveMonitoring();
-                }
-            }
-            catch (Exception ex)
-            {
-                _networkMonitoringSupported = false;
-                DisposeNetworkMonitoring();
-                ErrorLogger.LogError("MainForm.NETWORK-MONITORING", ex.Message, ex.StackTrace);
-            }
-            finally
-            {
-                seperatorNetMon.Visible = _networkMonitoringSupported;
-                trayDownSpeed.Visible = _networkMonitoringSupported;
-                trayUpSpeed.Visible = _networkMonitoringSupported;
-            }
-        }
-
-        private void DisposeNetworkMonitoring()
-        {
-            if (_networkMonitor != null) _networkMonitor.StopMonitoring();
-        }
-
-        private void NetworkLiveMonitoring()
-        {
-            if (!_networkMonitoringSupported) return;
-
-            Task.Factory.StartNew(() =>
-            {
-                while (Options.CurrentOptions.EnableTray)
-                {
-                    // in BYTES
-                    downloadSpeed = 0;
-                    uploadSpeed = 0;
+        //private void InitNetworkMonitoring()
+        //{
+        //    try
+        //    {
+        //        _networkMonitor = new NetworkMonitor();
+
+        //        if (Options.CurrentOptions.EnableTray)
+        //        {
+        //            _networkMonitor.StartMonitoring();
+        //            _networkMonitoringSupported = true;
+        //            NetworkLiveMonitoring();
+        //        }
+        //    }
+        //    catch (Exception ex)
+        //    {
+        //        _networkMonitoringSupported = false;
+        //        DisposeNetworkMonitoring();
+        //        ErrorLogger.LogError("MainForm.NETWORK-MONITORING", ex.Message, ex.StackTrace);
+        //    }
+        //    finally
+        //    {
+        //        seperatorNetMon.Visible = _networkMonitoringSupported;
+        //        trayDownSpeed.Visible = _networkMonitoringSupported;
+        //        trayUpSpeed.Visible = _networkMonitoringSupported;
+        //    }
+        //}
 
-                    foreach (NetworkAdapter adapter in _networkMonitor.Adapters)
-                    {
-                        //adapter.Refresh();
-                        downloadSpeed += Math.Round(adapter.DownloadSpeedKbps, 2);
-                        uploadSpeed += Math.Round(adapter.UploadSpeedKbps, 2);
-                    }
+        //private void DisposeNetworkMonitoring()
+        //{
+        //    if (_networkMonitor != null) _networkMonitor.StopMonitoring();
+        //}
 
-                    this.Invoke(new Action(() =>
-                    {
-                        trayDownSpeed.Text = $"{downloadSpeed} KB/s";
-                        trayUpSpeed.Text = $"{uploadSpeed} KB/s";
-                    }));
+        //private void NetworkLiveMonitoring()
+        //{
+        //    if (!_networkMonitoringSupported) return;
 
-                    Thread.Sleep(1000);
-                }
-            });
-        }
+        //    Task.Factory.StartNew(() =>
+        //    {
+        //        while (Options.CurrentOptions.EnableTray)
+        //        {
+        //            // in BYTES
+        //            downloadSpeed = 0;
+        //            uploadSpeed = 0;
+
+        //            foreach (NetworkAdapter adapter in _networkMonitor.Adapters)
+        //            {
+        //                //adapter.Refresh();
+        //                downloadSpeed += Math.Round(adapter.DownloadSpeedKbps, 2);
+        //                uploadSpeed += Math.Round(adapter.UploadSpeedKbps, 2);
+        //            }
+
+        //            this.Invoke(new Action(() =>
+        //            {
+        //                trayDownSpeed.Text = $"{downloadSpeed} KB/s";
+        //                trayUpSpeed.Text = $"{uploadSpeed} KB/s";
+        //            }));
+
+        //            Thread.Sleep(1000);
+        //        }
+        //    });
+        //}
 
         private void TranslateIndicium()
         {
@@ -1966,19 +1961,19 @@ namespace Optimizer
                             switch (x.Group)
                             {
                                 case "SystemTools":
-                                    appCard.Location = new Point(0, groupSystemTools.Controls.Count * (DPI_PREFERENCE / 3));
+                                    appCard.Location = new Point(0, groupSystemTools.Controls.Count * (Program.DPI_PREFERENCE / 3));
                                     groupSystemTools.Controls.Add(appCard);
                                     break;
                                 case "Internet":
-                                    appCard.Location = new Point(0, groupInternet.Controls.Count * (DPI_PREFERENCE / 3));
+                                    appCard.Location = new Point(0, groupInternet.Controls.Count * (Program.DPI_PREFERENCE / 3));
                                     groupInternet.Controls.Add(appCard);
                                     break;
                                 case "Coding":
-                                    appCard.Location = new Point(0, groupCoding.Controls.Count * (DPI_PREFERENCE / 3));
+                                    appCard.Location = new Point(0, groupCoding.Controls.Count * (Program.DPI_PREFERENCE / 3));
                                     groupCoding.Controls.Add(appCard);
                                     break;
                                 case "GraphicsSound":
-                                    appCard.Location = new Point(0, groupSoundVideo.Controls.Count * (DPI_PREFERENCE / 3));
+                                    appCard.Location = new Point(0, groupSoundVideo.Controls.Count * (Program.DPI_PREFERENCE / 3));
                                     groupSoundVideo.Controls.Add(appCard);
                                     break;
                                 default:
@@ -2185,7 +2180,7 @@ namespace Optimizer
 
         private void Main_Load(object sender, EventArgs e)
         {
-            
+
         }
 
         private void GetDesktopItems()
@@ -2287,7 +2282,7 @@ namespace Optimizer
                     catch { }
                 }
 
-                appCard.Location = new Point(0, panelUwp.Controls.Count * (DPI_PREFERENCE / 3));
+                appCard.Location = new Point(0, panelUwp.Controls.Count * (Program.DPI_PREFERENCE / 3));
                 panelUwp.Controls.Add(appCard);
 
             }
@@ -4029,14 +4024,14 @@ namespace Optimizer
             _trayMenu = quickAccessToggle.ToggleChecked;
             launcherIcon.Visible = quickAccessToggle.ToggleChecked;
 
-            if (Options.CurrentOptions.EnableTray)
-            {
-                InitNetworkMonitoring();
-            }
-            else
-            {
-                DisposeNetworkMonitoring();
-            }
+            //if (Options.CurrentOptions.EnableTray)
+            //{
+            //    InitNetworkMonitoring();
+            //}
+            //else
+            //{
+            //    DisposeNetworkMonitoring();
+            //}
         }
 
         private void helpTipsToggle_ToggleClicked(object sender, EventArgs e)
@@ -4285,7 +4280,7 @@ namespace Optimizer
             }
             else if (boxLang.Text == "繁體中文")
             {
-                picFlag.Image = Properties.Resources.china;
+                picFlag.Image = Properties.Resources.taiwan;
                 Options.CurrentOptions.LanguageCode = LanguageCode.TW;
                 this.MinimumSize = _sizeDefault;
                 this.Size = _sizeDefault;
@@ -4386,6 +4381,9 @@ namespace Optimizer
 
         private void boxDNS_SelectedIndexChanged(object sender, EventArgs e)
         {
+            if (boxAdapter.Items.Count <= 0) return;
+            if (boxAdapter.SelectedIndex <= -1) return;
+
             if (boxDNS.Text == "Automatic")
             {
                 PingerHelper.ResetDefaultDNS(PingerHelper.NetworkAdapters[boxAdapter.SelectedIndex].Name);
@@ -4453,6 +4451,9 @@ namespace Optimizer
 
         private void DisplayCurrentDNS()
         {
+            if (boxAdapter.Items.Count <= 0) return;
+            if (boxAdapter.SelectedIndex <= -1) return;
+
             _currentDNS = PingerHelper.GetDNSFromNetworkAdapter(PingerHelper.NetworkAdapters[boxAdapter.SelectedIndex]).ToArray();
 
             if (_currentDNS == null) return;

+ 1 - 19
Optimizer/Forms/MainForm.resx

@@ -751,7 +751,7 @@ any application only by typing your desired keyword.</value>
         AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
         LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
         ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAC0
-        GgAAAk1TRnQBSQFMAgEBCQEAARABDAEQAQwBIAEAASABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAGA
+        GgAAAk1TRnQBSQFMAgEBCQEAASABDAEgAQwBIAEAASABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAGA
         AwABYAMAAQEBAAEgBgABwP8A/wD/AP8A/wD/AP8A/wAeAANHAYB0//8AiQADRwGAdP//AIkAAyoBQANH
         AYADRwGAA0cBgANHAYADRwGAA0cBgANHAYADRwGAA0cBgANHAYADRwGAA0cBgANHAYADRwGAA0cBgANH
         AYADRwGAA0cBgANHAYADRwGAA0cBgANHAYADRwGAA0cBgANHAYADRwGAA0cBgANHAYADRwGA/wD/AP8A
@@ -901,24 +901,6 @@ any application only by typing your desired keyword.</value>
   <metadata name="launcherMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>160, 46</value>
   </metadata>
-  <data name="trayDownSpeed.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL
-        DAAACwwBP0AiyAAAAJVJREFUaEPtz1sKxCAQRFH3vyp3lhAoIUjlNUPsNtwD9WOrVBcAAADge2qtyz46
-        ngcLRGOBaCwQjQWisUC09AtcFfx3/rq+QF/iyayfD+FKbNH4cIH+vEXjcVyJFje/82Y4V+SX6LsYrtCT
-        6JtYrtid6HkOruBZ9CwXV9RF13NyhffRtdxc8S0az2Hq8s3U5QEAeF8pK29egtk8bDRtAAAAAElFTkSu
-        QmCC
-</value>
-  </data>
-  <data name="trayUpSpeed.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL
-        DAAACwwBP0AiyAAAAJVJREFUaEPtz1EKxCAMhGHvfypvtoswQpHZ1bZgIvwfzEMblUkBAAA/1Fo/Lfo8
-        Sy9/5BJj+R6Nc3PFr9GxnFxhFx3PxRX9F13LwRVcia7HcsXuRM/EcIWeRM/t5Yr0uPnKna1ciRaN7QLN
-        +L9H431mJe7MxvkWswJv5+HSF5xhgWgsEI0ForFANBaIdvwCAAAAwEQpX0TFgtnLeqGjAAAAAElFTkSu
-        QmCC
-</value>
-  </data>
   <data name="trayStartup.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL

+ 0 - 7
Optimizer/Forms/SubForm.cs

@@ -1,11 +1,4 @@
 using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Drawing;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
 using System.Windows.Forms;
 
 namespace Optimizer

+ 78 - 78
Optimizer/NetworkAdapter.cs

@@ -1,78 +1,78 @@
-using System.Diagnostics;
-
-namespace Optimizer
-{
-    public class NetworkAdapter
-    {
-        long _downloadSpeed, _uploadSpeed;
-        long _downloadValue, _uploadValue;
-        long _downloadValueOld, _uploadValueOld;
-
-        string _name;
-
-        internal PerformanceCounter DownloadCounter, UploadCounter;
-
-        internal NetworkAdapter(string name)
-        {
-            _name = name;
-        }
-
-        internal void Initialize()
-        {
-            _downloadValueOld = DownloadCounter.NextSample().RawValue;
-            _uploadValueOld = UploadCounter.NextSample().RawValue;
-        }
-
-        internal void Refresh()
-        {
-            _downloadValue = DownloadCounter.NextSample().RawValue;
-            _uploadValue = UploadCounter.NextSample().RawValue;
-
-            _downloadSpeed = _downloadValue - _downloadValueOld;
-            _uploadSpeed = _uploadValue - _uploadValueOld;
-
-            _downloadValueOld = _downloadValue;
-            _uploadValueOld = _uploadValue;
-        }
-
-        public override string ToString()
-        {
-            return _name;
-        }
-
-        public string Name
-        {
-            get { return _name; }
-        }
-
-        public long DownloadSpeed
-        {
-            get { return _downloadSpeed; }
-        }
-
-        public long UploadSpeed
-        {
-            get { return _uploadSpeed; }
-        }
-
-        public double DownloadSpeedKbps
-        {
-            get { return this._downloadSpeed / 1024.0; }
-        }
-
-        public double UploadSpeedKbps
-        {
-            get { return this._uploadSpeed / 1024.0; }
-        }
-
-        public double DownloadSpeedMbps
-        {
-            get { return this._downloadSpeed / 1024.0 / 1024.0; }
-        }
-
-        public double UploadSpeedMbps
-        {
-            get { return this._uploadSpeed / 1024.0 / 1024.0; }
-        }
-    }
-}
+//using System.Diagnostics;
+
+//namespace Optimizer
+//{
+//    public class NetworkAdapter
+//    {
+//        long _downloadSpeed, _uploadSpeed;
+//        long _downloadValue, _uploadValue;
+//        long _downloadValueOld, _uploadValueOld;
+
+//        string _name;
+
+//        internal PerformanceCounter DownloadCounter, UploadCounter;
+
+//        internal NetworkAdapter(string name)
+//        {
+//            _name = name;
+//        }
+
+//        internal void Initialize()
+//        {
+//            _downloadValueOld = DownloadCounter.NextSample().RawValue;
+//            _uploadValueOld = UploadCounter.NextSample().RawValue;
+//        }
+
+//        internal void Refresh()
+//        {
+//            _downloadValue = DownloadCounter.NextSample().RawValue;
+//            _uploadValue = UploadCounter.NextSample().RawValue;
+
+//            _downloadSpeed = _downloadValue - _downloadValueOld;
+//            _uploadSpeed = _uploadValue - _uploadValueOld;
+
+//            _downloadValueOld = _downloadValue;
+//            _uploadValueOld = _uploadValue;
+//        }
+
+//        public override string ToString()
+//        {
+//            return _name;
+//        }
+
+//        public string Name
+//        {
+//            get { return _name; }
+//        }
+
+//        public long DownloadSpeed
+//        {
+//            get { return _downloadSpeed; }
+//        }
+
+//        public long UploadSpeed
+//        {
+//            get { return _uploadSpeed; }
+//        }
+
+//        public double DownloadSpeedKbps
+//        {
+//            get { return this._downloadSpeed / 1024.0; }
+//        }
+
+//        public double UploadSpeedKbps
+//        {
+//            get { return this._uploadSpeed / 1024.0; }
+//        }
+
+//        public double DownloadSpeedMbps
+//        {
+//            get { return this._downloadSpeed / 1024.0 / 1024.0; }
+//        }
+
+//        public double UploadSpeedMbps
+//        {
+//            get { return this._uploadSpeed / 1024.0 / 1024.0; }
+//        }
+//    }
+//}

+ 85 - 85
Optimizer/NetworkMonitor.cs

@@ -1,100 +1,100 @@
-using System.Collections;
-using System.Diagnostics;
-using System.Timers;
+//using System.Collections;
+//using System.Diagnostics;
+//using System.Timers;
 
-namespace Optimizer
-{
-    public class NetworkMonitor
-    {
-        Timer _timer;
-        ArrayList _adapters;
-        ArrayList _monitoredAdapters;
+//namespace Optimizer
+//{
+//    public class NetworkMonitor
+//    {
+//        Timer _timer;
+//        ArrayList _adapters;
+//        ArrayList _monitoredAdapters;
 
-        public NetworkMonitor()
-        {
-            _adapters = new ArrayList();
-            _monitoredAdapters = new ArrayList();
-            EnumerateNetworkAdapters();
+//        public NetworkMonitor()
+//        {
+//            _adapters = new ArrayList();
+//            _monitoredAdapters = new ArrayList();
+//            EnumerateNetworkAdapters();
 
-            _timer = new Timer(1000);
-            _timer.Elapsed += new ElapsedEventHandler(timer_Elapsed);
-        }
+//            _timer = new Timer(1000);
+//            _timer.Elapsed += new ElapsedEventHandler(timer_Elapsed);
+//        }
 
-        private void EnumerateNetworkAdapters()
-        {
-            PerformanceCounterCategory category = new PerformanceCounterCategory("Network Interface");
+//        private void EnumerateNetworkAdapters()
+//        {
+//            PerformanceCounterCategory category = new PerformanceCounterCategory("Network Interface");
 
-            foreach (string name in category.GetInstanceNames())
-            {
-                if (name == "MS TCP Loopback interface") continue;
-                if (name.ToLowerInvariant().Contains("virtual")) continue;
-                if (name.ToLowerInvariant().Contains("hyper-v")) continue;
+//            foreach (string name in category.GetInstanceNames())
+//            {
+//                if (name == "MS TCP Loopback interface") continue;
+//                if (name.ToLowerInvariant().Contains("virtual")) continue;
+//                if (name.ToLowerInvariant().Contains("hyper-v")) continue;
 
-                NetworkAdapter adapter = new NetworkAdapter(name);
-                adapter.DownloadCounter = new PerformanceCounter("Network Interface", "Bytes Received/sec", name);
-                adapter.UploadCounter = new PerformanceCounter("Network Interface", "Bytes Sent/sec", name);
-                _adapters.Add(adapter);
-            }
-        }
+//                NetworkAdapter adapter = new NetworkAdapter(name);
+//                adapter.DownloadCounter = new PerformanceCounter("Network Interface", "Bytes Received/sec", name);
+//                adapter.UploadCounter = new PerformanceCounter("Network Interface", "Bytes Sent/sec", name);
+//                _adapters.Add(adapter);
+//            }
+//        }
 
-        private void timer_Elapsed(object sender, ElapsedEventArgs e)
-        {
-            foreach (NetworkAdapter adapter in this._monitoredAdapters)
-            {
-                adapter.Refresh();
-            }
-        }
+//        private void timer_Elapsed(object sender, ElapsedEventArgs e)
+//        {
+//            foreach (NetworkAdapter adapter in this._monitoredAdapters)
+//            {
+//                adapter.Refresh();
+//            }
+//        }
 
-        public NetworkAdapter[] Adapters
-        {
-            get { return (NetworkAdapter[])_adapters.ToArray(typeof(NetworkAdapter)); }
-        }
+//        public NetworkAdapter[] Adapters
+//        {
+//            get { return (NetworkAdapter[])_adapters.ToArray(typeof(NetworkAdapter)); }
+//        }
 
-        public void StartMonitoring()
-        {
-            if (_adapters.Count > 0)
-            {
-                foreach (NetworkAdapter adapter in _adapters)
-                {
-                    if (!_monitoredAdapters.Contains(adapter))
-                    {
-                        _monitoredAdapters.Add(adapter);
-                        adapter.Initialize();
-                    }
-                }
+//        public void StartMonitoring()
+//        {
+//            if (_adapters.Count > 0)
+//            {
+//                foreach (NetworkAdapter adapter in _adapters)
+//                {
+//                    if (!_monitoredAdapters.Contains(adapter))
+//                    {
+//                        _monitoredAdapters.Add(adapter);
+//                        adapter.Initialize();
+//                    }
+//                }
 
-                _timer.Enabled = true;
-            }
-        }
+//                _timer.Enabled = true;
+//            }
+//        }
 
-        public void StartMonitoring(NetworkAdapter adapter)
-        {
-            if (!_monitoredAdapters.Contains(adapter))
-            {
-                _monitoredAdapters.Add(adapter);
-                adapter.Initialize();
-            }
+//        public void StartMonitoring(NetworkAdapter adapter)
+//        {
+//            if (!_monitoredAdapters.Contains(adapter))
+//            {
+//                _monitoredAdapters.Add(adapter);
+//                adapter.Initialize();
+//            }
 
-            _timer.Enabled = true;
-        }
+//            _timer.Enabled = true;
+//        }
 
-        public void StopMonitoring()
-        {
-            _monitoredAdapters.Clear();
-            _timer.Enabled = false;
-        }
+//        public void StopMonitoring()
+//        {
+//            _monitoredAdapters.Clear();
+//            _timer.Enabled = false;
+//        }
 
-        public void StopMonitoring(NetworkAdapter adapter)
-        {
-            if (_monitoredAdapters.Contains(adapter))
-            {
-                _monitoredAdapters.Remove(adapter);
-            }
+//        public void StopMonitoring(NetworkAdapter adapter)
+//        {
+//            if (_monitoredAdapters.Contains(adapter))
+//            {
+//                _monitoredAdapters.Remove(adapter);
+//            }
 
-            if (_monitoredAdapters.Count == 0)
-            {
-                _timer.Enabled = false;
-            }
-        }
-    }
-}
+//            if (_monitoredAdapters.Count == 0)
+//            {
+//                _timer.Enabled = false;
+//            }
+//        }
+//    }
+//}

+ 33 - 1
Optimizer/Optimize.cs

@@ -66,11 +66,15 @@ namespace Optimizer
             //Registry.SetValue(@"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced", "ShowSuperHidden", "1", RegistryValueKind.DWord);
 
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile", "SystemResponsiveness", 1, RegistryValueKind.DWord);
+            Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile", "NoLazyMode", 1, RegistryValueKind.DWord);
+            Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile", "AlwaysOn", 1, RegistryValueKind.DWord);
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\Tasks\Games", "GPU Priority", 8, RegistryValueKind.DWord);
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\Tasks\Games", "Priority", 6, RegistryValueKind.DWord);
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\Tasks\Games", "Scheduling Category", "High", RegistryValueKind.String);
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\Tasks\Games", "SFIO Priority", "High", RegistryValueKind.String);
 
+            Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows Media Foundation", "EnableFrameServerMode", 0, RegistryValueKind.DWord);
+
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\Tasks\Low Latency", "GPU Priority", 0, RegistryValueKind.DWord);
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\Tasks\Low Latency", "Priority", 8, RegistryValueKind.DWord);
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\Tasks\Low Latency", "Scheduling Category", "Medium", RegistryValueKind.String);
@@ -85,6 +89,8 @@ namespace Optimizer
                 Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Explorer\AutoComplete", true).DeleteValue("Append Completion", false);
                 Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Explorer\AutoComplete", true).DeleteValue("AutoSuggest", false);
 
+                Utilities.TryDeleteRegistryValue(true, @"SOFTWARE\WOW6432Node\Microsoft\Windows Media Foundation", "EnableFrameServerMode");
+
                 Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl", "CrashDumpEnabled", 7, RegistryValueKind.DWord);
 
                 // hide tray icons
@@ -128,6 +134,8 @@ namespace Optimizer
                 //Registry.SetValue(@"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced", "ShowSuperHidden", "0", RegistryValueKind.DWord);
 
                 Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile", "SystemResponsiveness", 14, RegistryValueKind.DWord);
+                Utilities.TryDeleteRegistryValue(true, @"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile", "NoLazyMode");
+                Utilities.TryDeleteRegistryValue(true, @"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile", "AlwaysOn");
                 Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\Tasks\Games", true).DeleteValue("GPU Priority", false);
                 Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\Tasks\Games", true).DeleteValue("Priority", false);
                 Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\Tasks\Games", true).DeleteValue("Scheduling Category", false);
@@ -159,6 +167,16 @@ namespace Optimizer
             Utilities.RunCommand("reg add \"HKLM\\Software\\Microsoft\\PolicyManager\\default\\WiFi\\AllowAutoConnectToWiFiSenseHotspots\" /v value /t REG_DWORD /d 0 /f");
             Utilities.RunCommand("reg add \"HKLM\\Software\\Microsoft\\PolicyManager\\default\\WiFi\\AllowWiFiHotSpotReporting\" /v value /t REG_DWORD /d 0 /f");
 
+            Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\AppCompat", "DisableEngine", 1, RegistryValueKind.DWord);
+            Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\AppCompat", "SbEnable", 0, RegistryValueKind.DWord);
+
+            if (Environment.Is64BitOperatingSystem)
+            {
+                Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\AppCompat", "DisableEngine", 1, RegistryValueKind.DWord);
+                Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\AppCompat", "SbEnable", 0, RegistryValueKind.DWord);
+                Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\AppCompat", "DisablePCA", 1, RegistryValueKind.DWord);
+            }
+
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\System", "PublishUserActivities", "0", RegistryValueKind.DWord);
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\SQMClient\Windows", "CEIPEnable", "0", RegistryValueKind.DWord);
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\AppCompat", "AITEnable", "0", RegistryValueKind.DWord);
@@ -334,12 +352,14 @@ namespace Optimizer
 
             Utilities.StopService("VSS");
 
+            Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\SystemRestore", "DisableSR", 1, RegistryValueKind.DWord);
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\SystemRestore", "DisableConfig", "1", RegistryValueKind.DWord);
         }
 
         internal static void EnableSystemRestore()
         {
-            Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\SystemRestore", "DisableConfig", "0", RegistryValueKind.DWord);
+            Utilities.TryDeleteRegistryValue(true, @"SOFTWARE\Policies\Microsoft\Windows NT\SystemRestore", "DisableSR");
+            Utilities.TryDeleteRegistryValue(true, @"SOFTWARE\Policies\Microsoft\Windows NT\SystemRestore", "DisableConfig");
 
             Utilities.StartService("VSS");
         }
@@ -951,6 +971,9 @@ namespace Optimizer
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Settings\FindMyDevice", "LocationSyncEnabled", "0", RegistryValueKind.DWord);
 
             // Disable location tracking
+            Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\LocationAndSensors", "DisableLocation", 1, RegistryValueKind.DWord);
+            Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\LocationAndSensors", "DisableLocationScripting", 1, RegistryValueKind.DWord);
+            Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\LocationAndSensors", "DisableWindowsLocationProvider", 1, RegistryValueKind.DWord);
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Sensor\Overrides\{BFA794E4-F964-4FDB-90F6-51056BFE4B44}", "SensorPermissionState", "0", RegistryValueKind.DWord);
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\lfsvc\Service\Configuration", "Status", "0", RegistryValueKind.DWord);
 
@@ -1012,6 +1035,7 @@ namespace Optimizer
 
             // Phone Link
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\System", "EnableMmx", 0, RegistryValueKind.DWord);
+            Registry.SetValue(@"HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\System", "RSoPLogging", 0, RegistryValueKind.DWord);
 
             // attempt to enable Local Group Policy Editor on Windows 10 Home editions
             if (Utilities.CurrentWindowsVersion == WindowsVersion.Windows10 && Utilities.GetOS().ToLowerInvariant().Contains("home"))
@@ -1077,6 +1101,9 @@ namespace Optimizer
             Utilities.TryDeleteRegistryValue(true, @"SOFTWARE\Microsoft\Settings\FindMyDevice", "LocationSyncEnabled");
 
             // Enable location tracking
+            Utilities.TryDeleteRegistryValue(true, @"SOFTWARE\Policies\Microsoft\Windows\LocationAndSensors", "DisableLocation");
+            Utilities.TryDeleteRegistryValue(true, @"SOFTWARE\Policies\Microsoft\Windows\LocationAndSensors", "DisableLocationScripting");
+            Utilities.TryDeleteRegistryValue(true, @"SOFTWARE\Policies\Microsoft\Windows\LocationAndSensors", "DisableWindowsLocationProvider");
             Utilities.TryDeleteRegistryValue(true, @"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Sensor\Overrides\{BFA794E4-F964-4FDB-90F6-51056BFE4B44}", "SensorPermissionState");
             Utilities.TryDeleteRegistryValue(true, @"System\CurrentControlSet\Services\lfsvc\Service\Configuration", "Status");
 
@@ -1140,6 +1167,7 @@ namespace Optimizer
 
             // Phone Link
             Utilities.TryDeleteRegistryValue(true, @"Software\Policies\Microsoft\Windows\System", "EnableMmx");
+            Utilities.TryDeleteRegistryValue(true, @"Software\Policies\Microsoft\Windows\System", "RSoPLogging");
         }
 
         internal static void DisableGameBar()
@@ -1740,6 +1768,8 @@ namespace Optimizer
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome", "MetricsReportingEnabled", 0);
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome", "ChromeCleanupReportingEnabled", 0);
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome", "ChromeCleanupEnabled", 0);
+            Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome", "UserFeedbackAllowed", 0);
+            Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome", "DeviceMetricsReportingEnabled", 0);
         }
 
         internal static void EnableChromeTelemetry()
@@ -1747,6 +1777,8 @@ namespace Optimizer
             Utilities.TryDeleteRegistryValue(true, @"SOFTWARE\Policies\Google\Chrome", "MetricsReportingEnabled");
             Utilities.TryDeleteRegistryValue(true, @"SOFTWARE\Policies\Google\Chrome", "ChromeCleanupReportingEnabled");
             Utilities.TryDeleteRegistryValue(true, @"SOFTWARE\Policies\Google\Chrome", "ChromeCleanupEnabled");
+            Utilities.TryDeleteRegistryValue(true, @"SOFTWARE\Policies\Google\Chrome", "UserFeedbackAllowed");
+            Utilities.TryDeleteRegistryValue(true, @"SOFTWARE\Policies\Google\Chrome", "DeviceMetricsReportingEnabled");
         }
 
         // FIREFOX TELEMETRY

+ 2 - 2
Optimizer/Options.cs

@@ -4,7 +4,6 @@ using System;
 using System.Drawing;
 using System.IO;
 using System.Linq;
-using System.Text;
 using System.Windows.Forms;
 
 namespace Optimizer
@@ -317,7 +316,8 @@ namespace Optimizer
                 if (CurrentOptions.LanguageCode == LanguageCode.HU) TranslationList = JObject.Parse(Properties.Resources.HU);
                 if (CurrentOptions.LanguageCode == LanguageCode.RO) TranslationList = JObject.Parse(Properties.Resources.RO);
                 if (CurrentOptions.LanguageCode == LanguageCode.NL) TranslationList = JObject.Parse(Properties.Resources.NL);
-;            }
+                ;
+            }
             catch (Exception ex)
             {
                 ErrorLogger.LogError("Options.LoadTranslation", ex.Message, ex.StackTrace);

+ 1 - 1
Optimizer/PingerHelper.cs

@@ -158,7 +158,7 @@ namespace Optimizer
         //            return $"{port} - [×]";
         //        }
 
-                
+
         //    }
         //    catch
         //    {

+ 4 - 1
Optimizer/Program.cs

@@ -14,9 +14,10 @@ namespace Optimizer
         /* DO NOT LEAVE THEM EMPTY */
 
         internal readonly static float Major = 14;
-        internal readonly static float Minor = 1;
+        internal readonly static float Minor = 2;
 
         internal readonly static bool EXPERIMENTAL_BUILD = false;
+        internal static int DPI_PREFERENCE;
 
         internal static string GetCurrentVersionTostring()
         {
@@ -62,6 +63,7 @@ namespace Optimizer
             EmbeddedAssembly.Load(_jsonAssembly, _jsonAssembly.Replace("Optimizer.", string.Empty));
             AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
 
+            DPI_PREFERENCE = Convert.ToInt32(Microsoft.Win32.Registry.GetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ThemeManager", "LastLoadedDPI", "96"));
             if (Environment.OSVersion.Version.Major >= 6) SetProcessDPIAware();
 
             Application.EnableVisualStyles();
@@ -86,6 +88,7 @@ namespace Optimizer
                 }
                 else
                 {
+                    // Restart process with admin rights, preserving arguments
                     if (!Utilities.IsAdmin())
                     {
                         string file = Process.GetCurrentProcess().MainModule.FileName;

+ 2 - 1
Optimizer/Resources/i18n/AR.json

@@ -426,5 +426,6 @@
 	"ntfsStampTip": "يشير إلى آخر طابع تم الوصول إليه للملف.
 	يمكن أن يؤدي تعطيله إلى تقليل عمليات الإدخال / الإخراج على الأقراص.",
 	"autoStartToggle": "ابدأ بنظام Windows",
-	"nvidiaTelemetrySw": "قم بتعطيل NVIDIA Telemetry"
+	"nvidiaTelemetrySw": "قم بتعطيل NVIDIA Telemetry",
+	"dnsTitle": "تغيير خادم DNS بسرعة"
 }

+ 2 - 1
Optimizer/Resources/i18n/CN.json

@@ -424,5 +424,6 @@
 	"ntfsStampTip": "指示文件的最后一次访问时间戳。
 	禁用它可以减少磁盘上的 I/O 操作。",
 	"autoStartToggle": "从 Windows 开始",
-	"nvidiaTelemetrySw": "禁用 NVIDIA 遥测"
+	"nvidiaTelemetrySw": "禁用 NVIDIA 遥测",
+	"dnsTitle": "快速更换DNS服务器"
 }

+ 2 - 1
Optimizer/Resources/i18n/CZ.json

@@ -426,5 +426,6 @@ Je to však považováno za riskantní procedůru. Obvykle se jedná o půlročn
 	"ntfsStampTip": "Označuje razítko posledního přístupu k souboru.
 	Jeho zakázáním můžete snížit I/O operace na discích.",
 	"autoStartToggle": "Začněte s Windows",
-	"nvidiaTelemetrySw": "Zakázat telemetrii NVIDIA"
+	"nvidiaTelemetrySw": "Zakázat telemetrii NVIDIA",
+	"dnsTitle": "Rychlá změna serveru DNS"
 }

+ 2 - 1
Optimizer/Resources/i18n/DE.json

@@ -401,5 +401,6 @@ Es wurde durch SMBv3 ersetzt, das sicherer ist.",
 	"ntfsStampTip": "Gibt den Zeitpunkt des letzten Zugriffs auf die Datei an.
 Durch Deaktivieren können die E/A-Vorgänge auf den Festplatten reduziert werden.",
 	"autoStartToggle": "Starte mit Windows",
-	"nvidiaTelemetrySw": "Deaktivieren Sie die NVIDIA-Telemetrie"
+	"nvidiaTelemetrySw": "Deaktivieren Sie die NVIDIA-Telemetrie",
+	"dnsTitle": "Ändern Sie schnell den DNS-Server"
 }

+ 2 - 1
Optimizer/Resources/i18n/EL.json

@@ -421,5 +421,6 @@
 	"ntfsStampSw": "Απενεργοποίηση NTFS Timestamp",
 	"ntfsStampTip": "Το NTFS Timestamp δείχνει τον χρόνο της τελευταίας πρόσβασης του αρχειού. Η απενεργοποίηση του βελτιώνει την ταχύτητα των δίσκων.",
 	"autoStartToggle": "Εκκίνηση με τα Windows",
-	"nvidiaTelemetrySw": "Απενεργοποίηση τηλεμετρίας NVIDIA"
+	"nvidiaTelemetrySw": "Απενεργοποίηση Τηλεμετρίας NVIDIA",
+	"dnsTitle": "Γρήγορη αλλαγή διακομιστή DNS"
 }

+ 2 - 1
Optimizer/Resources/i18n/EN.json

@@ -426,5 +426,6 @@ It has been replaced with SMBv3, which is more secure.",
 	"ntfsStampTip": "Indicates the file's last time accessed stamp.
 Disabling it can reduce I/O operations on the disks.",
 	"autoStartToggle": "Start with Windows",
-	"nvidiaTelemetrySw": "Disable NVIDIA Telemetry"
+	"nvidiaTelemetrySw": "Disable NVIDIA Telemetry",
+	"dnsTitle": "Rapidly change DNS server"
 }

+ 2 - 1
Optimizer/Resources/i18n/ES.json

@@ -423,5 +423,6 @@ Sin embargo, se consideran un procedimiento riesgoso. Suelen ser lanzamientos se
 	"ntfsStampTip": "Indica la marca de la última vez que se accedió al archivo.
 	Deshabilitarlo puede reducir las operaciones de E/S en los discos.",
 	"autoStartToggle": "Comience con el Windows",
-	"nvidiaTelemetrySw": "Deshabilitar la telemetría de NVIDIA"
+	"nvidiaTelemetrySw": "Deshabilitar la telemetría de NVIDIA",
+	"dnsTitle": "Cambiar rápidamente el servidor DNS"
 }

+ 2 - 1
Optimizer/Resources/i18n/FR.json

@@ -423,5 +423,6 @@ Cependant, elles sont considerees comme une procedure risquee. Il s'agit general
 	"ntfsStampTip": "Indique l'horodatage du dernier accès au fichier.
 	Sa désactivation peut réduire les opérations d'E/S sur les disques.",
 	"autoStartToggle": "Commence avec Windows",
-	"nvidiaTelemetrySw": "Désactiver la télémétrie NVIDIA"
+	"nvidiaTelemetrySw": "Désactiver la télémétrie NVIDIA",
+	"dnsTitle": "Changer rapidement de serveur DNS"
 }

+ 2 - 1
Optimizer/Resources/i18n/HU.json

@@ -426,5 +426,6 @@
 	"ntfsStampTip": "A fájl utoljára elért bélyegzőjét jelzi.
 	A letiltása csökkentheti az I/O műveleteket a lemezeken.",
 	"autoStartToggle": "Kezdje a Windows rendszerrel",
-	"nvidiaTelemetrySw": "Az NVIDIA telemetria letiltása"
+	"nvidiaTelemetrySw": "Az NVIDIA telemetria letiltása",
+	"dnsTitle": "DNS-kiszolgáló gyors cseréje"
 }

+ 2 - 1
Optimizer/Resources/i18n/IT.json

@@ -421,5 +421,6 @@ Tuttavia, sono considerate procedure rischiose. Sono normalmente una release ogn
 	"ntfsStampTip": "Indica l'ultima volta che si è avuto accesso al file.
 	La disabilitazione può ridurre le operazioni di I/O sui dischi.",
 	"autoStartToggle": "Inizia con Windows",
-	"nvidiaTelemetrySw": "Disabilita la telemetria NVIDIA"
+	"nvidiaTelemetrySw": "Disabilita la telemetria NVIDIA",
+	"dnsTitle": "Cambia rapidamente il server DNS"
 }

+ 2 - 1
Optimizer/Resources/i18n/KO.json

@@ -426,5 +426,6 @@ Microsoft 계정 로그인이 필요합니다.",
 	"ntfsStampTip": "파일의 마지막 액세스 시간 스탬프를 나타냅니다.
 	비활성화하면 디스크의 I/O 작업을 줄일 수 있습니다.",
 	"autoStartToggle": "Windows로 시작",
-	"nvidiaTelemetrySw": "NVIDIA 원격 측정 비활성화"
+	"nvidiaTelemetrySw": "NVIDIA 원격 측정 비활성화",
+	"dnsTitle": "DNS 서버를 빠르게 변경"
 }

+ 2 - 1
Optimizer/Resources/i18n/KU.json

@@ -425,5 +425,6 @@
 	"ntfsStampTip": "ئاماژە بە دوایین جار مۆری پەڕگەکە دەکات کە دەستی پێگەیشتووە.
 	لەکارخستنی دەتوانێت کارەکانی I/O لەسەر دیسکەکان کەم بکاتەوە.",
 	"autoStartToggle": "لە ویندۆزەوە دەست پێ بکە",
-	"nvidiaTelemetrySw": "NVIDIA Telemetry لەکاربخە"
+	"nvidiaTelemetrySw": "NVIDIA Telemetry لەکاربخە",
+	"dnsTitle": "بە خێرایی ڕاژەکاری DNS بگۆڕە"
 }

+ 2 - 1
Optimizer/Resources/i18n/NL.json

@@ -376,5 +376,6 @@
    "ntfsStampSw":"NTFS-tijdstempel uitschakelen",
    "ntfsStampTip":"Geeft aan wanneer het bestand voor het laatst is geopend. Uitschakelen kan I/O-bewerkingen op de harde schijven verminderen.",
    "autoStartToggle": "Begin met Windows",
-   "nvidiaTelemetrySw": "NVIDIA-telemetrie uitschakelen"
+   "nvidiaTelemetrySw": "NVIDIA-telemetrie uitschakelen",
+   "dnsTitle": "Snel van DNS-server veranderen"
 }

+ 2 - 1
Optimizer/Resources/i18n/PL.json

@@ -423,5 +423,6 @@ Są one jednak uważane za ryzykowną procedurę. Zazwyczaj są wydawane co pó
 	"ntfsStampTip": "Wskazuje pieczęć ostatniego dostępu do pliku.
 	Wyłączenie go może zmniejszyć liczbę operacji we/wy na dyskach.",
 	"autoStartToggle": "Uruchom z Windows",
-	"nvidiaTelemetrySw": "Wyłącz telemetrię NVIDIA"
+	"nvidiaTelemetrySw": "Wyłącz telemetrię NVIDIA",
+	"dnsTitle": "Szybko zmień serwer DNS"
 }

+ 2 - 1
Optimizer/Resources/i18n/PT.json

@@ -423,5 +423,6 @@ No entanto, eles são considerados um procedimento arriscado. Geralmente são la
 	"ntfsStampTip": "Indica o último carimbo de acesso do arquivo.
 	Desabilitar pode reduzir as operações de E/S nos discos.",
 	"autoStartToggle": "Comece com o Windows",
-	"nvidiaTelemetrySw": "Desativar a telemetria NVIDIA"
+	"nvidiaTelemetrySw": "Desativar a telemetria NVIDIA",
+	"dnsTitle": "Altere rapidamente o servidor DNS"
 }

+ 2 - 1
Optimizer/Resources/i18n/RO.json

@@ -407,5 +407,6 @@ pentru analiză către Microsoft.",
 	"ntfsStampTip": "Indică ștampila la care a fost accesat ultima dată fișierul.
 	Dezactivarea acestuia poate reduce operațiunile I/O pe discuri.",
 	"autoStartToggle": "Începeți cu Windows",
-	"nvidiaTelemetrySw": "Dezactivați telemetria NVIDIA"
+	"nvidiaTelemetrySw": "Dezactivați telemetria NVIDIA",
+	"dnsTitle": "Schimbați rapid serverul DNS"
 }

+ 2 - 1
Optimizer/Resources/i18n/RU.json

@@ -426,5 +426,6 @@
 	"ntfsStampTip": "Указывает отметку времени последнего доступа к файлу.
 	Его отключение может уменьшить количество операций ввода-вывода на дисках.",
 	"autoStartToggle": "Начните с Windows",
-	"nvidiaTelemetrySw": "Отключить телеметрию NVIDIA"
+	"nvidiaTelemetrySw": "Отключить телеметрию NVIDIA",
+	"dnsTitle": "Быстро сменить DNS-сервер"
 }

+ 2 - 1
Optimizer/Resources/i18n/TR.json

@@ -424,5 +424,6 @@ Ancak, riskli bir prosedür olarak kabul edilirler. Genellikle altı aylık yay
 	"ntfsStampTip": "Dosyanın en son erişilen damgasını gösterir.
 	Devre dışı bırakmak, disklerdeki G/Ç işlemlerini azaltabilir.",
 	"autoStartToggle": "Windows başla",
-	"nvidiaTelemetrySw": "NVIDIA Telemetrisini Devre Dışı Bırak"
+	"nvidiaTelemetrySw": "NVIDIA Telemetrisini Devre Dışı Bırak",
+	"dnsTitle": "DNS sunucusunu hızla değiştirin"
 }

+ 2 - 1
Optimizer/Resources/i18n/TW.json

@@ -424,5 +424,6 @@
 	"ntfsStampTip": "指示文件的最後一次訪問時間戳。
 	禁用它可以減少磁盤上的 I/O 操作。",
 	"autoStartToggle": "從 Windows 開始",
-	"nvidiaTelemetrySw": "禁用 NVIDIA 遙測"
+	"nvidiaTelemetrySw": "禁用 NVIDIA 遙測",
+	"dnsTitle": "快速更換DNS服務器"
 }

+ 3 - 4
README.md

@@ -3,7 +3,7 @@
 </p> 
 
 <p align="center">
-	<a href="https://github.com/hellzerg/optimizer/releases/download/14.1/Optimizer-14.1.exe" target="_blank">
+	<a href="https://github.com/hellzerg/optimizer/releases/download/14.2/Optimizer-14.2.exe" target="_blank">
 		<img src="https://raw.githubusercontent.com/hellzerg/optimizer/master/download-button.png">
 		<br>
 		<img src="https://raw.githubusercontent.com/hellzerg/optimizer/master/flags.png">
@@ -33,7 +33,6 @@ Depending on your version of Windows, Optimizer will also allow you to perform s
 * Remove unwanted programs running at startup
 * Edit your HOSTS file
 * Find file lock handles and kill associated processes
-* Network speed monitoring
 * Hardware inspection tool
 * Add items in desktop on right-click menu
 * Define custom commands for run dialog
@@ -88,9 +87,9 @@ https://github.com/hellzerg/optimizer/blob/master/LEGACY.md
 
 ### #️ Details: ###
 
-* Latest version: 14.1
+* Latest version: 14.2
 * Released: October 18, 2022
-* SHA256: 888E350DF53B8AB0CB81775F3FAB3F87A1C73395BF88C80898688B784BB04E6C
+* SHA256: 43406D06D7BFBCC512E465FC048EA16CB160E61C1CA33897EBA3E85CA3DC734A
 
 <hr>
 

+ 1 - 1
version.txt

@@ -1 +1 @@
-14.1
+14.2