Quellcode durchsuchen

Major update and quality of life changes v16.5

deadmoon vor 1 Jahr
Ursprung
Commit
6f495281e0
98 geänderte Dateien mit 9663 neuen und 7036 gelöschten Zeilen
  1. 13 0
      CHANGELOG.md
  2. 28 14
      Optimizer/ByteSize/BinaryByteSize.cs
  3. 100 50
      Optimizer/ByteSize/ByteSize.cs
  4. 24 12
      Optimizer/ByteSize/DecimalByteSize.cs
  5. 122 61
      Optimizer/CleanHelper.cs
  6. 82 41
      Optimizer/ColorHelper.cs
  7. 5 2
      Optimizer/Constants.cs
  8. 6 3
      Optimizer/Controls/AppCard.cs
  9. 18 9
      Optimizer/Controls/ColorOverrider.cs
  10. 194 97
      Optimizer/Controls/ColorPicker.cs
  11. 22 11
      Optimizer/Controls/ListViewColumnSorter.cs
  12. 12 6
      Optimizer/Controls/MoonCheck.cs
  13. 14 7
      Optimizer/Controls/MoonCheckList.cs
  14. 14 7
      Optimizer/Controls/MoonList.cs
  15. 54 27
      Optimizer/Controls/MoonMenuRenderer.cs
  16. 8 4
      Optimizer/Controls/MoonProgress.cs
  17. 12 6
      Optimizer/Controls/MoonRadio.cs
  18. 18 9
      Optimizer/Controls/MoonSelect.cs
  19. 78 39
      Optimizer/Controls/MoonTabs.cs
  20. 16 8
      Optimizer/Controls/MoonToggle.cs
  21. 18 9
      Optimizer/Controls/MoonTree.cs
  22. 22 11
      Optimizer/Controls/ToggleCard.cs
  23. 28 14
      Optimizer/CoreHelper.cs
  24. 9 5
      Optimizer/DebugHelper.cs
  25. 24 12
      Optimizer/EmbeddedAssembly.cs
  26. 22 11
      Optimizer/ErrorLogger.cs
  27. 24 12
      Optimizer/FileHandleHelper.cs
  28. 36 18
      Optimizer/FontHelper.cs
  29. 18 9
      Optimizer/Forms/AboutForm.cs
  30. 18 9
      Optimizer/Forms/FileUnlockForm.cs
  31. 114 46
      Optimizer/Forms/FirstRunForm.Designer.cs
  32. 128 51
      Optimizer/Forms/FirstRunForm.cs
  33. 30 15
      Optimizer/Forms/HelperForm.cs
  34. 18 9
      Optimizer/Forms/HostsEditorForm.cs
  35. 18 9
      Optimizer/Forms/InfoForm.cs
  36. 5362 4920
      Optimizer/Forms/MainForm.Designer.cs
  37. 401 155
      Optimizer/Forms/MainForm.cs
  38. 2 2
      Optimizer/Forms/MainForm.resx
  39. 6 3
      Optimizer/Forms/SplashForm.cs
  40. 22 11
      Optimizer/Forms/StartupPreviewForm.cs
  41. 64 32
      Optimizer/Forms/StartupRestoreForm.cs
  42. 12 6
      Optimizer/Forms/SubForm.cs
  43. 12 6
      Optimizer/Forms/UpdateForm.cs
  44. 86 43
      Optimizer/HostsHelper.cs
  45. 152 76
      Optimizer/IndiciumHelper.cs
  46. 112 56
      Optimizer/IntegratorHelper.cs
  47. 4 2
      Optimizer/Models/AppInfo.cs
  48. 30 15
      Optimizer/Models/Enums.cs
  49. 26 13
      Optimizer/Models/Hardware.cs
  50. 11 2
      Optimizer/Models/Options.cs
  51. 35 14
      Optimizer/Models/SilentConfig.cs
  52. 6 3
      Optimizer/Models/StartupBackupItem.cs
  53. 46 23
      Optimizer/Models/StartupItem.cs
  54. 296 176
      Optimizer/OptimizeHelper.cs
  55. 2 0
      Optimizer/Optimizer.csproj
  56. 64 27
      Optimizer/OptionsHelper.cs
  57. 46 23
      Optimizer/PingerHelper.cs
  58. 100 51
      Optimizer/Program.cs
  59. 123 86
      Optimizer/Properties/Resources.Designer.cs
  60. 6 0
      Optimizer/Properties/Resources.resx
  61. 13 11
      Optimizer/Resources/i18n/AR.json
  62. 10 8
      Optimizer/Resources/i18n/BG.json
  63. 8 6
      Optimizer/Resources/i18n/CN.json
  64. 8 6
      Optimizer/Resources/i18n/CZ.json
  65. 8 6
      Optimizer/Resources/i18n/DE.json
  66. 8 6
      Optimizer/Resources/i18n/EL.json
  67. 8 6
      Optimizer/Resources/i18n/EN.json
  68. 8 6
      Optimizer/Resources/i18n/ES.json
  69. 8 6
      Optimizer/Resources/i18n/FA.json
  70. 8 6
      Optimizer/Resources/i18n/FR.json
  71. 8 6
      Optimizer/Resources/i18n/HU.json
  72. 8 6
      Optimizer/Resources/i18n/IT.json
  73. 8 6
      Optimizer/Resources/i18n/JA.json
  74. 8 6
      Optimizer/Resources/i18n/KO.json
  75. 8 7
      Optimizer/Resources/i18n/KU.json
  76. 10 8
      Optimizer/Resources/i18n/NE.json
  77. 10 8
      Optimizer/Resources/i18n/NL.json
  78. 8 6
      Optimizer/Resources/i18n/PL.json
  79. 8 6
      Optimizer/Resources/i18n/PT.json
  80. 8 6
      Optimizer/Resources/i18n/RO.json
  81. 8 6
      Optimizer/Resources/i18n/RU.json
  82. 8 6
      Optimizer/Resources/i18n/TR.json
  83. 8 6
      Optimizer/Resources/i18n/TW.json
  84. 8 6
      Optimizer/Resources/i18n/UA.json
  85. 8 6
      Optimizer/Resources/i18n/UR.json
  86. 8 6
      Optimizer/Resources/i18n/VN.json
  87. 585 247
      Optimizer/SilentOps.cs
  88. 60 30
      Optimizer/StartupHelper.cs
  89. 1 1
      Optimizer/TelemetryHelper.cs
  90. 24 12
      Optimizer/TokenPrivilegeHelper.cs
  91. 30 15
      Optimizer/UWPHelper.cs
  92. 321 157
      Optimizer/Utilities.cs
  93. 6 4
      README.md
  94. 8 1
      templates/template-windows10.json
  95. 8 1
      templates/template-windows11.json
  96. 4 1
      templates/template-windows7.json
  97. 3 0
      templates/template-windows8.json
  98. 1 1
      version.txt

+ 13 - 0
CHANGELOG.md

@@ -1,3 +1,16 @@
+## [16.5] - 2024-05-03
+- New: Enable UTC time globally on Windows
+- New: Disable Modern Standby feature on Windows 10/11
+- New: Hide Search & Weather icons from taskbar
+- New: Disable News & Interests
+- New: Show all notification icons on taskbar
+- New: Remove menus delay
+- New: Vietnamese and Urdu languages
+- New: Disable CoPilot AI now applies to Edge as well
+- Improved: Localization updates
+- Improved: Many quality-of-life changes
+- Hotfix: Sorting deleting bug in Startup items (#489)
+
 ## [16.4] - 2023-12-29
 - New: FAQ section link in Options
 - New: Various performance improvements from code refactoring

+ 28 - 14
Optimizer/ByteSize/BinaryByteSize.cs

@@ -1,8 +1,10 @@
 using System;
 using System.Globalization;
 
-namespace Optimizer {
-    public partial struct ByteSize {
+namespace Optimizer
+{
+    public partial struct ByteSize
+    {
         public const long BytesInKibiByte = 1_024;
         public const long BytesInMebiByte = 1_048_576;
         public const long BytesInGibiByte = 1_073_741_824;
@@ -21,51 +23,63 @@ namespace Optimizer {
         public double TebiBytes => Bytes / BytesInTebiByte;
         public double PebiBytes => Bytes / BytesInPebiByte;
 
-        public static ByteSize FromKibiBytes(double value) {
+        public static ByteSize FromKibiBytes(double value)
+        {
             return new ByteSize(value * BytesInKibiByte);
         }
 
-        public static ByteSize FromMebiBytes(double value) {
+        public static ByteSize FromMebiBytes(double value)
+        {
             return new ByteSize(value * BytesInMebiByte);
         }
 
-        public static ByteSize FromGibiBytes(double value) {
+        public static ByteSize FromGibiBytes(double value)
+        {
             return new ByteSize(value * BytesInGibiByte);
         }
 
-        public static ByteSize FromTebiBytes(double value) {
+        public static ByteSize FromTebiBytes(double value)
+        {
             return new ByteSize(value * BytesInTebiByte);
         }
 
-        public static ByteSize FromPebiBytes(double value) {
+        public static ByteSize FromPebiBytes(double value)
+        {
             return new ByteSize(value * BytesInPebiByte);
         }
 
-        public ByteSize AddKibiBytes(double value) {
+        public ByteSize AddKibiBytes(double value)
+        {
             return this + ByteSize.FromKibiBytes(value);
         }
 
-        public ByteSize AddMebiBytes(double value) {
+        public ByteSize AddMebiBytes(double value)
+        {
             return this + ByteSize.FromMebiBytes(value);
         }
 
-        public ByteSize AddGibiBytes(double value) {
+        public ByteSize AddGibiBytes(double value)
+        {
             return this + ByteSize.FromGibiBytes(value);
         }
 
-        public ByteSize AddTebiBytes(double value) {
+        public ByteSize AddTebiBytes(double value)
+        {
             return this + ByteSize.FromTebiBytes(value);
         }
 
-        public ByteSize AddPebiBytes(double value) {
+        public ByteSize AddPebiBytes(double value)
+        {
             return this + ByteSize.FromPebiBytes(value);
         }
 
-        public string ToBinaryString() {
+        public string ToBinaryString()
+        {
             return this.ToString("0.##", CultureInfo.CurrentCulture, useBinaryByte: true);
         }
 
-        public string ToBinaryString(IFormatProvider formatProvider) {
+        public string ToBinaryString(IFormatProvider formatProvider)
+        {
             return this.ToString("0.##", formatProvider, useBinaryByte: true);
         }
     }

+ 100 - 50
Optimizer/ByteSize/ByteSize.cs

@@ -1,12 +1,14 @@
 using System;
 using System.Globalization;
 
-namespace Optimizer {
+namespace Optimizer
+{
     /// <summary>
     /// Represents a byte size value with support for decimal (KiloByte) and
     /// binary values (KibiByte).
     /// </summary>
-    public partial struct ByteSize : IComparable<ByteSize>, IEquatable<ByteSize> {
+    public partial struct ByteSize : IComparable<ByteSize>, IEquatable<ByteSize>
+    {
         public static readonly ByteSize MinValue = ByteSize.FromBits(long.MinValue);
         public static readonly ByteSize MaxValue = ByteSize.FromBits(long.MaxValue);
         public const long BitsInByte = 8;
@@ -15,8 +17,10 @@ namespace Optimizer {
         public long Bits { get; private set; }
         public double Bytes { get; private set; }
 
-        public string LargestWholeNumberBinarySymbol {
-            get {
+        public string LargestWholeNumberBinarySymbol
+        {
+            get
+            {
                 // Absolute value is used to deal with negative values
                 if (Math.Abs(this.PebiBytes) >= 1)
                     return PebiByteSymbol;
@@ -40,8 +44,10 @@ namespace Optimizer {
             }
         }
 
-        public string LargestWholeNumberDecimalSymbol {
-            get {
+        public string LargestWholeNumberDecimalSymbol
+        {
+            get
+            {
                 // Absolute value is used to deal with negative values
                 if (Math.Abs(this.PetaBytes) >= 1)
                     return PetaByteSymbol;
@@ -65,8 +71,10 @@ namespace Optimizer {
             }
         }
 
-        public double LargestWholeNumberBinaryValue {
-            get {
+        public double LargestWholeNumberBinaryValue
+        {
+            get
+            {
                 // Absolute value is used to deal with negative values
                 if (Math.Abs(this.PebiBytes) >= 1)
                     return this.PebiBytes;
@@ -90,8 +98,10 @@ namespace Optimizer {
             }
         }
 
-        public double LargestWholeNumberDecimalValue {
-            get {
+        public double LargestWholeNumberDecimalValue
+        {
+            get
+            {
                 // Absolute value is used to deal with negative values
                 if (Math.Abs(this.PetaBytes) >= 1)
                     return this.PetaBytes;
@@ -116,25 +126,29 @@ namespace Optimizer {
         }
 
         public ByteSize(long bits)
-            : this() {
+            : this()
+        {
             Bits = bits;
 
             Bytes = bits / BitsInByte;
         }
 
         public ByteSize(double bytes)
-            : this() {
+            : this()
+        {
             // Get ceiling because bits are whole units
             Bits = (long)Math.Ceiling(bytes * BitsInByte);
 
             Bytes = bytes;
         }
 
-        public static ByteSize FromBits(long value) {
+        public static ByteSize FromBits(long value)
+        {
             return new ByteSize(value);
         }
 
-        public static ByteSize FromBytes(double value) {
+        public static ByteSize FromBytes(double value)
+        {
             return new ByteSize(value);
         }
 
@@ -144,15 +158,18 @@ namespace Optimizer {
         /// largest prefix such that the corresponding value is greater than or
         /// equal to one.
         /// </summary>
-        public override string ToString() {
+        public override string ToString()
+        {
             return this.ToString("0.##", CultureInfo.CurrentCulture);
         }
 
-        public string ToString(string format) {
+        public string ToString(string format)
+        {
             return this.ToString(format, CultureInfo.CurrentCulture);
         }
 
-        public string ToString(string format, IFormatProvider provider, bool useBinaryByte = false) {
+        public string ToString(string format, IFormatProvider provider, bool useBinaryByte = false)
+        {
             if (!format.Contains("#") && !format.Contains("0"))
                 format = "0.## " + format;
 
@@ -192,15 +209,18 @@ namespace Optimizer {
             if (format.IndexOf(ByteSize.BitSymbol) != -1)
                 return output(this.Bits);
 
-            if (useBinaryByte) {
+            if (useBinaryByte)
+            {
                 return string.Format("{0} {1}", this.LargestWholeNumberBinaryValue.ToString(format, provider), this.LargestWholeNumberBinarySymbol);
             }
-            else {
+            else
+            {
                 return string.Format("{0} {1}", this.LargestWholeNumberDecimalValue.ToString(format, provider), this.LargestWholeNumberDecimalSymbol);
             }
         }
 
-        public override bool Equals(object value) {
+        public override bool Equals(object value)
+        {
             if (value == null)
                 return false;
 
@@ -213,86 +233,107 @@ namespace Optimizer {
             return Equals(other);
         }
 
-        public bool Equals(ByteSize value) {
+        public bool Equals(ByteSize value)
+        {
             return this.Bits == value.Bits;
         }
 
-        public override int GetHashCode() {
+        public override int GetHashCode()
+        {
             return this.Bits.GetHashCode();
         }
 
-        public int CompareTo(ByteSize other) {
+        public int CompareTo(ByteSize other)
+        {
             return this.Bits.CompareTo(other.Bits);
         }
 
-        public ByteSize Add(ByteSize bs) {
+        public ByteSize Add(ByteSize bs)
+        {
             return new ByteSize(this.Bytes + bs.Bytes);
         }
 
-        public ByteSize AddBits(long value) {
+        public ByteSize AddBits(long value)
+        {
             return this + FromBits(value);
         }
 
-        public ByteSize AddBytes(double value) {
+        public ByteSize AddBytes(double value)
+        {
             return this + ByteSize.FromBytes(value);
         }
 
-        public ByteSize Subtract(ByteSize bs) {
+        public ByteSize Subtract(ByteSize bs)
+        {
             return new ByteSize(this.Bytes - bs.Bytes);
         }
 
-        public static ByteSize operator +(ByteSize b1, ByteSize b2) {
+        public static ByteSize operator +(ByteSize b1, ByteSize b2)
+        {
             return new ByteSize(b1.Bytes + b2.Bytes);
         }
 
-        public static ByteSize operator ++(ByteSize b) {
+        public static ByteSize operator ++(ByteSize b)
+        {
             return new ByteSize(b.Bytes + 1);
         }
 
-        public static ByteSize operator -(ByteSize b) {
+        public static ByteSize operator -(ByteSize b)
+        {
             return new ByteSize(-b.Bytes);
         }
 
-        public static ByteSize operator -(ByteSize b1, ByteSize b2) {
+        public static ByteSize operator -(ByteSize b1, ByteSize b2)
+        {
             return new ByteSize(b1.Bytes - b2.Bytes);
         }
 
-        public static ByteSize operator --(ByteSize b) {
+        public static ByteSize operator --(ByteSize b)
+        {
             return new ByteSize(b.Bytes - 1);
         }
 
-        public static bool operator ==(ByteSize b1, ByteSize b2) {
+        public static bool operator ==(ByteSize b1, ByteSize b2)
+        {
             return b1.Bits == b2.Bits;
         }
 
-        public static bool operator !=(ByteSize b1, ByteSize b2) {
+        public static bool operator !=(ByteSize b1, ByteSize b2)
+        {
             return b1.Bits != b2.Bits;
         }
 
-        public static bool operator <(ByteSize b1, ByteSize b2) {
+        public static bool operator <(ByteSize b1, ByteSize b2)
+        {
             return b1.Bits < b2.Bits;
         }
 
-        public static bool operator <=(ByteSize b1, ByteSize b2) {
+        public static bool operator <=(ByteSize b1, ByteSize b2)
+        {
             return b1.Bits <= b2.Bits;
         }
 
-        public static bool operator >(ByteSize b1, ByteSize b2) {
+        public static bool operator >(ByteSize b1, ByteSize b2)
+        {
             return b1.Bits > b2.Bits;
         }
 
-        public static bool operator >=(ByteSize b1, ByteSize b2) {
+        public static bool operator >=(ByteSize b1, ByteSize b2)
+        {
             return b1.Bits >= b2.Bits;
         }
 
-        public static ByteSize Parse(string s) {
+        public static ByteSize Parse(string s)
+        {
             return Parse(s, NumberFormatInfo.CurrentInfo);
         }
-        public static ByteSize Parse(string s, IFormatProvider formatProvider) {
+        public static ByteSize Parse(string s, IFormatProvider formatProvider)
+        {
             return Parse(s, NumberStyles.Float | NumberStyles.AllowThousands, formatProvider);
         }
 
-        public static ByteSize Parse(string s, NumberStyles numberStyles, IFormatProvider formatProvider) {
+        public static ByteSize Parse(string s, NumberStyles numberStyles, IFormatProvider formatProvider)
+        {
 
             // Arg checking
             if (string.IsNullOrWhiteSpace(s))
@@ -310,7 +351,8 @@ namespace Optimizer {
 
             // Pick first non-digit number
             for (num = 0; num < s.Length; num++)
-                if (!(char.IsDigit(s[num]) || s[num] == decimalSeparator || s[num] == groupSeparator)) {
+                if (!(char.IsDigit(s[num]) || s[num] == decimalSeparator || s[num] == groupSeparator))
+                {
                     found = true;
                     break;
                 }
@@ -330,7 +372,8 @@ namespace Optimizer {
                 throw new FormatException($"No number found in value '{s}'.");
 
             // Get the magnitude part
-            switch (sizePart) {
+            switch (sizePart)
+            {
                 case "b":
                     if (number % 1 != 0) // Can't have partial bits
                         throw new FormatException($"Can't have partial bits for value '{s}'.");
@@ -341,7 +384,8 @@ namespace Optimizer {
                     return FromBytes(number);
             }
 
-            switch (sizePart.ToLowerInvariant()) {
+            switch (sizePart.ToLowerInvariant())
+            {
                 // Binary
                 case "kib":
                     return FromKibiBytes(number);
@@ -379,23 +423,29 @@ namespace Optimizer {
             }
         }
 
-        public static bool TryParse(string s, out ByteSize result) {
-            try {
+        public static bool TryParse(string s, out ByteSize result)
+        {
+            try
+            {
                 result = Parse(s);
                 return true;
             }
-            catch {
+            catch
+            {
                 result = new ByteSize();
                 return false;
             }
         }
 
-        public static bool TryParse(string s, NumberStyles numberStyles, IFormatProvider formatProvider, out ByteSize result) {
-            try {
+        public static bool TryParse(string s, NumberStyles numberStyles, IFormatProvider formatProvider, out ByteSize result)
+        {
+            try
+            {
                 result = Parse(s, numberStyles, formatProvider);
                 return true;
             }
-            catch {
+            catch
+            {
                 result = new ByteSize();
                 return false;
             }

+ 24 - 12
Optimizer/ByteSize/DecimalByteSize.cs

@@ -1,5 +1,7 @@
-namespace Optimizer {
-    public partial struct ByteSize {
+namespace Optimizer
+{
+    public partial struct ByteSize
+    {
         public const long BytesInKiloByte = 1_000;
         public const long BytesInMegaByte = 1_000_000;
         public const long BytesInGigaByte = 1_000_000_000;
@@ -18,43 +20,53 @@
         public double TeraBytes => Bytes / BytesInTeraByte;
         public double PetaBytes => Bytes / BytesInPetaByte;
 
-        public static ByteSize FromKiloBytes(double value) {
+        public static ByteSize FromKiloBytes(double value)
+        {
             return new ByteSize(value * BytesInKiloByte);
         }
 
-        public static ByteSize FromMegaBytes(double value) {
+        public static ByteSize FromMegaBytes(double value)
+        {
             return new ByteSize(value * BytesInMegaByte);
         }
 
-        public static ByteSize FromGigaBytes(double value) {
+        public static ByteSize FromGigaBytes(double value)
+        {
             return new ByteSize(value * BytesInGigaByte);
         }
 
-        public static ByteSize FromTeraBytes(double value) {
+        public static ByteSize FromTeraBytes(double value)
+        {
             return new ByteSize(value * BytesInTeraByte);
         }
 
-        public static ByteSize FromPetaBytes(double value) {
+        public static ByteSize FromPetaBytes(double value)
+        {
             return new ByteSize(value * BytesInPetaByte);
         }
 
-        public ByteSize AddKiloBytes(double value) {
+        public ByteSize AddKiloBytes(double value)
+        {
             return this + ByteSize.FromKiloBytes(value);
         }
 
-        public ByteSize AddMegaBytes(double value) {
+        public ByteSize AddMegaBytes(double value)
+        {
             return this + ByteSize.FromMegaBytes(value);
         }
 
-        public ByteSize AddGigaBytes(double value) {
+        public ByteSize AddGigaBytes(double value)
+        {
             return this + ByteSize.FromGigaBytes(value);
         }
 
-        public ByteSize AddTeraBytes(double value) {
+        public ByteSize AddTeraBytes(double value)
+        {
             return this + ByteSize.FromTeraBytes(value);
         }
 
-        public ByteSize AddPetaBytes(double value) {
+        public ByteSize AddPetaBytes(double value)
+        {
             return this + ByteSize.FromPetaBytes(value);
         }
     }

+ 122 - 61
Optimizer/CleanHelper.cs

@@ -4,8 +4,10 @@ using System.IO;
 using System.Linq;
 using System.Runtime.InteropServices;
 
-namespace Optimizer {
-    internal static class CleanHelper {
+namespace Optimizer
+{
+    internal static class CleanHelper
+    {
         [DllImport("Shell32.dll")]
         static extern int SHEmptyRecycleBin(IntPtr hwnd, string pszRootPath, RecycleFlag dwFlags);
 
@@ -118,24 +120,31 @@ namespace Optimizer {
 
         internal static ByteSize PreviewSizeToBeFreed = new ByteSize(0);
 
-        internal static void PreviewFolder(string path) {
-            try {
-                if (File.Exists(path)) {
+        internal static void PreviewFolder(string path)
+        {
+            try
+            {
+                if (File.Exists(path))
+                {
                     PreviewCleanList.Add(path);
                     return;
                 }
 
                 DirectoryInfo di = new DirectoryInfo(path);
 
-                foreach (FileInfo file in di.GetFiles("*", SearchOption.AllDirectories)) {
-                    try {
+                foreach (FileInfo file in di.GetFiles("*", SearchOption.AllDirectories))
+                {
+                    try
+                    {
                         PreviewCleanList.Add(file.FullName);
                     }
                     catch { }
                 }
 
-                foreach (DirectoryInfo dir in di.GetDirectories("*", SearchOption.AllDirectories)) {
-                    try {
+                foreach (DirectoryInfo dir in di.GetDirectories("*", SearchOption.AllDirectories))
+                {
+                    try
+                    {
                         PreviewCleanList.Add(dir.FullName);
                     }
                     catch { }
@@ -144,9 +153,12 @@ namespace Optimizer {
             catch { }
         }
 
-        internal static void Clean() {
-            foreach (string x in PreviewCleanList) {
-                try {
+        internal static void Clean()
+        {
+            foreach (string x in PreviewCleanList)
+            {
+                try
+                {
                     if (Directory.Exists(x)) Directory.Delete(x);
                     if (File.Exists(x)) File.Delete(x);
                 }
@@ -154,21 +166,25 @@ namespace Optimizer {
             }
         }
 
-        internal static void EmptyRecycleBin() {
+        internal static void EmptyRecycleBin()
+        {
             SHEmptyRecycleBin(IntPtr.Zero, null, RecycleFlag.SHERB_NOSOUND | RecycleFlag.SHERB_NOCONFIRMATION);
         }
 
-        internal static void PreviewTemp() {
+        internal static void PreviewTemp()
+        {
             PreviewFolder(TempFolder);
             PreviewSizeToBeFreed += CalculateSize(TempFolder);
         }
 
-        internal static void PreviewMinidumps() {
+        internal static void PreviewMinidumps()
+        {
             PreviewFolder(Path.Combine(OSDriveWindows, "Minidump"));
             PreviewSizeToBeFreed += CalculateSize(Path.Combine(OSDriveWindows, "Minidump"));
         }
 
-        internal static void PreviewErrorReports() {
+        internal static void PreviewErrorReports()
+        {
             PreviewFolder(Path.Combine(ProfileAppDataLocal, "Microsoft\\Windows\\WER\\ReportArchive"));
             PreviewFolder(Path.Combine(ProfileAppDataLocal, "Microsoft\\Windows\\WER\\ReportQueue"));
             PreviewFolder(Path.Combine(ProfileAppDataLocal, "Microsoft\\Windows\\WER\\Temp"));
@@ -188,16 +204,20 @@ namespace Optimizer {
             PreviewSizeToBeFreed += CalculateSize(Path.Combine(ProgramData, "Microsoft\\Windows\\WER\\ERC"));
         }
 
-        internal static ByteSize CalculateSize(string fileOrFolder) {
+        internal static ByteSize CalculateSize(string fileOrFolder)
+        {
             ByteSize totalSize = new ByteSize(0);
             bool isFolder = Directory.Exists(fileOrFolder);
 
-            try {
-                if (isFolder) {
+            try
+            {
+                if (isFolder)
+                {
                     DirectoryInfo dir = new DirectoryInfo(fileOrFolder);
                     totalSize += totalSize.AddBytes(dir.EnumerateFiles("*", SearchOption.AllDirectories).Sum(file => file.Length));
                 }
-                else {
+                else
+                {
                     FileInfo file = new FileInfo(fileOrFolder);
                     totalSize = totalSize.AddBytes(file.Length);
                 }
@@ -207,56 +227,73 @@ namespace Optimizer {
             return totalSize;
         }
 
-        internal static void PreviewEdgeClean(bool cache, bool cookies, bool seachHistory, bool session) {
-            if (cache) {
-                foreach (string x in edgeCache) {
+        internal static void PreviewEdgeClean(bool cache, bool cookies, bool seachHistory, bool session)
+        {
+            if (cache)
+            {
+                foreach (string x in edgeCache)
+                {
                     PreviewFolder(x);
                     PreviewSizeToBeFreed += CalculateSize(x);
                 }
             }
 
-            if (cookies) {
-                foreach (string x in edgeCookies) {
+            if (cookies)
+            {
+                foreach (string x in edgeCookies)
+                {
                     PreviewFolder(x);
                     PreviewSizeToBeFreed += CalculateSize(x);
                 }
             }
 
-            if (seachHistory) {
+            if (seachHistory)
+            {
                 PreviewFolder(edgeHistory);
                 PreviewSizeToBeFreed += CalculateSize(edgeHistory);
             }
 
-            if (session) {
-                foreach (string x in edgeSession) {
+            if (session)
+            {
+                foreach (string x in edgeSession)
+                {
                     PreviewFolder(x);
                     PreviewSizeToBeFreed += CalculateSize(x);
                 }
             }
         }
 
-        internal static void PreviewInternetExplorerCache() {
-            foreach (string x in ieCache) {
+        internal static void PreviewInternetExplorerCache()
+        {
+            foreach (string x in ieCache)
+            {
                 PreviewFolder(x);
                 PreviewSizeToBeFreed += CalculateSize(x);
             }
         }
 
-        internal static void PreviewFireFoxClean(bool cache, bool cookies, bool searchHistory) {
-            if (Directory.Exists(firefoxRoaming)) {
-                foreach (string x in Directory.EnumerateDirectories(firefoxRoaming)) {
-                    if (x.ToLowerInvariant().Contains("release")) {
-                        if (cookies) {
+        internal static void PreviewFireFoxClean(bool cache, bool cookies, bool searchHistory)
+        {
+            if (Directory.Exists(firefoxRoaming))
+            {
+                foreach (string x in Directory.EnumerateDirectories(firefoxRoaming))
+                {
+                    if (x.ToLowerInvariant().Contains("release"))
+                    {
+                        if (cookies)
+                        {
                             PreviewFolder(Path.Combine(x, "cookies.sqlite"));
                             PreviewSizeToBeFreed += CalculateSize(Path.Combine(x, "cookies.sqlite"));
                         }
 
-                        if (searchHistory) {
+                        if (searchHistory)
+                        {
                             PreviewFolder(Path.Combine(x, "places.sqlite"));
                             PreviewSizeToBeFreed += CalculateSize(Path.Combine(x, "places.sqlite"));
                         }
 
-                        if (cache) {
+                        if (cache)
+                        {
                             PreviewFolder(Path.Combine(x, "shader-cache"));
                             PreviewSizeToBeFreed += CalculateSize(Path.Combine(x, "shader-cache"));
                         }
@@ -264,10 +301,14 @@ namespace Optimizer {
                 }
             }
 
-            if (cache) {
-                if (Directory.Exists(firefoxLocal)) {
-                    foreach (string x in Directory.EnumerateDirectories(firefoxLocal)) {
-                        if (x.ToLowerInvariant().Contains("release")) {
+            if (cache)
+            {
+                if (Directory.Exists(firefoxLocal))
+                {
+                    foreach (string x in Directory.EnumerateDirectories(firefoxLocal))
+                    {
+                        if (x.ToLowerInvariant().Contains("release"))
+                        {
                             PreviewFolder(Path.Combine(x, "cache2"));
                             PreviewSizeToBeFreed += CalculateSize(Path.Combine(x, "cache2"));
                         }
@@ -276,71 +317,91 @@ namespace Optimizer {
             }
         }
 
-        internal static void PreviewBraveClean(bool cache, bool cookies, bool searchHistory, bool session, bool passwords) {
-            if (cache) {
-                foreach (string x in braveUserDataCacheDirs) {
+        internal static void PreviewBraveClean(bool cache, bool cookies, bool searchHistory, bool session, bool passwords)
+        {
+            if (cache)
+            {
+                foreach (string x in braveUserDataCacheDirs)
+                {
                     PreviewFolder(Path.Combine(braveFolder, x));
                     PreviewSizeToBeFreed += CalculateSize(Path.Combine(braveFolder, x));
                 }
             }
 
-            if (session) {
-                foreach (string x in braveSessionDirs) {
+            if (session)
+            {
+                foreach (string x in braveSessionDirs)
+                {
                     PreviewFolder(x);
                     PreviewSizeToBeFreed += CalculateSize(x);
                 }
             }
 
-            if (cookies) {
-                foreach (string x in braveCookiesDirs) {
+            if (cookies)
+            {
+                foreach (string x in braveCookiesDirs)
+                {
                     PreviewFolder(x);
                     PreviewSizeToBeFreed += CalculateSize(x);
                 }
             }
 
-            if (searchHistory) {
-                foreach (string x in braveHistoryDirs) {
+            if (searchHistory)
+            {
+                foreach (string x in braveHistoryDirs)
+                {
                     PreviewFolder(x);
                     PreviewSizeToBeFreed += CalculateSize(x);
                 }
             }
 
-            if (passwords) {
+            if (passwords)
+            {
                 PreviewFolder(bravePasswordsDir);
                 PreviewSizeToBeFreed += CalculateSize(bravePasswordsDir);
             }
         }
 
-        internal static void PreviewChromeClean(bool cache, bool cookies, bool searchHistory, bool session, bool passwords) {
-            if (cache) {
-                foreach (string x in chromeUserDataCacheDirs) {
+        internal static void PreviewChromeClean(bool cache, bool cookies, bool searchHistory, bool session, bool passwords)
+        {
+            if (cache)
+            {
+                foreach (string x in chromeUserDataCacheDirs)
+                {
                     PreviewFolder(Path.Combine(chromeFolder, x));
                     PreviewSizeToBeFreed += CalculateSize(Path.Combine(chromeFolder, x));
                 }
             }
 
-            if (session) {
-                foreach (string x in chromeSessionDirs) {
+            if (session)
+            {
+                foreach (string x in chromeSessionDirs)
+                {
                     PreviewFolder(x);
                     PreviewSizeToBeFreed += CalculateSize(x);
                 }
             }
 
-            if (cookies) {
-                foreach (string x in chromeCookiesDirs) {
+            if (cookies)
+            {
+                foreach (string x in chromeCookiesDirs)
+                {
                     PreviewFolder(x);
                     PreviewSizeToBeFreed += CalculateSize(x);
                 }
             }
 
-            if (searchHistory) {
-                foreach (string x in chromeHistoryDirs) {
+            if (searchHistory)
+            {
+                foreach (string x in chromeHistoryDirs)
+                {
                     PreviewFolder(x);
                     PreviewSizeToBeFreed += CalculateSize(x);
                 }
             }
 
-            if (passwords) {
+            if (passwords)
+            {
                 PreviewFolder(chromePasswordsDir);
                 PreviewSizeToBeFreed += CalculateSize(chromePasswordsDir);
             }

+ 82 - 41
Optimizer/ColorHelper.cs

@@ -2,9 +2,12 @@
 using System.Drawing;
 using System.Text;
 
-namespace Optimizer {
-    public static class ColorHelper {
-        public static void HSVFromRGB(Color color, out double hue, out double saturation, out double value) {
+namespace Optimizer
+{
+    public static class ColorHelper
+    {
+        public static void HSVFromRGB(Color color, out double hue, out double saturation, out double value)
+        {
             double min, max, delta, r, g, b;
             r = (double)color.R / 255d;
             g = (double)color.G / 255d;
@@ -16,7 +19,8 @@ namespace Optimizer {
             delta = max - min;
             if (max != 0)
                 saturation = delta / max;
-            else {
+            else
+            {
                 saturation = 0;
                 hue = -1;
                 return;
@@ -32,12 +36,15 @@ namespace Optimizer {
                 hue += 360;
         }
 
-        public static Color ColorFromHSV(double hue, double saturation, double value) {
-            try {
+        public static Color ColorFromHSV(double hue, double saturation, double value)
+        {
+            try
+            {
                 int i;
                 double f, p, q, t, r, g, b;
 
-                if (saturation == 0) {
+                if (saturation == 0)
+                {
                     r = g = b = value;
                     return Color.FromArgb((int)(255 * r), (int)(255 * g), (int)(255 * b));
                 }
@@ -47,7 +54,8 @@ namespace Optimizer {
                 p = value * (1 - saturation);
                 q = value * (1 - saturation * f);
                 t = value * (1 - saturation * (1 - f));
-                switch (i) {
+                switch (i)
+                {
                     case 0:
                         r = value;
                         g = t;
@@ -81,12 +89,14 @@ namespace Optimizer {
                 }
                 return Color.FromArgb((int)(255 * r), (int)(255 * g), (int)(255 * b));
             }
-            catch {
+            catch
+            {
             }
             return Color.Empty;
         }
 
-        public static Color ChangeColorBrightness(Color color, double darkenAmount) {
+        public static Color ChangeColorBrightness(Color color, double darkenAmount)
+        {
             HslColor hslColor = new HslColor(color);
             hslColor.L *= darkenAmount;
             return hslColor;
@@ -94,7 +104,8 @@ namespace Optimizer {
     }
 
     [Serializable]
-    public struct HslColor {
+    public struct HslColor
+    {
         #region Constants
 
         public static readonly HslColor Empty;
@@ -113,8 +124,10 @@ namespace Optimizer {
 
         #region Static Constructors
 
-        static HslColor() {
-            Empty = new HslColor {
+        static HslColor()
+        {
+            Empty = new HslColor
+            {
                 IsEmpty = true
             };
         }
@@ -126,7 +139,8 @@ namespace Optimizer {
         public HslColor(double h, double s, double l)
             : this(255, h, s, l) { }
 
-        public HslColor(int a, double h, double s, double l) {
+        public HslColor(int a, double h, double s, double l)
+        {
             this.alpha = a;
             this.hue = Math.Min(359, h);
             this.saturation = Math.Min(1, s);
@@ -134,7 +148,8 @@ namespace Optimizer {
             isEmpty = false;
         }
 
-        public HslColor(Color color) {
+        public HslColor(Color color)
+        {
             this.alpha = color.A;
             this.hue = color.GetHue();
             this.saturation = color.GetSaturation();
@@ -146,19 +161,23 @@ namespace Optimizer {
 
         #region Operators
 
-        public static bool operator ==(HslColor left, HslColor right) {
+        public static bool operator ==(HslColor left, HslColor right)
+        {
             return (((left.A == right.A) && (left.H == right.H)) && ((left.S == right.S) && (left.L == right.L)));
         }
 
-        public static bool operator !=(HslColor left, HslColor right) {
+        public static bool operator !=(HslColor left, HslColor right)
+        {
             return !(left == right);
         }
 
-        public static implicit operator HslColor(Color color) {
+        public static implicit operator HslColor(Color color)
+        {
             return new HslColor(color);
         }
 
-        public static implicit operator Color(HslColor color) {
+        public static implicit operator Color(HslColor color)
+        {
             return color.ToRgbColor();
         }
 
@@ -166,20 +185,25 @@ namespace Optimizer {
 
         #region Overridden Methods
 
-        public override bool Equals(object obj) {
-            if (obj is HslColor color) {
-                if (((this.A == color.A) && (this.H == color.H)) && ((this.S == color.S) && (this.L == color.L))) {
+        public override bool Equals(object obj)
+        {
+            if (obj is HslColor color)
+            {
+                if (((this.A == color.A) && (this.H == color.H)) && ((this.S == color.S) && (this.L == color.L)))
+                {
                     return true;
                 }
             }
             return false;
         }
 
-        public override int GetHashCode() {
+        public override int GetHashCode()
+        {
             return (((this.alpha.GetHashCode() ^ this.hue.GetHashCode()) ^ this.saturation.GetHashCode()) ^ this.luminance.GetHashCode());
         }
 
-        public override string ToString() {
+        public override string ToString()
+        {
             StringBuilder builder;
 
             builder = new StringBuilder();
@@ -200,44 +224,54 @@ namespace Optimizer {
 
         #region Public Members
 
-        public double H {
+        public double H
+        {
             get { return this.hue; }
-            set {
+            set
+            {
                 this.hue = value;
                 this.hue = (this.hue > 359.0) ? 0 : ((this.hue < 0.0) ? 359 : this.hue);
             }
         }
 
-        public double S {
+        public double S
+        {
             get { return this.saturation; }
             set { this.saturation = Math.Min(1, Math.Max(0, value)); }
         }
 
-        public double L {
+        public double L
+        {
             get { return this.luminance; }
             set { this.luminance = Math.Min(1, Math.Max(0, value)); }
         }
 
-        public int A {
+        public int A
+        {
             get { return this.alpha; }
             set { this.alpha = Math.Min(0, Math.Max(255, value)); }
         }
 
-        public bool IsEmpty {
+        public bool IsEmpty
+        {
             get { return isEmpty; }
             internal set { isEmpty = value; }
         }
 
-        public Color ToRgbColor() {
+        public Color ToRgbColor()
+        {
             return this.ToRgbColor(this.A);
         }
 
-        public Color ToRgbColor(int alpha) {
+        public Color ToRgbColor(int alpha)
+        {
             double q;
-            if (this.L < 0.5) {
+            if (this.L < 0.5)
+            {
                 q = this.L * (1 + this.S);
             }
-            else {
+            else
+            {
                 q = this.L + this.S - (this.L * this.S);
             }
             double p = 2 * this.L - q;
@@ -253,24 +287,31 @@ namespace Optimizer {
                           0.0, 0.0, 0.0
                         };
 
-            for (int color = 0; color < colors.Length; color++) {
-                if (tc[color] < 0) {
+            for (int color = 0; color < colors.Length; color++)
+            {
+                if (tc[color] < 0)
+                {
                     tc[color] += 1;
                 }
-                if (tc[color] > 1) {
+                if (tc[color] > 1)
+                {
                     tc[color] -= 1;
                 }
 
-                if (tc[color] < (1d / 6d)) {
+                if (tc[color] < (1d / 6d))
+                {
                     colors[color] = p + ((q - p) * 6 * tc[color]);
                 }
-                else if (tc[color] >= (1d / 6d) && tc[color] < (1d / 2d)) {
+                else if (tc[color] >= (1d / 6d) && tc[color] < (1d / 2d))
+                {
                     colors[color] = q;
                 }
-                else if (tc[color] >= (1d / 2d) && tc[color] < (2d / 3d)) {
+                else if (tc[color] >= (1d / 2d) && tc[color] < (2d / 3d))
+                {
                     colors[color] = p + ((q - p) * 6 * (2d / 3d - tc[color]));
                 }
-                else {
+                else
+                {
                     colors[color] = p;
                 }
 

+ 5 - 2
Optimizer/Constants.cs

@@ -1,5 +1,7 @@
-namespace Optimizer {
-    internal static class Constants {
+namespace Optimizer
+{
+    internal static class Constants
+    {
         internal static string INTERNAL_DNS = "1.1.1.1";
         internal static string THEME_FLAG = "themeable";
         internal static int CONTRAST_THRESHOLD = 149;
@@ -38,6 +40,7 @@
         internal static string NEPALI = "नेपाली";
         internal static string BULGARIAN = "български";
         internal static string VIETNAMESE = "Tiếng Việt";
+        internal static string URDU = "لشکری ‍زبان";
 
         internal static string CloudflareDNS = "Cloudflare";
         internal static string OpenDNS = "OpenDNS";

+ 6 - 3
Optimizer/Controls/AppCard.cs

@@ -1,8 +1,11 @@
 using System.Windows.Forms;
 
-namespace Optimizer {
-    public sealed partial class AppCard : UserControl {
-        public AppCard() {
+namespace Optimizer
+{
+    public sealed partial class AppCard : UserControl
+    {
+        public AppCard()
+        {
             InitializeComponent();
         }
     }

+ 18 - 9
Optimizer/Controls/ColorOverrider.cs

@@ -7,8 +7,10 @@ using System.Linq;
 using System.Reflection;
 
 
-namespace Optimizer {
-    public sealed class ColorOverrider {
+namespace Optimizer
+{
+    public sealed class ColorOverrider
+    {
         public static event Action SystemColorsChanging;
         public static event Action SystemColorsChanged;
 
@@ -19,7 +21,8 @@ namespace Optimizer {
         private readonly FieldInfo _colorTableField;
         private readonly PropertyInfo _threadDataProperty;
 
-        public ColorOverrider() {
+        public ColorOverrider()
+        {
             // force init color table
             byte unused = SystemColors.Window.R;
 
@@ -53,7 +56,8 @@ namespace Optimizer {
                 ?.GetValue(null);
         }
 
-        private void userPreferenceChanging(object sender, UserPreferenceChangingEventArgs e) {
+        private void userPreferenceChanging(object sender, UserPreferenceChangingEventArgs e)
+        {
             if (e.Category != UserPreferenceCategory.Color)
                 return;
 
@@ -61,7 +65,8 @@ namespace Optimizer {
             fireColorsChangedEvents();
         }
 
-        private static void fireColorsChangedEvents() {
+        private static void fireColorsChangedEvents()
+        {
             SystemColorsChanging?.Invoke();
             SystemColorsChanged?.Invoke();
         }
@@ -69,7 +74,8 @@ namespace Optimizer {
         private int[] readColorTable() =>
             (int[])_colorTableField.GetValue(null);
 
-        public void SetColor(KnownColor knownColor, int argb) {
+        public void SetColor(KnownColor knownColor, int argb)
+        {
             setColor(knownColor, argb);
 
             if (SystemBrushesKey != null)
@@ -87,7 +93,8 @@ namespace Optimizer {
         public int GetOriginalColor(KnownColor knownColor) =>
             OriginalColors[(int)knownColor];
 
-        public int GetColor(KnownColor knownColor) {
+        public int GetColor(KnownColor knownColor)
+        {
             if (!KnownColors.Contains(knownColor))
                 throw new ArgumentException();
 
@@ -98,8 +105,10 @@ namespace Optimizer {
             KnownColors.Cast<int>()
                 .ToDictionary(i => i, i => _colorTable[i]);
 
-        public void Load(IReadOnlyDictionary<int, int> saved) {
-            foreach (var color in KnownColors) {
+        public void Load(IReadOnlyDictionary<int, int> saved)
+        {
+            foreach (var color in KnownColors)
+            {
                 int v;
                 var value = saved.TryGetValue((int)color, out v);
                 setColor(color, v);

+ 194 - 97
Optimizer/Controls/ColorPicker.cs

@@ -5,10 +5,12 @@ using System.Drawing;
 using System.Drawing.Drawing2D;
 using System.Windows.Forms;
 
-namespace Optimizer.Controls {
+namespace Optimizer.Controls
+{
     [DefaultProperty("Color")]
     [DefaultEvent("ColorChanged")]
-    public partial class ColorPicker : Control {
+    public partial class ColorPicker : Control
+    {
         #region Fields
 
         private Brush _brush;
@@ -27,7 +29,8 @@ namespace Optimizer.Controls {
 
         #region Constructors
 
-        public ColorPicker() {
+        public ColorPicker()
+        {
             this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.OptimizedDoubleBuffer | ControlStyles.Selectable | ControlStyles.StandardClick | ControlStyles.StandardDoubleClick, true);
             this.Color = Color.Black;
             this.ColorStep = 4;
@@ -62,13 +65,17 @@ namespace Optimizer.Controls {
         #endregion
 
         #region Overridden Methods
-        protected override void Dispose(bool disposing) {
-            if (disposing) {
-                if (_brush != null) {
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing)
+            {
+                if (_brush != null)
+                {
                     _brush.Dispose();
                 }
 
-                if (this.SelectionGlyph != null) {
+                if (this.SelectionGlyph != null)
+                {
                     this.SelectionGlyph.Dispose();
                 }
             }
@@ -76,26 +83,31 @@ namespace Optimizer.Controls {
             base.Dispose(disposing);
         }
 
-        protected override bool IsInputKey(Keys keyData) {
+        protected override bool IsInputKey(Keys keyData)
+        {
             bool result;
 
-            if ((keyData & Keys.Left) == Keys.Left || (keyData & Keys.Up) == Keys.Up || (keyData & Keys.Down) == Keys.Down || (keyData & Keys.Right) == Keys.Right || (keyData & Keys.PageUp) == Keys.PageUp || (keyData & Keys.PageDown) == Keys.PageDown) {
+            if ((keyData & Keys.Left) == Keys.Left || (keyData & Keys.Up) == Keys.Up || (keyData & Keys.Down) == Keys.Down || (keyData & Keys.Right) == Keys.Right || (keyData & Keys.PageUp) == Keys.PageUp || (keyData & Keys.PageDown) == Keys.PageDown)
+            {
                 result = true;
             }
-            else {
+            else
+            {
                 result = base.IsInputKey(keyData);
             }
 
             return result;
         }
 
-        protected override void OnGotFocus(EventArgs e) {
+        protected override void OnGotFocus(EventArgs e)
+        {
             base.OnGotFocus(e);
 
             this.Invalidate();
         }
 
-        protected override void OnKeyDown(KeyEventArgs e) {
+        protected override void OnKeyDown(KeyEventArgs e)
+        {
             HslColor color;
             double hue;
             int step;
@@ -105,7 +117,8 @@ namespace Optimizer.Controls {
 
             step = e.Shift ? this.LargeChange : this.SmallChange;
 
-            switch (e.KeyCode) {
+            switch (e.KeyCode)
+            {
                 case Keys.Right:
                 case Keys.Up:
                     hue += step;
@@ -122,14 +135,17 @@ namespace Optimizer.Controls {
                     break;
             }
 
-            if (hue >= 360) {
+            if (hue >= 360)
+            {
                 hue = 0;
             }
-            if (hue < 0) {
+            if (hue < 0)
+            {
                 hue = 359;
             }
 
-            if (hue != color.H) {
+            if (hue != color.H)
+            {
                 color.H = hue;
 
                 this.LockUpdates = true;
@@ -143,71 +159,86 @@ namespace Optimizer.Controls {
             base.OnKeyDown(e);
         }
 
-        protected override void OnLostFocus(EventArgs e) {
+        protected override void OnLostFocus(EventArgs e)
+        {
             base.OnLostFocus(e);
 
             this.Invalidate();
         }
 
-        protected override void OnMouseDown(MouseEventArgs e) {
+        protected override void OnMouseDown(MouseEventArgs e)
+        {
             base.OnMouseDown(e);
 
-            if (!this.Focused && this.TabStop) {
+            if (!this.Focused && this.TabStop)
+            {
                 this.Focus();
             }
 
-            if (e.Button == MouseButtons.Left && this.IsPointInWheel(e.Location)) {
+            if (e.Button == MouseButtons.Left && this.IsPointInWheel(e.Location))
+            {
                 _dragStartedWithinWheel = true;
                 this.SetColor(e.Location);
             }
         }
 
-        protected override void OnMouseMove(MouseEventArgs e) {
+        protected override void OnMouseMove(MouseEventArgs e)
+        {
             base.OnMouseMove(e);
 
-            if (e.Button == MouseButtons.Left && _dragStartedWithinWheel) {
+            if (e.Button == MouseButtons.Left && _dragStartedWithinWheel)
+            {
                 this.SetColor(e.Location);
             }
         }
 
-        protected override void OnMouseUp(MouseEventArgs e) {
+        protected override void OnMouseUp(MouseEventArgs e)
+        {
             base.OnMouseUp(e);
 
             _dragStartedWithinWheel = false;
         }
 
-        protected override void OnPaddingChanged(EventArgs e) {
+        protected override void OnPaddingChanged(EventArgs e)
+        {
             base.OnPaddingChanged(e);
 
             this.RefreshWheel();
         }
 
-        protected override void OnPaint(PaintEventArgs e) {
+        protected override void OnPaint(PaintEventArgs e)
+        {
             base.OnPaint(e);
 
-            if (this.AllowPainting) {
+            if (this.AllowPainting)
+            {
                 base.OnPaintBackground(e);
 
-                if (this.BackgroundImage == null && this.Parent != null && (this.BackColor == this.Parent.BackColor || this.Parent.BackColor.A != 255)) {
+                if (this.BackgroundImage == null && this.Parent != null && (this.BackColor == this.Parent.BackColor || this.Parent.BackColor.A != 255))
+                {
                     ButtonRenderer.DrawParentBackground(e.Graphics, this.DisplayRectangle, this);
                 }
 
-                if (_brush != null) {
+                if (_brush != null)
+                {
                     e.Graphics.FillPie(_brush, this.ClientRectangle, 0, 360);
                 }
 
                 e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
-                using (Pen pen = new Pen(this.BackColor, 2)) {
+                using (Pen pen = new Pen(this.BackColor, 2))
+                {
                     e.Graphics.DrawEllipse(pen, new RectangleF(_centerPoint.X - _radius, _centerPoint.Y - _radius, _radius * 2, _radius * 2));
                 }
 
-                if (!this.Color.IsEmpty) {
+                if (!this.Color.IsEmpty)
+                {
                     this.PaintCurrentColor(e);
                 }
             }
         }
 
-        protected override void OnResize(EventArgs e) {
+        protected override void OnResize(EventArgs e)
+        {
             base.OnResize(e);
 
             this.RefreshWheel();
@@ -219,10 +250,13 @@ namespace Optimizer.Controls {
 
         [Category("Appearance")]
         [DefaultValue(typeof(Color), "Black")]
-        public virtual Color Color {
+        public virtual Color Color
+        {
             get { return _color; }
-            set {
-                if (this.Color != value) {
+            set
+            {
+                if (this.Color != value)
+                {
                     _color = value;
 
                     this.OnColorChanged(EventArgs.Empty);
@@ -232,14 +266,18 @@ namespace Optimizer.Controls {
 
         [Category("Appearance")]
         [DefaultValue(4)]
-        public virtual int ColorStep {
+        public virtual int ColorStep
+        {
             get { return _colorStep; }
-            set {
-                if (value < 1 || value > 359) {
+            set
+            {
+                if (value < 1 || value > 359)
+                {
                     throw new ArgumentOutOfRangeException("value", value, "Value must be between 1 and 359");
                 }
 
-                if (this.ColorStep != value) {
+                if (this.ColorStep != value)
+                {
                     _colorStep = value;
 
                     this.OnColorStepChanged(EventArgs.Empty);
@@ -251,10 +289,13 @@ namespace Optimizer.Controls {
         [DefaultValue(typeof(HslColor), "0, 0, 0")]
         [Browsable(false)]
         [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
-        public virtual HslColor HslColor {
+        public virtual HslColor HslColor
+        {
             get { return _hslColor; }
-            set {
-                if (this.HslColor != value) {
+            set
+            {
+                if (this.HslColor != value)
+                {
                     _hslColor = value;
 
                     this.OnHslColorChanged(EventArgs.Empty);
@@ -264,10 +305,13 @@ namespace Optimizer.Controls {
 
         [Category("Behavior")]
         [DefaultValue(5)]
-        public virtual int LargeChange {
+        public virtual int LargeChange
+        {
             get { return _largeChange; }
-            set {
-                if (this.LargeChange != value) {
+            set
+            {
+                if (this.LargeChange != value)
+                {
                     _largeChange = value;
 
                     this.OnLargeChangeChanged(EventArgs.Empty);
@@ -277,10 +321,13 @@ namespace Optimizer.Controls {
 
         [Category("Appearance")]
         [DefaultValue(10)]
-        public virtual int SelectionSize {
+        public virtual int SelectionSize
+        {
             get { return _selectionSize; }
-            set {
-                if (this.SelectionSize != value) {
+            set
+            {
+                if (this.SelectionSize != value)
+                {
                     _selectionSize = value;
 
                     this.OnSelectionSizeChanged(EventArgs.Empty);
@@ -290,10 +337,13 @@ namespace Optimizer.Controls {
 
         [Category("Behavior")]
         [DefaultValue(1)]
-        public virtual int SmallChange {
+        public virtual int SmallChange
+        {
             get { return _smallChange; }
-            set {
-                if (this.SmallChange != value) {
+            set
+            {
+                if (this.SmallChange != value)
+                {
                     _smallChange = value;
 
                     this.OnSmallChangeChanged(EventArgs.Empty);
@@ -305,7 +355,8 @@ namespace Optimizer.Controls {
 
         #region Protected Properties
 
-        protected virtual bool AllowPainting {
+        protected virtual bool AllowPainting
+        {
             get { return _updateCount == 0; }
         }
 
@@ -321,16 +372,20 @@ namespace Optimizer.Controls {
 
         #region Public Members
 
-        public virtual void BeginUpdate() {
+        public virtual void BeginUpdate()
+        {
             _updateCount++;
         }
 
-        public virtual void EndUpdate() {
-            if (_updateCount > 0) {
+        public virtual void EndUpdate()
+        {
+            if (_updateCount > 0)
+            {
                 _updateCount--;
             }
 
-            if (this.AllowPainting) {
+            if (this.AllowPainting)
+            {
                 this.Invalidate();
             }
         }
@@ -339,14 +394,16 @@ namespace Optimizer.Controls {
 
         #region Protected Members
 
-        protected virtual void CalculateWheel() {
+        protected virtual void CalculateWheel()
+        {
             List<PointF> points;
             List<Color> colors;
 
             points = new List<PointF>();
             colors = new List<Color>();
 
-            if (this.ClientSize.Width > 16 && this.ClientSize.Height > 16) {
+            if (this.ClientSize.Width > 16 && this.ClientSize.Height > 16)
+            {
                 int w;
                 int h;
 
@@ -356,7 +413,8 @@ namespace Optimizer.Controls {
                 _centerPoint = new PointF(w / 2.0F, h / 2.0F);
                 _radius = this.GetRadius(_centerPoint);
 
-                for (double angle = 0; angle < 360; angle += this.ColorStep) {
+                for (double angle = 0; angle < 360; angle += this.ColorStep)
+                {
                     double angleR;
                     PointF location;
 
@@ -371,36 +429,43 @@ namespace Optimizer.Controls {
             this.Points = points.ToArray();
             this.Colors = colors.ToArray();
         }
-        protected virtual Brush CreateGradientBrush() {
+        protected virtual Brush CreateGradientBrush()
+        {
             Brush result;
 
-            if (this.Points.Length != 0 && this.Points.Length == this.Colors.Length) {
-                result = new PathGradientBrush(this.Points, WrapMode.Clamp) {
+            if (this.Points.Length != 0 && this.Points.Length == this.Colors.Length)
+            {
+                result = new PathGradientBrush(this.Points, WrapMode.Clamp)
+                {
                     CenterPoint = _centerPoint,
                     CenterColor = Color.White,
                     SurroundColors = this.Colors
                 };
             }
-            else {
+            else
+            {
                 result = null;
             }
 
             return result;
         }
 
-        protected virtual Color GetContrastColor(Color c) {
+        protected virtual Color GetContrastColor(Color c)
+        {
             double brightness = c.R * 0.299 + c.G * 0.587 + c.B * 0.114;
             return brightness > 149 ? Color.Black : Color.White;
         }
 
-        protected virtual Image CreateSelectionGlyph() {
+        protected virtual Image CreateSelectionGlyph()
+        {
             Image image;
             int halfSize;
 
             halfSize = this.SelectionSize / 2;
             image = new Bitmap(this.SelectionSize + 1, this.SelectionSize + 1);
 
-            using (Graphics g = Graphics.FromImage(image)) {
+            using (Graphics g = Graphics.FromImage(image))
+            {
                 g.SmoothingMode = SmoothingMode.AntiAlias;
                 g.PixelOffsetMode = PixelOffsetMode.HighQuality;
                 g.InterpolationMode = InterpolationMode.High;
@@ -412,11 +477,13 @@ namespace Optimizer.Controls {
             return image;
         }
 
-        protected PointF GetColorLocation(Color color) {
+        protected PointF GetColorLocation(Color color)
+        {
             return this.GetColorLocation(new HslColor(color));
         }
 
-        protected virtual PointF GetColorLocation(HslColor color) {
+        protected virtual PointF GetColorLocation(HslColor color)
+        {
             double angle;
             double radius;
 
@@ -426,7 +493,8 @@ namespace Optimizer.Controls {
             return this.GetColorLocation(angle, radius);
         }
 
-        protected PointF GetColorLocation(double angleR, double radius) {
+        protected PointF GetColorLocation(double angleR, double radius)
+        {
             double x;
             double y;
 
@@ -436,11 +504,13 @@ namespace Optimizer.Controls {
             return new PointF((float)x, (float)y);
         }
 
-        protected float GetRadius(PointF centerPoint) {
+        protected float GetRadius(PointF centerPoint)
+        {
             return Math.Min(centerPoint.X, centerPoint.Y) - (Math.Max(this.Padding.Horizontal, this.Padding.Vertical) + (this.SelectionSize / 2));
         }
 
-        protected bool IsPointInWheel(Point point) {
+        protected bool IsPointInWheel(Point point)
+        {
             PointF normalized;
 
             normalized = new PointF(point.X - _centerPoint.X, point.Y - _centerPoint.Y);
@@ -448,10 +518,12 @@ namespace Optimizer.Controls {
             return (normalized.X * normalized.X + normalized.Y * normalized.Y) <= (_radius * _radius);
         }
 
-        protected virtual void OnColorChanged(EventArgs e) {
+        protected virtual void OnColorChanged(EventArgs e)
+        {
             EventHandler handler;
 
-            if (!this.LockUpdates) {
+            if (!this.LockUpdates)
+            {
                 this.HslColor = new HslColor(this.Color);
             }
 
@@ -460,52 +532,62 @@ namespace Optimizer.Controls {
 
             handler = this.ColorChanged;
 
-            if (handler != null) {
+            if (handler != null)
+            {
                 handler(this, e);
             }
         }
 
-        protected virtual void OnColorStepChanged(EventArgs e) {
+        protected virtual void OnColorStepChanged(EventArgs e)
+        {
             EventHandler handler;
 
             this.RefreshWheel();
 
             handler = this.ColorStepChanged;
 
-            if (handler != null) {
+            if (handler != null)
+            {
                 handler(this, e);
             }
         }
 
-        protected virtual void OnHslColorChanged(EventArgs e) {
+        protected virtual void OnHslColorChanged(EventArgs e)
+        {
             EventHandler handler;
 
-            if (!this.LockUpdates) {
+            if (!this.LockUpdates)
+            {
                 this.Color = this.HslColor.ToRgbColor();
             }
             this.Invalidate();
 
             handler = this.HslColorChanged;
 
-            if (handler != null) {
+            if (handler != null)
+            {
                 handler(this, e);
             }
         }
 
-        protected virtual void OnLargeChangeChanged(EventArgs e) {
+        protected virtual void OnLargeChangeChanged(EventArgs e)
+        {
             EventHandler handler;
 
             handler = this.LargeChangeChanged;
 
-            if (handler != null) {
+            if (handler != null)
+            {
                 handler(this, e);
             }
         }
 
-        protected virtual void OnSelectionSizeChanged(EventArgs e) {
+        protected virtual void OnSelectionSizeChanged(EventArgs e)
+        {
             EventHandler handler;
 
-            if (this.SelectionGlyph != null) {
+            if (this.SelectionGlyph != null)
+            {
                 this.SelectionGlyph.Dispose();
             }
 
@@ -514,51 +596,61 @@ namespace Optimizer.Controls {
 
             handler = this.SelectionSizeChanged;
 
-            if (handler != null) {
+            if (handler != null)
+            {
                 handler(this, e);
             }
         }
 
-        protected virtual void OnSmallChangeChanged(EventArgs e) {
+        protected virtual void OnSmallChangeChanged(EventArgs e)
+        {
             EventHandler handler;
 
             handler = this.SmallChangeChanged;
 
-            if (handler != null) {
+            if (handler != null)
+            {
                 handler(this, e);
             }
         }
 
-        protected void PaintColor(PaintEventArgs e, HslColor color) {
+        protected void PaintColor(PaintEventArgs e, HslColor color)
+        {
             this.PaintColor(e, color, false);
         }
 
-        protected virtual void PaintColor(PaintEventArgs e, HslColor color, bool includeFocus) {
+        protected virtual void PaintColor(PaintEventArgs e, HslColor color, bool includeFocus)
+        {
             PointF location;
 
             location = this.GetColorLocation(color);
 
-            if (!float.IsNaN(location.X) && !float.IsNaN(location.Y)) {
+            if (!float.IsNaN(location.X) && !float.IsNaN(location.Y))
+            {
                 int x;
                 int y;
 
                 x = (int)location.X - (this.SelectionSize / 2);
                 y = (int)location.Y - (this.SelectionSize / 2);
 
-                if (this.SelectionGlyph == null) {
+                if (this.SelectionGlyph == null)
+                {
                     e.Graphics.DrawRectangle(Pens.Black, x, y, this.SelectionSize, this.SelectionSize);
                 }
-                else {
+                else
+                {
                     e.Graphics.DrawImage(this.SelectionGlyph, x, y);
                 }
             }
         }
 
-        protected virtual void PaintCurrentColor(PaintEventArgs e) {
+        protected virtual void PaintCurrentColor(PaintEventArgs e)
+        {
             this.PaintColor(e, this.HslColor, true);
         }
 
-        protected virtual void SetColor(Point point) {
+        protected virtual void SetColor(Point point)
+        {
             double dx;
             double dy;
             double angle;
@@ -571,14 +663,17 @@ namespace Optimizer.Controls {
             distance = Math.Pow((Math.Pow(dx, 2) + (Math.Pow(dy, 2))), 0.5);
             saturation = distance / _radius;
 
-            if (distance < 6) {
+            if (distance < 6)
+            {
                 saturation = 0;
             }
 
-            if (point.X < _centerPoint.X) {
+            if (point.X < _centerPoint.X)
+            {
                 angle = 180 - angle;
             }
-            if (point.Y > _centerPoint.Y) {
+            if (point.Y > _centerPoint.Y)
+            {
                 angle = 360 - angle;
             }
 
@@ -592,8 +687,10 @@ namespace Optimizer.Controls {
 
         #region Private Members
 
-        private void RefreshWheel() {
-            if (_brush != null) {
+        private void RefreshWheel()
+        {
+            if (_brush != null)
+            {
                 _brush.Dispose();
             }
 

+ 22 - 11
Optimizer/Controls/ListViewColumnSorter.cs

@@ -2,48 +2,59 @@
 using System.Collections;
 using System.Windows.Forms;
 
-namespace Optimizer {
-    internal sealed class ListViewColumnSorter : IComparer {
+namespace Optimizer
+{
+    internal sealed class ListViewColumnSorter : IComparer
+    {
         int _columnToSort;
         SortOrder _sortOrder;
         CaseInsensitiveComparer _comparer;
 
-        public ListViewColumnSorter() {
+        public ListViewColumnSorter()
+        {
             _columnToSort = 0;
             _sortOrder = SortOrder.None;
             _comparer = new CaseInsensitiveComparer();
         }
 
-        public int CurrentColumn {
+        public int CurrentColumn
+        {
             get { return _columnToSort; }
             set { _columnToSort = value; }
         }
 
-        public SortOrder SortOrder {
+        public SortOrder SortOrder
+        {
             get { return _sortOrder; }
             set { _sortOrder = value; }
         }
 
-        public int Compare(object x, object y) {
+        public int Compare(object x, object y)
+        {
             int compareResult;
 
             ListViewItem listViewX = (ListViewItem)x;
             ListViewItem listViewY = (ListViewItem)y;
 
-            try {
+            try
+            {
                 compareResult = _comparer.Compare(Convert.ToInt64(listViewX.SubItems[_columnToSort].Text), Convert.ToInt64(listViewY.SubItems[_columnToSort].Text));
             }
-            catch {
+            catch
+            {
                 compareResult = _comparer.Compare(listViewX.SubItems[_columnToSort].Text, listViewY.SubItems[_columnToSort].Text);
             }
 
-            if (_sortOrder == SortOrder.Ascending) {
+            if (_sortOrder == SortOrder.Ascending)
+            {
                 return compareResult;
             }
-            else if (_sortOrder == SortOrder.Descending) {
+            else if (_sortOrder == SortOrder.Descending)
+            {
                 return -compareResult;
             }
-            else {
+            else
+            {
                 return 0;
             }
         }

+ 12 - 6
Optimizer/Controls/MoonCheck.cs

@@ -2,23 +2,29 @@
 using System.Drawing;
 using System.Windows.Forms;
 
-namespace Optimizer {
-    public sealed class MoonCheck : CheckBox {
-        public MoonCheck() {
+namespace Optimizer
+{
+    public sealed class MoonCheck : CheckBox
+    {
+        public MoonCheck()
+        {
             DoubleBuffered = true;
         }
 
-        protected override void OnCheckedChanged(EventArgs e) {
+        protected override void OnCheckedChanged(EventArgs e)
+        {
             base.OnCheckedChanged(e);
 
             // custom theming
-            if (this.Checked) {
+            if (this.Checked)
+            {
                 this.Tag = "themeable";
                 this.Font = new Font(this.Font, FontStyle.Underline);
 
                 this.ForeColor = OptionsHelper.ForegroundColor;
             }
-            else {
+            else
+            {
                 this.Tag = string.Empty;
                 this.ForeColor = Color.White;
                 this.Font = new Font(this.Font, FontStyle.Regular);

+ 14 - 7
Optimizer/Controls/MoonCheckList.cs

@@ -1,21 +1,28 @@
 using System.Drawing;
 using System.Windows.Forms;
 
-namespace Optimizer {
-    public sealed class MoonCheckList : CheckedListBox {
-        public MoonCheckList() {
+namespace Optimizer
+{
+    public sealed class MoonCheckList : CheckedListBox
+    {
+        public MoonCheckList()
+        {
             DoubleBuffered = true;
         }
 
-        protected override void OnDrawItem(DrawItemEventArgs e) {
+        protected override void OnDrawItem(DrawItemEventArgs e)
+        {
             Color foreColor = Color.White;
             Color accentColor = OptionsHelper.ForegroundColor;
 
-            if (this.Items.Count > 0) {
-                if (e.Index >= 0) {
+            if (this.Items.Count > 0)
+            {
+                if (e.Index >= 0)
+                {
                     foreColor = GetItemChecked(e.Index) ? accentColor : foreColor;
                 }
-                else {
+                else
+                {
                     foreColor = e.ForeColor;
                 }
             }

+ 14 - 7
Optimizer/Controls/MoonList.cs

@@ -1,9 +1,12 @@
 using System.Drawing;
 using System.Windows.Forms;
 
-namespace Optimizer {
-    public sealed class MoonList : ListBox {
-        public MoonList() {
+namespace Optimizer
+{
+    public sealed class MoonList : ListBox
+    {
+        public MoonList()
+        {
             this.DrawMode = DrawMode.OwnerDrawVariable;
             this.BorderStyle = BorderStyle.None;
 
@@ -11,7 +14,8 @@ namespace Optimizer {
             this.DrawItem += MoonListBox_DrawItem;
         }
 
-        private void MoonListBox_DrawItem(object sender, DrawItemEventArgs e) {
+        private void MoonListBox_DrawItem(object sender, DrawItemEventArgs e)
+        {
             if (e.Index < 0) return;
             if (this.Items.Count <= 0) return;
 
@@ -19,11 +23,13 @@ namespace Optimizer {
 
             Brush myBrush = new SolidBrush(Color.White);
 
-            if ((e.State & DrawItemState.Selected) == DrawItemState.Selected) {
+            if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)
+            {
                 e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(50, 50, 50)), e.Bounds);
             }
 
-            else {
+            else
+            {
                 e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(20, 20, 20)), e.Bounds);
 
             }
@@ -32,7 +38,8 @@ namespace Optimizer {
             e.DrawFocusRectangle();
         }
 
-        private void MoonListBox_MeasureItem(object sender, MeasureItemEventArgs e) {
+        private void MoonListBox_MeasureItem(object sender, MeasureItemEventArgs e)
+        {
             e.ItemHeight = this.Font.Height;
         }
     }

+ 54 - 27
Optimizer/Controls/MoonMenuRenderer.cs

@@ -1,9 +1,12 @@
 using System.Drawing;
 using System.Windows.Forms;
 
-namespace Optimizer {
-    internal sealed class MoonMenuRenderer : ToolStripProfessionalRenderer {
-        internal MoonMenuRenderer() : base(new MoonColors()) {
+namespace Optimizer
+{
+    internal sealed class MoonMenuRenderer : ToolStripProfessionalRenderer
+    {
+        internal MoonMenuRenderer() : base(new MoonColors())
+        {
 
         }
 
@@ -23,7 +26,8 @@ namespace Optimizer {
         //    base.OnRenderSeparator(e);
         //}
 
-        protected override void OnRenderArrow(ToolStripArrowRenderEventArgs e) {
+        protected override void OnRenderArrow(ToolStripArrowRenderEventArgs e)
+        {
             var tsMenuItem = e.Item as ToolStripMenuItem;
             if (tsMenuItem != null)
                 e.ArrowColor = Color.DimGray;
@@ -31,69 +35,92 @@ namespace Optimizer {
         }
     }
 
-    internal class MoonColors : ProfessionalColorTable {
-        public override Color SeparatorLight {
+    internal class MoonColors : ProfessionalColorTable
+    {
+        public override Color SeparatorLight
+        {
             get { return Color.DimGray; }
         }
 
-        public override Color SeparatorDark {
+        public override Color SeparatorDark
+        {
             get { return Color.DimGray; }
         }
 
-        public override Color ToolStripDropDownBackground {
-            get {
+        public override Color ToolStripDropDownBackground
+        {
+            get
+            {
                 return OptionsHelper.BackgroundColor;
             }
         }
 
-        public override Color ImageMarginGradientBegin {
-            get {
+        public override Color ImageMarginGradientBegin
+        {
+            get
+            {
                 return OptionsHelper.BackgroundColor;
             }
         }
-        public override Color ImageMarginGradientMiddle {
-            get {
+        public override Color ImageMarginGradientMiddle
+        {
+            get
+            {
                 return OptionsHelper.BackgroundColor;
             }
         }
-        public override Color ImageMarginGradientEnd {
-            get {
+        public override Color ImageMarginGradientEnd
+        {
+            get
+            {
                 return OptionsHelper.BackgroundColor;
             }
         }
 
-        public override Color ToolStripBorder {
-            get {
+        public override Color ToolStripBorder
+        {
+            get
+            {
                 return OptionsHelper.BackgroundColor;
             }
         }
 
-        public override Color MenuBorder {
-            get {
+        public override Color MenuBorder
+        {
+            get
+            {
                 return OptionsHelper.BackAccentColor;
             }
         }
 
-        public override Color MenuItemSelected {
-            get {
+        public override Color MenuItemSelected
+        {
+            get
+            {
                 return OptionsHelper.BackAccentColor;
             }
         }
 
-        public override Color MenuItemSelectedGradientBegin {
-            get {
+        public override Color MenuItemSelectedGradientBegin
+        {
+            get
+            {
                 return OptionsHelper.BackAccentColor;
             }
         }
 
-        public override Color MenuItemSelectedGradientEnd {
-            get {
+        public override Color MenuItemSelectedGradientEnd
+        {
+            get
+            {
                 return OptionsHelper.BackAccentColor;
             }
         }
 
-        public override Color MenuItemBorder {
-            get {
+        public override Color MenuItemBorder
+        {
+            get
+            {
                 return OptionsHelper.BackAccentColor;
             }
         }

+ 8 - 4
Optimizer/Controls/MoonProgress.cs

@@ -2,14 +2,18 @@
 using System.Drawing.Drawing2D;
 using System.Windows.Forms;
 
-namespace Optimizer {
-    internal sealed class MoonProgress : ProgressBar {
-        public MoonProgress() {
+namespace Optimizer
+{
+    internal sealed class MoonProgress : ProgressBar
+    {
+        public MoonProgress()
+        {
             DoubleBuffered = true;
             this.SetStyle(ControlStyles.UserPaint, true);
         }
 
-        protected override void OnPaint(PaintEventArgs e) {
+        protected override void OnPaint(PaintEventArgs e)
+        {
             LinearGradientBrush brush = null;
             Rectangle rec = new Rectangle(0, 0, this.Width, this.Height);
 

+ 12 - 6
Optimizer/Controls/MoonRadio.cs

@@ -2,23 +2,29 @@
 using System.Drawing;
 using System.Windows.Forms;
 
-namespace Optimizer {
-    public sealed class MoonRadio : RadioButton {
-        public MoonRadio() {
+namespace Optimizer
+{
+    public sealed class MoonRadio : RadioButton
+    {
+        public MoonRadio()
+        {
             DoubleBuffered = true;
         }
 
-        protected override void OnCheckedChanged(EventArgs e) {
+        protected override void OnCheckedChanged(EventArgs e)
+        {
             base.OnCheckedChanged(e);
 
             // custom theming
-            if (this.Checked) {
+            if (this.Checked)
+            {
                 this.Tag = "themeable";
                 this.Font = new Font(this.Font, FontStyle.Underline);
 
                 this.ForeColor = OptionsHelper.ForegroundColor;
             }
-            else {
+            else
+            {
                 this.Tag = string.Empty;
                 this.ForeColor = Color.White;
                 this.Font = new Font(this.Font, FontStyle.Regular);

+ 18 - 9
Optimizer/Controls/MoonSelect.cs

@@ -1,21 +1,27 @@
 using System.Drawing;
 using System.Windows.Forms;
 
-namespace Optimizer {
-    public sealed class MoonSelect : ComboBox {
+namespace Optimizer
+{
+    public sealed class MoonSelect : ComboBox
+    {
         private const int WM_PAINT = 0xF;
         private int buttonWidth = SystemInformation.HorizontalScrollBarArrowWidth;
         Color borderColor = Color.Blue;
 
-        public Color BorderColor {
+        public Color BorderColor
+        {
             get { return borderColor; }
             set { borderColor = value; Invalidate(); }
         }
 
-        protected override void WndProc(ref Message m) {
+        protected override void WndProc(ref Message m)
+        {
             base.WndProc(ref m);
-            if (m.Msg == WM_PAINT && DropDownStyle != ComboBoxStyle.Simple) {
-                using (var g = Graphics.FromHwnd(Handle)) {
+            if (m.Msg == WM_PAINT && DropDownStyle != ComboBoxStyle.Simple)
+            {
+                using (var g = Graphics.FromHwnd(Handle))
+                {
                     var adjustMent = 0;
                     if (FlatStyle == FlatStyle.Popup ||
                        (FlatStyle == FlatStyle.Flat &&
@@ -29,14 +35,17 @@ namespace Optimizer {
                     if (DropDownStyle == ComboBoxStyle.DropDownList && !Enabled)
                         innerBorderColor = SystemColors.Control;
 
-                    if (DropDownStyle == ComboBoxStyle.DropDownList || Enabled == false) {
-                        using (var p = new Pen(innerBorderColor, innerBorderWisth)) {
+                    if (DropDownStyle == ComboBoxStyle.DropDownList || Enabled == false)
+                    {
+                        using (var p = new Pen(innerBorderColor, innerBorderWisth))
+                        {
                             p.Alignment = System.Drawing.Drawing2D.PenAlignment.Inset;
                             g.DrawRectangle(p, 1, 1,
                                 Width - buttonWidth - adjustMent - 1, Height - 1);
                         }
                     }
-                    using (var p = new Pen(BorderColor)) {
+                    using (var p = new Pen(BorderColor))
+                    {
                         g.DrawRectangle(p, 0, 0, Width - 1, Height - 1);
                         g.DrawLine(p, Width - buttonWidth - adjustMent,
                             0, Width - buttonWidth - adjustMent, Height);

+ 78 - 39
Optimizer/Controls/MoonTabs.cs

@@ -6,12 +6,14 @@ using System.Runtime.InteropServices;
 using System.Security.Permissions;
 using System.Windows.Forms;
 
-namespace Optimizer {
+namespace Optimizer
+{
     [
         ComVisible(true), ClassInterface(ClassInterfaceType.AutoDispatch),
         DefaultProperty("TabPages"), DefaultEvent("SelectedIndexChanged")
     ]
-    public sealed class MoonTabs : TabControl {
+    public sealed class MoonTabs : TabControl
+    {
         [System.Runtime.InteropServices.DllImport("user32.dll")]
         private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wp, IntPtr lp);
 
@@ -20,7 +22,8 @@ namespace Optimizer {
 
         private int _BorderSize = 0;
         [Category("Custom"), Description("The size of the components border."), DefaultValue(0)]
-        public int BorderSize {
+        public int BorderSize
+        {
             get => _BorderSize;
             set => _BorderSize = 0;
         }
@@ -30,7 +33,8 @@ namespace Optimizer {
 
         private int _DividerSize = 0;
         [Category("Custom"), Description("The size of the components Divider."), DefaultValue(0)]
-        public int DividerSize {
+        public int DividerSize
+        {
             get => _DividerSize;
             set => _DividerSize = value.LimitToRange(0, 0);
         }
@@ -46,9 +50,11 @@ namespace Optimizer {
         private Point ptPreviousLocation, ptMaxDrag;
         private int DraggedIndex = -1;
 
-        protected override CreateParams CreateParams {
+        protected override CreateParams CreateParams
+        {
             [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
-            get {
+            get
+            {
                 CreateParams cp = base.CreateParams;
                 cp.ExStyle |= 0x02000000;
                 return cp;
@@ -56,12 +62,14 @@ namespace Optimizer {
         }
 
         // OVERRIDE TAB HEADER WIDTH
-        protected override void OnHandleCreated(EventArgs e) {
+        protected override void OnHandleCreated(EventArgs e)
+        {
             base.OnHandleCreated(e);
 
             // Send TCM_SETMINTABWIDTH
             string maxTitle = string.Empty;
-            foreach (TabPage x in this.TabPages) {
+            foreach (TabPage x in this.TabPages)
+            {
                 if (x.Text.Length > maxTitle.Length) maxTitle = x.Text;
             }
             Size textSize = TextRenderer.MeasureText(maxTitle, this.Font);
@@ -69,7 +77,8 @@ namespace Optimizer {
             SendMessage(this.Handle, 0x1300 + 49, IntPtr.Zero, (IntPtr)textSize.Width);
         }
 
-        public MoonTabs() {
+        public MoonTabs()
+        {
             SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer |
                      ControlStyles.UserPaint | ControlStyles.ResizeRedraw | ControlStyles.CacheText, true);
 
@@ -83,7 +92,8 @@ namespace Optimizer {
 
         private void SetDragState() => bDrag = (CanDrag && bMouseDown && bShiftKey);
 
-        protected override void OnMouseDown(MouseEventArgs e) {
+        protected override void OnMouseDown(MouseEventArgs e)
+        {
             bMouseDown = true;
             SetDragState();
             Rectangle rectDrag = GetTabRect(SelectedIndex);
@@ -92,21 +102,27 @@ namespace Optimizer {
             Bitmap src = new Bitmap(Width, Height);
             DrawToBitmap(src, ClientRectangle);
 
-            using (Graphics g = Graphics.FromImage(bitDrag = new Bitmap(rectDrag.Width, rectDrag.Height))) {
+            using (Graphics g = Graphics.FromImage(bitDrag = new Bitmap(rectDrag.Width, rectDrag.Height)))
+            {
                 g.DrawImage(src, new Rectangle(0, 0, bitDrag.Width, bitDrag.Height), rectDrag, GraphicsUnit.Pixel);
             }
         }
 
-        protected override void OnMouseMove(MouseEventArgs e) {
-            if (bDrag) {
-                if (Alignment == TabAlignment.Top || Alignment == TabAlignment.Bottom) {
+        protected override void OnMouseMove(MouseEventArgs e)
+        {
+            if (bDrag)
+            {
+                if (Alignment == TabAlignment.Top || Alignment == TabAlignment.Bottom)
+                {
                     ptPreviousLocation = new Point(((e.X < 0) ? 0 : (e.X > ptMaxDrag.X) ? ptMaxDrag.X : e.X), (Alignment == TabAlignment.Top ? BorderSize : ptMaxDrag.Y));
                 }
 
-                if (Alignment == TabAlignment.Right || Alignment == TabAlignment.Left) {
+                if (Alignment == TabAlignment.Right || Alignment == TabAlignment.Left)
+                {
                     ptPreviousLocation = new Point(ptMaxDrag.X, ((e.Y < 0) ? 0 : (e.Y > ptMaxDrag.Y) ? ptMaxDrag.Y : e.Y));
                 }
-                for (int i = 0; i < TabCount; i++) {
+                for (int i = 0; i < TabCount; i++)
+                {
                     if (GetTabRect(i).Contains(PointToClient(Cursor.Position))) { DraggedIndex = i; break; }
                 }
 
@@ -114,8 +130,10 @@ namespace Optimizer {
             }
         }
 
-        protected override void OnMouseUp(MouseEventArgs e) {
-            void SwapTabPages(TabPage inDestTab) {
+        protected override void OnMouseUp(MouseEventArgs e)
+        {
+            void SwapTabPages(TabPage inDestTab)
+            {
                 int SourceIndex = TabPages.IndexOf(SelectedTab);
                 int DestinationIndex = TabPages.IndexOf(inDestTab);
 
@@ -128,7 +146,8 @@ namespace Optimizer {
 
             bDrag = bMouseDown = false;
 
-            if (DraggedIndex > -1) {
+            if (DraggedIndex > -1)
+            {
                 SwapTabPages(TabPages[DraggedIndex]);
                 DraggedIndex = -1;
             }
@@ -141,7 +160,8 @@ namespace Optimizer {
 
         protected override void OnKeyUp(KeyEventArgs e) { bDrag = bShiftKey = false; SetDragState(); }
 
-        protected override void OnPaint(PaintEventArgs e) {
+        protected override void OnPaint(PaintEventArgs e)
+        {
             if (DesignMode) return;
 
             e.Graphics.Clear(Color.FromArgb(40, 40, 40));
@@ -149,9 +169,11 @@ namespace Optimizer {
             Rectangle container = new Rectangle(0, 0, Width - (BorderSize % 2), Height - (BorderSize % 2));
             Rectangle containerHead = default(Rectangle);
 
-            if (TabCount > 0) {
+            if (TabCount > 0)
+            {
                 using (SolidBrush brushBackgroundTab = new SolidBrush(Color.FromArgb(40, 40, 40)))
-                using (SolidBrush brushDivider = new SolidBrush(OptionsHelper.ForegroundColor)) {
+                using (SolidBrush brushDivider = new SolidBrush(OptionsHelper.ForegroundColor))
+                {
                     {
                         e.Graphics.FillRectangle(brushBackgroundTab, DisplayRectangle);
                     }
@@ -159,7 +181,8 @@ namespace Optimizer {
                     {
                         Rectangle rectDivider = GetTabRect(SelectedIndex);
 
-                        if (Alignment == TabAlignment.Top || Alignment == TabAlignment.Bottom) {
+                        if (Alignment == TabAlignment.Top || Alignment == TabAlignment.Bottom)
+                        {
                             e.Graphics.FillRectangle(brushDivider,
                                                      0,
                                                      (((Alignment == TabAlignment.Top) ? (TabPages[SelectedIndex].Top - DividerSize - (DividerSize % 2)) :
@@ -168,7 +191,8 @@ namespace Optimizer {
                                                     );
                         }
 
-                        if (Alignment == TabAlignment.Right || Alignment == TabAlignment.Left) {
+                        if (Alignment == TabAlignment.Right || Alignment == TabAlignment.Left)
+                        {
                             e.Graphics.FillRectangle(brushDivider,
                                                      ((Alignment == TabAlignment.Right) ? (TabPages[SelectedIndex].Right + (DividerSize % 2)) : TabPages[SelectedIndex].Left - DividerSize - (DividerSize % 2)),
                                                      BorderSize,
@@ -191,21 +215,25 @@ namespace Optimizer {
             using (SolidBrush brushInActiveIndicator = new SolidBrush(OptionsHelper.ForegroundColor))
             using (brushActiveText = new SolidBrush(OptionsHelper.TextColor))
             using (SolidBrush brushInActiveText = new SolidBrush(Color.White))
-            using (SolidBrush brushDrag = new SolidBrush(ControlPaint.Dark(OptionsHelper.ForegroundColor))) {
+            using (SolidBrush brushDrag = new SolidBrush(ControlPaint.Dark(OptionsHelper.ForegroundColor)))
+            {
                 //if (MoonManager.THEME_PREFERENCE == THEME.LIGHT) brushActiveText = new SolidBrush(Color.White);
 
                 penBorder.Alignment = penActive.Alignment = PenAlignment.Inset;
                 e.Graphics.DrawRectangle(penBorder, container);
 
-                if (TabCount > 0) {
+                if (TabCount > 0)
+                {
                     ptMaxDrag = new Point(0, 0);
 
-                    for (int i = 0; i < TabCount; i++) {
+                    for (int i = 0; i < TabCount; i++)
+                    {
                         containerHead = GetTabRect(i);
 
                         e.Graphics.FillRectangle((SelectedIndex == i) ? (bDrag ? brushDrag : brushActive) : brushInActive, containerHead);
 
-                        if (BorderEdges && (i == SelectedIndex)) {
+                        if (BorderEdges && (i == SelectedIndex))
+                        {
                             Point ptA = new Point(0, 0); Point ptB = new Point(0, 0);
                             Point ptC = new Point(0, 0); Point ptD = new Point(0, 0);
 
@@ -213,20 +241,24 @@ namespace Optimizer {
                             ptA.Y = ptB.Y = ptC.Y = containerHead.Y;
                             ptA.Y = ptC.Y = ptD.Y = containerHead.Y + containerHead.Height - 1;
 
-                            if (Alignment == TabAlignment.Top || Alignment == TabAlignment.Bottom) {
+                            if (Alignment == TabAlignment.Top || Alignment == TabAlignment.Bottom)
+                            {
                                 ptD.X = ptC.X = containerHead.X + containerHead.Width;
                                 ptC.Y = containerHead.Y;
 
-                                if (Alignment == TabAlignment.Bottom) {
+                                if (Alignment == TabAlignment.Bottom)
+                                {
                                     MoonTabHelper.Swap(ref ptA, ref ptB); MoonTabHelper.Swap(ref ptC, ref ptD);
                                 }
                             }
 
-                            if (Alignment == TabAlignment.Right || Alignment == TabAlignment.Left) {
+                            if (Alignment == TabAlignment.Right || Alignment == TabAlignment.Left)
+                            {
                                 ptA.Y = containerHead.Y;
                                 ptB.X = ptC.X = containerHead.X + containerHead.Width - 1;
 
-                                if (Alignment == TabAlignment.Left) {
+                                if (Alignment == TabAlignment.Left)
+                                {
                                     MoonTabHelper.Swap(ref ptA, ref ptC); MoonTabHelper.Swap(ref ptB, ref ptD);
                                 }
                             }
@@ -239,17 +271,20 @@ namespace Optimizer {
                         {
                             Rectangle rectDivider = default(Rectangle);
 
-                            if (Alignment == TabAlignment.Top || Alignment == TabAlignment.Bottom) {
+                            if (Alignment == TabAlignment.Top || Alignment == TabAlignment.Bottom)
+                            {
                                 rectDivider = new Rectangle(containerHead.X, containerHead.Y + ((Alignment == TabAlignment.Top) ? containerHead.Height : -DividerSize), containerHead.Width, DividerSize);
                             }
-                            if (Alignment == TabAlignment.Right || Alignment == TabAlignment.Left) {
+                            if (Alignment == TabAlignment.Right || Alignment == TabAlignment.Left)
+                            {
                                 rectDivider = new Rectangle(containerHead.X - ((Alignment == TabAlignment.Right) ? DividerSize : -containerHead.Width), containerHead.Y, DividerSize, containerHead.Height);
                             }
 
                             e.Graphics.FillRectangle(((MoonTabHelper.TagToInt(TabPages[i]) == 1) ? brushAlternative : ((i == SelectedIndex) ? brushActiveIndicator : brushInActiveIndicator)), rectDivider);
                         }
 
-                        if (!(bDrag && i == SelectedIndex)) {
+                        if (!(bDrag && i == SelectedIndex))
+                        {
                             int angle = 0;
                             {
                                 if (Alignment == TabAlignment.Right) angle = 90;
@@ -276,7 +311,8 @@ namespace Optimizer {
                             e.Graphics.ResetTransform();
                         }
 
-                        if (bMouseDown) {
+                        if (bMouseDown)
+                        {
                             if (Alignment == TabAlignment.Top || Alignment == TabAlignment.Bottom) { if (i > 0) { ptMaxDrag.X += GetTabRect(i).Width; } }
                             if (Alignment == TabAlignment.Top) { ptMaxDrag.Y = BorderSize; }
                             if (Alignment == TabAlignment.Bottom) { ptMaxDrag.Y = containerHead.Y; };
@@ -293,14 +329,17 @@ namespace Optimizer {
 
     }
 
-    public static class MoonTabHelper {
-        public static int LimitToRange(this int value, int inclusiveMinimum, int inclusiveMaximum) {
+    public static class MoonTabHelper
+    {
+        public static int LimitToRange(this int value, int inclusiveMinimum, int inclusiveMaximum)
+        {
             if (value < inclusiveMinimum) { return inclusiveMinimum; }
             if (value > inclusiveMaximum) { return inclusiveMaximum; }
             return value;
         }
 
-        public static void Swap<T>(ref T a, ref T b) {
+        public static void Swap<T>(ref T a, ref T b)
+        {
             T temp = a;
             a = b; b = temp;
         }

+ 16 - 8
Optimizer/Controls/MoonToggle.cs

@@ -3,32 +3,39 @@ using System.Drawing;
 using System.Drawing.Drawing2D;
 using System.Windows.Forms;
 
-namespace Optimizer {
-    public sealed class MoonToggle : CheckBox {
+namespace Optimizer
+{
+    public sealed class MoonToggle : CheckBox
+    {
         bool solidStyle = true;
 
         [Browsable(true)]
-        public override string Text {
+        public override string Text
+        {
             get { return base.Text; }
             set { }
         }
 
         [DefaultValue(true)]
-        public bool SolidStyle {
+        public bool SolidStyle
+        {
             get { return solidStyle; }
-            set {
+            set
+            {
                 solidStyle = value;
                 this.Invalidate();
             }
         }
 
-        public MoonToggle() {
+        public MoonToggle()
+        {
             this.DoubleBuffered = true;
             this.MinimumSize = new Size(46, 22);
             this.ForeColor = Color.White;
         }
 
-        private GraphicsPath GetFigurePath() {
+        private GraphicsPath GetFigurePath()
+        {
             int arcSize = this.Height - 1;
             Rectangle leftArc = new Rectangle(0, 0, arcSize, arcSize);
             Rectangle rightArc = new Rectangle(this.Width - arcSize - 2, 0, arcSize, arcSize);
@@ -42,7 +49,8 @@ namespace Optimizer {
             return path;
         }
 
-        protected override void OnPaint(PaintEventArgs pevent) {
+        protected override void OnPaint(PaintEventArgs pevent)
+        {
             int toggleSize = this.Height - 5;
             pevent.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
             pevent.Graphics.Clear(this.Parent.BackColor);

+ 18 - 9
Optimizer/Controls/MoonTree.cs

@@ -1,8 +1,10 @@
 using System.Drawing;
 using System.Windows.Forms;
 
-namespace Optimizer {
-    public sealed class MoonTree : TreeView {
+namespace Optimizer
+{
+    public sealed class MoonTree : TreeView
+    {
         string[] rootNodes =
         {
             "cpu", "ram", "mobo", "gpu", "disk", "inet", "audio", "dev"
@@ -10,22 +12,26 @@ namespace Optimizer {
 
         string _primaryItemTag = "_primary";
 
-        public MoonTree() {
+        public MoonTree()
+        {
             this.DrawMode = TreeViewDrawMode.OwnerDrawAll;
             this.BackColor = Color.FromArgb(20, 20, 20);
             this.ForeColor = Color.White;
             this.BorderStyle = BorderStyle.None;
         }
 
-        private bool FindName(string name) {
-            foreach (string x in rootNodes) {
+        private bool FindName(string name)
+        {
+            foreach (string x in rootNodes)
+            {
                 if (x == name) return true;
             }
 
             return false;
         }
 
-        protected override void OnDrawNode(DrawTreeNodeEventArgs e) {
+        protected override void OnDrawNode(DrawTreeNodeEventArgs e)
+        {
             Rectangle r = new Rectangle();
             r.X = 0;
             r.Y = e.Bounds.Y;
@@ -33,10 +39,12 @@ namespace Optimizer {
             r.Height = e.Bounds.Height;
             r.Width = 100000;
 
-            if (e.Node.IsSelected) {
+            if (e.Node.IsSelected)
+            {
                 e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(50, 50, 50)), r); //e.Bounds
             }
-            else {
+            else
+            {
                 e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(20, 20, 20)), r); //e.Bounds
             }
 
@@ -44,7 +52,8 @@ namespace Optimizer {
             else if (e.Node.Tag != null && e.Node.Tag.ToString() == _primaryItemTag) TextRenderer.DrawText(e.Graphics, e.Node.Text, this.Font, e.Node.Bounds, OptionsHelper.ForegroundColor);
             else TextRenderer.DrawText(e.Graphics, e.Node.Text, this.Font, e.Node.Bounds, Color.White);
 
-            if (this.ImageList != null && this.ImageList.Images.Count > 0 && e.Node.SelectedImageIndex > -1) {
+            if (this.ImageList != null && this.ImageList.Images.Count > 0 && e.Node.SelectedImageIndex > -1)
+            {
                 e.Graphics.DrawImage(this.ImageList.Images[e.Node.SelectedImageIndex], e.Bounds.Left + 15 * e.Node.Level + 5, e.Bounds.Top);
             }
         }

+ 22 - 11
Optimizer/Controls/ToggleCard.cs

@@ -1,13 +1,16 @@
 using System;
 using System.Windows.Forms;
 
-namespace Optimizer {
-    public sealed partial class ToggleCard : UserControl {
+namespace Optimizer
+{
+    public sealed partial class ToggleCard : UserControl
+    {
         public event EventHandler ToggleClicked;
 
         SubForm _subForm;
 
-        public ToggleCard() {
+        public ToggleCard()
+        {
             InitializeComponent();
 
             this.DoubleBuffered = true;
@@ -25,9 +28,11 @@ namespace Optimizer {
             Panel.AccessibleName = LabelText;
         }
 
-        public string LabelText {
+        public string LabelText
+        {
             get { return Label.Text; }
-            set {
+            set
+            {
                 Label.Text = value;
                 this.AccessibleName = value;
                 Label.AccessibleName = value;
@@ -36,30 +41,36 @@ namespace Optimizer {
             }
         }
 
-        public bool ToggleChecked {
+        public bool ToggleChecked
+        {
             get { return Toggle.Checked; }
             set { Toggle.Checked = value; }
         }
 
-        private void Toggle_CheckedChanged(object sender, EventArgs e) {
+        private void Toggle_CheckedChanged(object sender, EventArgs e)
+        {
             if (ToggleClicked != null) ToggleClicked(sender, e);
         }
 
-        private void Label_MouseLeave(object sender, EventArgs e) {
+        private void Label_MouseLeave(object sender, EventArgs e)
+        {
             Label.Font = new System.Drawing.Font(Label.Font, System.Drawing.FontStyle.Regular);
         }
 
-        private void Label_MouseEnter(object sender, EventArgs e) {
+        private void Label_MouseEnter(object sender, EventArgs e)
+        {
             Label.Font = new System.Drawing.Font(Label.Font, System.Drawing.FontStyle.Underline);
         }
 
-        private void Label_Click(object sender, EventArgs e) {
+        private void Label_Click(object sender, EventArgs e)
+        {
             if (Label.Tag == null) return;
             _subForm.SetTip(Label.Tag.ToString());
             _subForm.ShowDialog(this);
         }
 
-        private void Label_MouseHover(object sender, EventArgs e) {
+        private void Label_MouseHover(object sender, EventArgs e)
+        {
             Label.Font = new System.Drawing.Font(Label.Font, System.Drawing.FontStyle.Underline);
         }
     }

+ 28 - 14
Optimizer/CoreHelper.cs

@@ -1,8 +1,10 @@
 using System.IO;
 using System.Text;
 
-namespace Optimizer {
-    internal static class CoreHelper {
+namespace Optimizer
+{
+    internal static class CoreHelper
+    {
         internal readonly static string CoreFolder = CleanHelper.ProgramData + "\\Optimizer\\";
         internal readonly static string ReadyMadeMenusFolder = CleanHelper.ProgramData + "\\Optimizer\\ReadyMadeMenus\\";
         internal readonly static string ScriptsFolder = CleanHelper.ProgramData + "\\Optimizer\\Required\\";
@@ -66,36 +68,48 @@ namespace Optimizer {
             Properties.Resources.DisableClassicPhotoViewer
         };
 
-        internal static void Deploy() {
-            if (!Directory.Exists(CoreFolder)) {
+        internal static void Deploy()
+        {
+            if (!Directory.Exists(CoreFolder))
+            {
                 Directory.CreateDirectory(CoreFolder);
             }
-            if (!Directory.Exists(ReadyMadeMenusFolder)) {
+            if (!Directory.Exists(ReadyMadeMenusFolder))
+            {
                 Directory.CreateDirectory(ReadyMadeMenusFolder);
             }
-            if (!Directory.Exists(ScriptsFolder)) {
+            if (!Directory.Exists(ScriptsFolder))
+            {
                 Directory.CreateDirectory(ScriptsFolder);
             }
-            if (!Directory.Exists(ExtractedIconsFolder)) {
+            if (!Directory.Exists(ExtractedIconsFolder))
+            {
                 Directory.CreateDirectory(ExtractedIconsFolder);
             }
-            if (!Directory.Exists(FavIconsFolder)) {
+            if (!Directory.Exists(FavIconsFolder))
+            {
                 Directory.CreateDirectory(FavIconsFolder);
             }
-            if (!Directory.Exists(StartupItemsBackupFolder)) {
+            if (!Directory.Exists(StartupItemsBackupFolder))
+            {
                 Directory.CreateDirectory(StartupItemsBackupFolder);
             }
 
-            for (int i = 0; i < readyMadeMenusItems.Length; i++) {
+            for (int i = 0; i < readyMadeMenusItems.Length; i++)
+            {
                 if (!File.Exists(readyMadeMenusItems[i])) File.WriteAllText(readyMadeMenusItems[i], readyMadeMenusFiles[i]);
             }
 
-            for (int i = 0; i < scriptItems.Length; i++) {
-                if (!File.Exists(scriptItems[i])) {
-                    if (scriptItems[i].Contains("OneDrive")) {
+            for (int i = 0; i < scriptItems.Length; i++)
+            {
+                if (!File.Exists(scriptItems[i]))
+                {
+                    if (scriptItems[i].Contains("OneDrive"))
+                    {
                         File.WriteAllBytes(scriptItems[i], Encoding.UTF8.GetBytes(scriptFiles[i]));
                     }
-                    else {
+                    else
+                    {
                         File.WriteAllText(scriptItems[i], scriptFiles[i]);
                     }
                 }

+ 9 - 5
Optimizer/DebugHelper.cs

@@ -4,13 +4,16 @@ using System.Linq;
 using System.Text;
 using System.Windows.Forms;
 
-namespace Optimizer {
+namespace Optimizer
+{
     // Collection of useful debugging methods and utilities
-    internal sealed class DebugHelper {
+    internal sealed class DebugHelper
+    {
         // For comparing and detecting missing keys between two translation JSON files
-        internal static void FindDifferenceInTwoJsons() {
+        internal static void FindDifferenceInTwoJsons()
+        {
             JObject file1 = JObject.Parse(Properties.Resources.EN);
-            JObject file2 = JObject.Parse(Properties.Resources.RU);
+            JObject file2 = JObject.Parse(Properties.Resources.BG);
 
             var p1 = file1.Properties().ToList();
             var p2 = file2.Properties().ToList();
@@ -18,7 +21,8 @@ namespace Optimizer {
             var missingProps = p1.Where(expected => !p2.Where(actual => actual.Name == expected.Name).Any());
 
             StringBuilder sb = new StringBuilder();
-            foreach (var x in missingProps) {
+            foreach (var x in missingProps)
+            {
                 sb.Append(x.Name + Environment.NewLine);
             }
             MessageBox.Show(sb.ToString());

+ 24 - 12
Optimizer/EmbeddedAssembly.cs

@@ -4,30 +4,36 @@ using System.IO;
 using System.Reflection;
 using System.Security.Cryptography;
 
-namespace Optimizer {
-    internal sealed class EmbeddedAssembly {
+namespace Optimizer
+{
+    internal sealed class EmbeddedAssembly
+    {
         static Dictionary<string, Assembly> _dictionary;
 
-        internal static void Load(string embeddedResource, string fileName) {
+        internal static void Load(string embeddedResource, string fileName)
+        {
             if (_dictionary == null) _dictionary = new Dictionary<string, Assembly>();
 
             byte[] bytes = null;
             Assembly assembly = null;
             Assembly currentAssembly = Assembly.GetExecutingAssembly();
 
-            using (Stream stream = currentAssembly.GetManifestResourceStream(embeddedResource)) {
+            using (Stream stream = currentAssembly.GetManifestResourceStream(embeddedResource))
+            {
                 if (stream == null) throw new Exception($"{embeddedResource} is not found in Embedded Resources.");
 
                 bytes = new byte[(int)stream.Length];
                 stream.Read(bytes, 0, (int)stream.Length);
 
-                try {
+                try
+                {
                     assembly = Assembly.Load(bytes);
 
                     _dictionary.Add(assembly.FullName, assembly);
                     return;
                 }
-                catch (Exception ex) {
+                catch (Exception ex)
+                {
                     Logger.LogError("EmbeddedAssembly.Load", ex.Message, ex.StackTrace);
                 }
             }
@@ -35,25 +41,30 @@ namespace Optimizer {
             bool fileOk = false;
             string tempFile = string.Empty;
 
-            using (SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider()) {
+            using (SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider())
+            {
                 string fileHash = BitConverter.ToString(sha1.ComputeHash(bytes)).Replace("-", string.Empty);
 
                 tempFile = Path.GetTempPath() + fileName;
 
-                if (File.Exists(tempFile)) {
+                if (File.Exists(tempFile))
+                {
                     byte[] byteArray = File.ReadAllBytes(tempFile);
                     string fileHash2 = BitConverter.ToString(sha1.ComputeHash(byteArray)).Replace("-", string.Empty);
 
-                    if (fileHash == fileHash2) {
+                    if (fileHash == fileHash2)
+                    {
                         fileOk = true;
                     }
                 }
-                else {
+                else
+                {
                     fileOk = false;
                 }
             }
 
-            if (!fileOk) {
+            if (!fileOk)
+            {
                 File.WriteAllBytes(tempFile, bytes);
             }
 
@@ -61,7 +72,8 @@ namespace Optimizer {
             _dictionary.Add(assembly.FullName, assembly);
         }
 
-        internal static Assembly Get(string assemblyFullName) {
+        internal static Assembly Get(string assemblyFullName)
+        {
             if (_dictionary == null || _dictionary.Count == 0) return null;
             if (_dictionary.ContainsKey(assemblyFullName)) return _dictionary[assemblyFullName];
             return null;

+ 22 - 11
Optimizer/ErrorLogger.cs

@@ -2,13 +2,16 @@
 using System.IO;
 using System.Text;
 
-namespace Optimizer {
-    internal static class Logger {
+namespace Optimizer
+{
+    internal static class Logger
+    {
         internal static string ErrorLogFile = Path.Combine(CoreHelper.CoreFolder, "Optimizer.log");
 
         static StringBuilder _silentReportLog;
 
-        private static void LogErrorSilent(string functionName, string errorMessage, string errorStackTrace) {
+        private static void LogErrorSilent(string functionName, string errorMessage, string errorStackTrace)
+        {
             _silentReportLog.AppendLine(string.Format("[ERROR] [{0}] in function [{1}]", DateTime.Now.ToString(), functionName));
             _silentReportLog.AppendLine();
             _silentReportLog.AppendLine(errorMessage);
@@ -18,12 +21,14 @@ namespace Optimizer {
             _silentReportLog.AppendLine();
         }
 
-        internal static void LogInfoSilent(string message) {
+        internal static void LogInfoSilent(string message)
+        {
             _silentReportLog.AppendLine($"[OK] {message}");
             _silentReportLog.AppendLine();
         }
 
-        internal static void InitializeSilentReport() {
+        internal static void InitializeSilentReport()
+        {
             _silentReportLog = new StringBuilder();
 
             _silentReportLog.AppendLine(Utilities.GetWindowsDetails());
@@ -34,21 +39,27 @@ namespace Optimizer {
             _silentReportLog.AppendLine();
         }
 
-        internal static void GenerateSilentReport() {
-            try {
+        internal static void GenerateSilentReport()
+        {
+            try
+            {
                 File.WriteAllText($"Optimizer.SilentReport.{DateTime.Now.ToString("yyyyMMddTHHmm")}.log", _silentReportLog.ToString());
             }
             catch { }
         }
 
-        internal static void LogError(string functionName, string errorMessage, string errorStackTrace) {
-            if (Program.SILENT_MODE) {
+        internal static void LogError(string functionName, string errorMessage, string errorStackTrace)
+        {
+            if (Program.SILENT_MODE)
+            {
                 LogErrorSilent(functionName, errorMessage, errorStackTrace);
                 return;
             }
 
-            try {
-                if (!File.Exists(ErrorLogFile) || (File.Exists(ErrorLogFile) && File.ReadAllText(ErrorLogFile).Trim() == string.Empty)) {
+            try
+            {
+                if (!File.Exists(ErrorLogFile) || (File.Exists(ErrorLogFile) && File.ReadAllText(ErrorLogFile).Trim() == string.Empty))
+                {
                     File.AppendAllText(ErrorLogFile, Utilities.GetWindowsDetails());
                     File.AppendAllText(ErrorLogFile, Environment.NewLine);
                     File.AppendAllText(ErrorLogFile, string.Format("Optimizer {0} - .NET Framework {1} - Experimental build: {2}", Program.GetCurrentVersionTostring(), Utilities.GetNETFramework(), Program.EXPERIMENTAL_BUILD));

+ 24 - 12
Optimizer/FileHandleHelper.cs

@@ -3,16 +3,20 @@ using System.Collections.Generic;
 using System.Diagnostics;
 using System.Runtime.InteropServices;
 
-namespace Optimizer {
-    public static class FileHandleHelper {
-        public static List<Process> GetProcessesLockingFile(string path) {
+namespace Optimizer
+{
+    public static class FileHandleHelper
+    {
+        public static List<Process> GetProcessesLockingFile(string path)
+        {
             uint handle;
             string key = Guid.NewGuid().ToString();
             int res = RmStartSession(out handle, 0, key);
 
             if (res != 0) return null;
 
-            try {
+            try
+            {
                 const int MORE_DATA = 234;
                 uint pnProcInfoNeeded, pnProcInfo = 0, lpdwRebootReasons = RmRebootReasonNone;
 
@@ -24,12 +28,14 @@ namespace Optimizer {
 
                 res = RmGetList(handle, out pnProcInfoNeeded, ref pnProcInfo, null, ref lpdwRebootReasons);
 
-                if (res == MORE_DATA) {
+                if (res == MORE_DATA)
+                {
                     return EnumerateProcesses(pnProcInfoNeeded, handle, lpdwRebootReasons);
                 }
                 else if (res != 0) return null;
             }
-            finally {
+            finally
+            {
                 RmEndSession(handle);
             }
 
@@ -38,7 +44,8 @@ namespace Optimizer {
 
 
         [StructLayout(LayoutKind.Sequential)]
-        public struct RM_UNIQUE_PROCESS {
+        public struct RM_UNIQUE_PROCESS
+        {
             public int dwProcessId;
             public System.Runtime.InteropServices.ComTypes.FILETIME ProcessStartTime;
         }
@@ -47,7 +54,8 @@ namespace Optimizer {
         const int CCH_RM_MAX_APP_NAME = 255;
         const int CCH_RM_MAX_SVC_NAME = 63;
 
-        public enum RM_APP_TYPE {
+        public enum RM_APP_TYPE
+        {
             RmUnknownApp = 0,
             RmMainWindow = 1,
             RmOtherWindow = 2,
@@ -58,7 +66,8 @@ namespace Optimizer {
         }
 
         [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
-        public struct RM_PROCESS_INFO {
+        public struct RM_PROCESS_INFO
+        {
             public RM_UNIQUE_PROCESS Process;
 
             [MarshalAs(UnmanagedType.ByValTStr, SizeConst = CCH_RM_MAX_APP_NAME + 1)] public string strAppName;
@@ -87,7 +96,8 @@ namespace Optimizer {
             ref uint pnProcInfo, [In, Out] RM_PROCESS_INFO[] rgAffectedApps,
             ref uint lpdwRebootReasons);
 
-        private static List<Process> EnumerateProcesses(uint pnProcInfoNeeded, uint handle, uint lpdwRebootReasons) {
+        private static List<Process> EnumerateProcesses(uint pnProcInfoNeeded, uint handle, uint lpdwRebootReasons)
+        {
             var processes = new List<Process>(10);
 
             var processInfo = new RM_PROCESS_INFO[pnProcInfoNeeded];
@@ -98,8 +108,10 @@ namespace Optimizer {
 
             if (res != 0) return null;
 
-            for (int i = 0; i < pnProcInfo; i++) {
-                try {
+            for (int i = 0; i < pnProcInfo; i++)
+            {
+                try
+                {
                     processes.Add(Process.GetProcessById(processInfo[i].Process.dwProcessId));
                 }
                 catch { }

+ 36 - 18
Optimizer/FontHelper.cs

@@ -5,8 +5,10 @@ using System.Drawing;
 using System.Drawing.Text;
 using System.Linq;
 
-namespace Optimizer {
-    internal static class FontHelper {
+namespace Optimizer
+{
+    internal static class FontHelper
+    {
         [System.Runtime.InteropServices.DllImport("gdi32.dll")]
         private static extern IntPtr AddFontMemResourceEx(IntPtr pbFont, uint cbFont,
             IntPtr pdv, [System.Runtime.InteropServices.In] ref uint pcFonts);
@@ -15,7 +17,8 @@ namespace Optimizer {
 
         internal static Font Poppins15;
 
-        internal static void LoadFont() {
+        internal static void LoadFont()
+        {
             byte[] fontData = Properties.Resources.Poppins_Regular;
             IntPtr fontPtr = System.Runtime.InteropServices.Marshal.AllocCoTaskMem(fontData.Length);
             System.Runtime.InteropServices.Marshal.Copy(fontData, 0, fontPtr, fontData.Length);
@@ -29,13 +32,17 @@ namespace Optimizer {
             Poppins15 = new Font(fonts.Families[0], 13f);
         }
 
-        internal static IEnumerable<string> GetAvailableFonts() {
+        internal static IEnumerable<string> GetAvailableFonts()
+        {
             return new InstalledFontCollection().Families.Select(x => x.Name);
         }
 
-        internal static void ChangeGlobalFont(string fontName) {
-            try {
-                using (RegistryKey fontsKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts", true)) {
+        internal static void ChangeGlobalFont(string fontName)
+        {
+            try
+            {
+                using (RegistryKey fontsKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts", true))
+                {
                     fontsKey.SetValue("Segoe UI (TrueType)", "");
                     fontsKey.SetValue("Segoe UI Bold (TrueType)", "");
                     fontsKey.SetValue("Segoe UI Bold Italic (TrueType)", "");
@@ -45,30 +52,39 @@ namespace Optimizer {
                     fontsKey.SetValue("Segoe UI Symbol (TrueType)", "");
                 }
 
-                using (RegistryKey fontSubstitutesKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes", true)) {
+                using (RegistryKey fontSubstitutesKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes", true))
+                {
                     fontSubstitutesKey.SetValue("Segoe UI", fontName);
                 }
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("FontHelper.ChangeGlobalFont", ex.Message, ex.StackTrace);
             }
         }
 
-        internal static string GetCurrentGlobalFont() {
-            try {
-                using (RegistryKey fontSubstitutesKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes", false)) {
+        internal static string GetCurrentGlobalFont()
+        {
+            try
+            {
+                using (RegistryKey fontSubstitutesKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes", false))
+                {
                     return fontSubstitutesKey.GetValue("Segoe UI", string.Empty) as string;
                 }
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("FontHelper.GetCurrentGlobalFont", ex.Message, ex.StackTrace);
                 return string.Empty;
             }
         }
 
-        internal static void RestoreDefaultGlobalFont() {
-            try {
-                using (RegistryKey fontsKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts", true)) {
+        internal static void RestoreDefaultGlobalFont()
+        {
+            try
+            {
+                using (RegistryKey fontsKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts", true))
+                {
                     fontsKey.SetValue("Segoe UI (TrueType)", "segoeui.ttf");
                     fontsKey.SetValue("Segoe UI Black (TrueType)", "seguibl.ttf");
                     fontsKey.SetValue("Segoe UI Black Italic (TrueType)", "seguibli.ttf");
@@ -91,11 +107,13 @@ namespace Optimizer {
                     fontsKey.SetValue("Segoe Script Bold (TrueType)", "segoescb.ttf");
                 }
 
-                using (RegistryKey fontSubstitutesKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes", true)) {
+                using (RegistryKey fontSubstitutesKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes", true))
+                {
                     fontSubstitutesKey.DeleteValue("Segoe UI", false);
                 }
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("FontHelper.RestoreDefaultGlobalFont", ex.Message, ex.StackTrace);
             }
         }

+ 18 - 9
Optimizer/Forms/AboutForm.cs

@@ -2,23 +2,28 @@
 using System.Diagnostics;
 using System.Windows.Forms;
 
-namespace Optimizer {
-    public sealed partial class AboutForm : Form {
-        public AboutForm() {
+namespace Optimizer
+{
+    public sealed partial class AboutForm : Form
+    {
+        public AboutForm()
+        {
             InitializeComponent();
             OptionsHelper.ApplyTheme(this);
 
             pictureBox1.BackColor = OptionsHelper.CurrentOptions.Theme;
         }
 
-        private void About_Load(object sender, EventArgs e) {
+        private void About_Load(object sender, EventArgs e)
+        {
             t1.Interval = 50;
             t2.Interval = 50;
 
             t1.Start();
         }
 
-        private void t1_Tick(object sender, EventArgs e) {
+        private void t1_Tick(object sender, EventArgs e)
+        {
             string s0 = "";
             string s1 = "O";
             string s2 = "Op";
@@ -30,7 +35,8 @@ namespace Optimizer {
             string s8 = "Optimize";
             string s9 = "Optimizer";
 
-            switch (l1.Text) {
+            switch (l1.Text)
+            {
                 case "":
                     l1.Text = s1;
                     break;
@@ -66,7 +72,8 @@ namespace Optimizer {
             }
         }
 
-        private void t2_Tick(object sender, EventArgs e) {
+        private void t2_Tick(object sender, EventArgs e)
+        {
             string s0 = "";
             string s1 = "d";
             string s2 = "de";
@@ -79,7 +86,8 @@ namespace Optimizer {
             string s9 = "deadmoon © ";
             string s10 = "deadmoon © ∞";
 
-            switch (l2.Text) {
+            switch (l2.Text)
+            {
                 case "":
                     l2.Text = s1;
                     break;
@@ -117,7 +125,8 @@ namespace Optimizer {
             }
         }
 
-        private void l2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) {
+        private void l2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
+        {
             Process.Start("https://github.com/hellzerg/optimizer");
         }
     }

+ 18 - 9
Optimizer/Forms/FileUnlockForm.cs

@@ -6,11 +6,14 @@ using System.IO;
 using System.Linq;
 using System.Windows.Forms;
 
-namespace Optimizer {
-    public sealed partial class FileUnlockForm : Form {
+namespace Optimizer
+{
+    public sealed partial class FileUnlockForm : Form
+    {
         List<Process> _lockingProcesses;
 
-        public FileUnlockForm() {
+        public FileUnlockForm()
+        {
             InitializeComponent();
             CheckForIllegalCrossThreadCalls = false;
             OptionsHelper.ApplyTheme(this);
@@ -19,11 +22,13 @@ namespace Optimizer {
             btnKill.Text = OptionsHelper.TranslationList["btnKill"].ToString();
         }
 
-        private void FileUnlockForm_Load(object sender, EventArgs e) {
+        private void FileUnlockForm_Load(object sender, EventArgs e)
+        {
 
         }
 
-        private void btnFind_Click(object sender, EventArgs e) {
+        private void btnFind_Click(object sender, EventArgs e)
+        {
             if (string.IsNullOrEmpty(txtFile.Text)) return;
             if (!File.Exists(txtFile.Text)) return;
 
@@ -35,13 +40,17 @@ namespace Optimizer {
             listProcesses.Items.AddRange(_lockingProcesses.Select(x => $"[{x.Id}] {x.ProcessName}").ToArray());
         }
 
-        private void btnKill_Click(object sender, EventArgs e) {
+        private void btnKill_Click(object sender, EventArgs e)
+        {
             if (listProcesses.CheckedItems.Count <= 0) return;
 
-            foreach (string x in listProcesses.CheckedItems) {
+            foreach (string x in listProcesses.CheckedItems)
+            {
                 IEnumerable<Process> prs = Process.GetProcesses().Where(pr => pr.ProcessName == x.Replace(x.Substring(0, x.IndexOf("]") + 1), string.Empty).Trim());
-                foreach (Process z in prs) {
-                    try {
+                foreach (Process z in prs)
+                {
+                    try
+                    {
                         z.Kill();
                     }
                     catch { continue; }

+ 114 - 46
Optimizer/Forms/FirstRunForm.Designer.cs

@@ -79,6 +79,10 @@ namespace Optimizer
             this.pictureBox20 = new System.Windows.Forms.PictureBox();
             this.radioBulgarian = new Optimizer.MoonRadio();
             this.pictureBox21 = new System.Windows.Forms.PictureBox();
+            this.radioVietnam = new Optimizer.MoonRadio();
+            this.pictureBox22 = new System.Windows.Forms.PictureBox();
+            this.radioUrdu = new Optimizer.MoonRadio();
+            this.pictureBox23 = new System.Windows.Forms.PictureBox();
             ((System.ComponentModel.ISupportInitialize)(this.pictureBox88)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.pictureBox87)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.pictureBox86)).BeginInit();
@@ -103,6 +107,8 @@ namespace Optimizer
             ((System.ComponentModel.ISupportInitialize)(this.pictureBox19)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.pictureBox20)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.pictureBox21)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.pictureBox22)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.pictureBox23)).BeginInit();
             this.SuspendLayout();
             // 
             // pictureBox88
@@ -151,10 +157,10 @@ namespace Optimizer
             this.btnStart.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
             this.btnStart.Font = new System.Drawing.Font("Segoe UI Semibold", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
             this.btnStart.ForeColor = System.Drawing.Color.White;
-            this.btnStart.Location = new System.Drawing.Point(11, 401);
-            this.btnStart.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
+            this.btnStart.Location = new System.Drawing.Point(11, 256);
+            this.btnStart.Margin = new System.Windows.Forms.Padding(2);
             this.btnStart.Name = "btnStart";
-            this.btnStart.Size = new System.Drawing.Size(314, 31);
+            this.btnStart.Size = new System.Drawing.Size(663, 31);
             this.btnStart.TabIndex = 86;
             this.btnStart.Tag = "themeable";
             this.btnStart.Text = "✓";
@@ -277,7 +283,7 @@ namespace Optimizer
             this.radioKorean.Font = new System.Drawing.Font("Segoe UI Semibold", 12F);
             this.radioKorean.ForeColor = System.Drawing.Color.White;
             this.radioKorean.Location = new System.Drawing.Point(222, 186);
-            this.radioKorean.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
+            this.radioKorean.Margin = new System.Windows.Forms.Padding(2);
             this.radioKorean.Name = "radioKorean";
             this.radioKorean.Size = new System.Drawing.Size(76, 25);
             this.radioKorean.TabIndex = 106;
@@ -292,7 +298,7 @@ namespace Optimizer
             this.radioTaiwan.Font = new System.Drawing.Font("Segoe UI Semibold", 12F);
             this.radioTaiwan.ForeColor = System.Drawing.Color.White;
             this.radioTaiwan.Location = new System.Drawing.Point(222, 157);
-            this.radioTaiwan.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
+            this.radioTaiwan.Margin = new System.Windows.Forms.Padding(2);
             this.radioTaiwan.Name = "radioTaiwan";
             this.radioTaiwan.Size = new System.Drawing.Size(96, 25);
             this.radioTaiwan.TabIndex = 104;
@@ -307,7 +313,7 @@ namespace Optimizer
             this.radioCzech.Font = new System.Drawing.Font("Segoe UI Semibold", 12F);
             this.radioCzech.ForeColor = System.Drawing.Color.White;
             this.radioCzech.Location = new System.Drawing.Point(53, 156);
-            this.radioCzech.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
+            this.radioCzech.Margin = new System.Windows.Forms.Padding(2);
             this.radioCzech.Name = "radioCzech";
             this.radioCzech.Size = new System.Drawing.Size(81, 25);
             this.radioCzech.TabIndex = 102;
@@ -322,7 +328,7 @@ namespace Optimizer
             this.radioChinese.Font = new System.Drawing.Font("Segoe UI Semibold", 12F);
             this.radioChinese.ForeColor = System.Drawing.Color.White;
             this.radioChinese.Location = new System.Drawing.Point(222, 127);
-            this.radioChinese.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
+            this.radioChinese.Margin = new System.Windows.Forms.Padding(2);
             this.radioChinese.Name = "radioChinese";
             this.radioChinese.Size = new System.Drawing.Size(96, 25);
             this.radioChinese.TabIndex = 100;
@@ -337,7 +343,7 @@ namespace Optimizer
             this.radioItalian.Font = new System.Drawing.Font("Segoe UI Semibold", 12F);
             this.radioItalian.ForeColor = System.Drawing.Color.White;
             this.radioItalian.Location = new System.Drawing.Point(53, 127);
-            this.radioItalian.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
+            this.radioItalian.Margin = new System.Windows.Forms.Padding(2);
             this.radioItalian.Name = "radioItalian";
             this.radioItalian.Size = new System.Drawing.Size(82, 25);
             this.radioItalian.TabIndex = 98;
@@ -352,7 +358,7 @@ namespace Optimizer
             this.radioFrench.Font = new System.Drawing.Font("Segoe UI Semibold", 12F);
             this.radioFrench.ForeColor = System.Drawing.Color.White;
             this.radioFrench.Location = new System.Drawing.Point(222, 96);
-            this.radioFrench.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
+            this.radioFrench.Margin = new System.Windows.Forms.Padding(2);
             this.radioFrench.Name = "radioFrench";
             this.radioFrench.Size = new System.Drawing.Size(86, 25);
             this.radioFrench.TabIndex = 96;
@@ -367,7 +373,7 @@ namespace Optimizer
             this.radioPortuguese.Font = new System.Drawing.Font("Segoe UI Semibold", 12F);
             this.radioPortuguese.ForeColor = System.Drawing.Color.White;
             this.radioPortuguese.Location = new System.Drawing.Point(221, 67);
-            this.radioPortuguese.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
+            this.radioPortuguese.Margin = new System.Windows.Forms.Padding(2);
             this.radioPortuguese.Name = "radioPortuguese";
             this.radioPortuguese.Size = new System.Drawing.Size(102, 25);
             this.radioPortuguese.TabIndex = 94;
@@ -382,7 +388,7 @@ namespace Optimizer
             this.radioSpanish.Font = new System.Drawing.Font("Segoe UI Semibold", 12F);
             this.radioSpanish.ForeColor = System.Drawing.Color.White;
             this.radioSpanish.Location = new System.Drawing.Point(221, 38);
-            this.radioSpanish.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
+            this.radioSpanish.Margin = new System.Windows.Forms.Padding(2);
             this.radioSpanish.Name = "radioSpanish";
             this.radioSpanish.Size = new System.Drawing.Size(84, 25);
             this.radioSpanish.TabIndex = 92;
@@ -397,7 +403,7 @@ namespace Optimizer
             this.radioGerman.Font = new System.Drawing.Font("Segoe UI Semibold", 12F);
             this.radioGerman.ForeColor = System.Drawing.Color.White;
             this.radioGerman.Location = new System.Drawing.Point(53, 98);
-            this.radioGerman.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
+            this.radioGerman.Margin = new System.Windows.Forms.Padding(2);
             this.radioGerman.Name = "radioGerman";
             this.radioGerman.Size = new System.Drawing.Size(87, 25);
             this.radioGerman.TabIndex = 90;
@@ -412,7 +418,7 @@ namespace Optimizer
             this.radioTurkish.Font = new System.Drawing.Font("Segoe UI Semibold", 12F);
             this.radioTurkish.ForeColor = System.Drawing.Color.White;
             this.radioTurkish.Location = new System.Drawing.Point(221, 9);
-            this.radioTurkish.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
+            this.radioTurkish.Margin = new System.Windows.Forms.Padding(2);
             this.radioTurkish.Name = "radioTurkish";
             this.radioTurkish.Size = new System.Drawing.Size(76, 25);
             this.radioTurkish.TabIndex = 88;
@@ -427,7 +433,7 @@ namespace Optimizer
             this.radioHellenic.Font = new System.Drawing.Font("Segoe UI Semibold", 12F);
             this.radioHellenic.ForeColor = System.Drawing.Color.White;
             this.radioHellenic.Location = new System.Drawing.Point(53, 69);
-            this.radioHellenic.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
+            this.radioHellenic.Margin = new System.Windows.Forms.Padding(2);
             this.radioHellenic.Name = "radioHellenic";
             this.radioHellenic.Size = new System.Drawing.Size(94, 25);
             this.radioHellenic.TabIndex = 84;
@@ -443,7 +449,7 @@ namespace Optimizer
             this.radioEnglish.Font = new System.Drawing.Font("Segoe UI Semibold", 12F, System.Drawing.FontStyle.Underline);
             this.radioEnglish.ForeColor = System.Drawing.Color.MediumOrchid;
             this.radioEnglish.Location = new System.Drawing.Point(53, 11);
-            this.radioEnglish.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
+            this.radioEnglish.Margin = new System.Windows.Forms.Padding(2);
             this.radioEnglish.Name = "radioEnglish";
             this.radioEnglish.Size = new System.Drawing.Size(79, 25);
             this.radioEnglish.TabIndex = 80;
@@ -459,7 +465,7 @@ namespace Optimizer
             this.radioRussian.Font = new System.Drawing.Font("Segoe UI Semibold", 12F);
             this.radioRussian.ForeColor = System.Drawing.Color.White;
             this.radioRussian.Location = new System.Drawing.Point(53, 40);
-            this.radioRussian.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
+            this.radioRussian.Margin = new System.Windows.Forms.Padding(2);
             this.radioRussian.Name = "radioRussian";
             this.radioRussian.Size = new System.Drawing.Size(90, 25);
             this.radioRussian.TabIndex = 79;
@@ -474,7 +480,7 @@ namespace Optimizer
             this.radioPolish.Font = new System.Drawing.Font("Segoe UI Semibold", 12F);
             this.radioPolish.ForeColor = System.Drawing.Color.White;
             this.radioPolish.Location = new System.Drawing.Point(53, 185);
-            this.radioPolish.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
+            this.radioPolish.Margin = new System.Windows.Forms.Padding(2);
             this.radioPolish.Name = "radioPolish";
             this.radioPolish.Size = new System.Drawing.Size(69, 25);
             this.radioPolish.TabIndex = 108;
@@ -499,8 +505,8 @@ namespace Optimizer
             this.radioArabic.AutoSize = true;
             this.radioArabic.Font = new System.Drawing.Font("Segoe UI Semibold", 12F);
             this.radioArabic.ForeColor = System.Drawing.Color.White;
-            this.radioArabic.Location = new System.Drawing.Point(53, 214);
-            this.radioArabic.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
+            this.radioArabic.Location = new System.Drawing.Point(386, 101);
+            this.radioArabic.Margin = new System.Windows.Forms.Padding(2);
             this.radioArabic.Name = "radioArabic";
             this.radioArabic.Size = new System.Drawing.Size(71, 25);
             this.radioArabic.TabIndex = 110;
@@ -512,7 +518,7 @@ namespace Optimizer
             // pictureBox12
             // 
             this.pictureBox12.Image = global::Optimizer.Properties.Resources.egypt;
-            this.pictureBox12.Location = new System.Drawing.Point(13, 217);
+            this.pictureBox12.Location = new System.Drawing.Point(346, 104);
             this.pictureBox12.Name = "pictureBox12";
             this.pictureBox12.Size = new System.Drawing.Size(32, 19);
             this.pictureBox12.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
@@ -525,8 +531,8 @@ namespace Optimizer
             this.radioKurdish.AutoSize = true;
             this.radioKurdish.Font = new System.Drawing.Font("Segoe UI Semibold", 12F);
             this.radioKurdish.ForeColor = System.Drawing.Color.White;
-            this.radioKurdish.Location = new System.Drawing.Point(222, 214);
-            this.radioKurdish.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
+            this.radioKurdish.Location = new System.Drawing.Point(555, 101);
+            this.radioKurdish.Margin = new System.Windows.Forms.Padding(2);
             this.radioKurdish.Name = "radioKurdish";
             this.radioKurdish.Size = new System.Drawing.Size(70, 25);
             this.radioKurdish.TabIndex = 112;
@@ -538,7 +544,7 @@ namespace Optimizer
             // pictureBox13
             // 
             this.pictureBox13.Image = global::Optimizer.Properties.Resources.kurdish;
-            this.pictureBox13.Location = new System.Drawing.Point(182, 217);
+            this.pictureBox13.Location = new System.Drawing.Point(515, 104);
             this.pictureBox13.Name = "pictureBox13";
             this.pictureBox13.Size = new System.Drawing.Size(32, 19);
             this.pictureBox13.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
@@ -551,8 +557,8 @@ namespace Optimizer
             this.radioHungarian.AutoSize = true;
             this.radioHungarian.Font = new System.Drawing.Font("Segoe UI Semibold", 12F);
             this.radioHungarian.ForeColor = System.Drawing.Color.White;
-            this.radioHungarian.Location = new System.Drawing.Point(53, 242);
-            this.radioHungarian.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
+            this.radioHungarian.Location = new System.Drawing.Point(386, 129);
+            this.radioHungarian.Margin = new System.Windows.Forms.Padding(2);
             this.radioHungarian.Name = "radioHungarian";
             this.radioHungarian.Size = new System.Drawing.Size(83, 25);
             this.radioHungarian.TabIndex = 114;
@@ -564,7 +570,7 @@ namespace Optimizer
             // pictureBox14
             // 
             this.pictureBox14.Image = global::Optimizer.Properties.Resources.hungary;
-            this.pictureBox14.Location = new System.Drawing.Point(13, 245);
+            this.pictureBox14.Location = new System.Drawing.Point(346, 132);
             this.pictureBox14.Name = "pictureBox14";
             this.pictureBox14.Size = new System.Drawing.Size(32, 19);
             this.pictureBox14.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
@@ -577,8 +583,8 @@ namespace Optimizer
             this.radioRomanian.AutoSize = true;
             this.radioRomanian.Font = new System.Drawing.Font("Segoe UI Semibold", 12F);
             this.radioRomanian.ForeColor = System.Drawing.Color.White;
-            this.radioRomanian.Location = new System.Drawing.Point(222, 243);
-            this.radioRomanian.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
+            this.radioRomanian.Location = new System.Drawing.Point(555, 130);
+            this.radioRomanian.Margin = new System.Windows.Forms.Padding(2);
             this.radioRomanian.Name = "radioRomanian";
             this.radioRomanian.Size = new System.Drawing.Size(87, 25);
             this.radioRomanian.TabIndex = 116;
@@ -590,7 +596,7 @@ namespace Optimizer
             // pictureBox15
             // 
             this.pictureBox15.Image = global::Optimizer.Properties.Resources.romania;
-            this.pictureBox15.Location = new System.Drawing.Point(182, 246);
+            this.pictureBox15.Location = new System.Drawing.Point(515, 133);
             this.pictureBox15.Name = "pictureBox15";
             this.pictureBox15.Size = new System.Drawing.Size(32, 19);
             this.pictureBox15.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
@@ -603,8 +609,8 @@ namespace Optimizer
             this.radioDutch.AutoSize = true;
             this.radioDutch.Font = new System.Drawing.Font("Segoe UI Semibold", 12F);
             this.radioDutch.ForeColor = System.Drawing.Color.White;
-            this.radioDutch.Location = new System.Drawing.Point(53, 271);
-            this.radioDutch.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
+            this.radioDutch.Location = new System.Drawing.Point(386, 158);
+            this.radioDutch.Margin = new System.Windows.Forms.Padding(2);
             this.radioDutch.Name = "radioDutch";
             this.radioDutch.Size = new System.Drawing.Size(112, 25);
             this.radioDutch.TabIndex = 118;
@@ -616,7 +622,7 @@ namespace Optimizer
             // pictureBox16
             // 
             this.pictureBox16.Image = global::Optimizer.Properties.Resources.dutch;
-            this.pictureBox16.Location = new System.Drawing.Point(13, 274);
+            this.pictureBox16.Location = new System.Drawing.Point(346, 161);
             this.pictureBox16.Name = "pictureBox16";
             this.pictureBox16.Size = new System.Drawing.Size(32, 19);
             this.pictureBox16.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
@@ -627,7 +633,7 @@ namespace Optimizer
             // pictureBox17
             // 
             this.pictureBox17.Image = global::Optimizer.Properties.Resources.japan;
-            this.pictureBox17.Location = new System.Drawing.Point(182, 274);
+            this.pictureBox17.Location = new System.Drawing.Point(515, 161);
             this.pictureBox17.Name = "pictureBox17";
             this.pictureBox17.Size = new System.Drawing.Size(32, 19);
             this.pictureBox17.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
@@ -640,8 +646,8 @@ namespace Optimizer
             this.radioJapanese.AutoSize = true;
             this.radioJapanese.Font = new System.Drawing.Font("Segoe UI Semibold", 12F);
             this.radioJapanese.ForeColor = System.Drawing.Color.White;
-            this.radioJapanese.Location = new System.Drawing.Point(222, 272);
-            this.radioJapanese.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
+            this.radioJapanese.Location = new System.Drawing.Point(555, 159);
+            this.radioJapanese.Margin = new System.Windows.Forms.Padding(2);
             this.radioJapanese.Name = "radioJapanese";
             this.radioJapanese.Size = new System.Drawing.Size(79, 25);
             this.radioJapanese.TabIndex = 120;
@@ -655,8 +661,8 @@ namespace Optimizer
             this.radioFarsi.AutoSize = true;
             this.radioFarsi.Font = new System.Drawing.Font("Segoe UI Semibold", 12F);
             this.radioFarsi.ForeColor = System.Drawing.Color.White;
-            this.radioFarsi.Location = new System.Drawing.Point(53, 300);
-            this.radioFarsi.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
+            this.radioFarsi.Location = new System.Drawing.Point(386, 12);
+            this.radioFarsi.Margin = new System.Windows.Forms.Padding(2);
             this.radioFarsi.Name = "radioFarsi";
             this.radioFarsi.Size = new System.Drawing.Size(69, 25);
             this.radioFarsi.TabIndex = 122;
@@ -668,7 +674,7 @@ namespace Optimizer
             // pictureBox18
             // 
             this.pictureBox18.Image = global::Optimizer.Properties.Resources.iran;
-            this.pictureBox18.Location = new System.Drawing.Point(13, 302);
+            this.pictureBox18.Location = new System.Drawing.Point(346, 14);
             this.pictureBox18.Name = "pictureBox18";
             this.pictureBox18.Size = new System.Drawing.Size(32, 19);
             this.pictureBox18.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
@@ -681,8 +687,8 @@ namespace Optimizer
             this.radioNepali.AutoSize = true;
             this.radioNepali.Font = new System.Drawing.Font("Segoe UI Semibold", 12F);
             this.radioNepali.ForeColor = System.Drawing.Color.White;
-            this.radioNepali.Location = new System.Drawing.Point(222, 302);
-            this.radioNepali.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
+            this.radioNepali.Location = new System.Drawing.Point(555, 14);
+            this.radioNepali.Margin = new System.Windows.Forms.Padding(2);
             this.radioNepali.Name = "radioNepali";
             this.radioNepali.Size = new System.Drawing.Size(67, 25);
             this.radioNepali.TabIndex = 124;
@@ -694,7 +700,7 @@ namespace Optimizer
             // pictureBox19
             // 
             this.pictureBox19.Image = global::Optimizer.Properties.Resources.nepal;
-            this.pictureBox19.Location = new System.Drawing.Point(182, 304);
+            this.pictureBox19.Location = new System.Drawing.Point(515, 16);
             this.pictureBox19.Name = "pictureBox19";
             this.pictureBox19.Size = new System.Drawing.Size(32, 19);
             this.pictureBox19.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
@@ -707,7 +713,7 @@ namespace Optimizer
             this.radioUkrainian.AutoSize = true;
             this.radioUkrainian.Font = new System.Drawing.Font("Segoe UI Semibold", 12F);
             this.radioUkrainian.ForeColor = System.Drawing.Color.White;
-            this.radioUkrainian.Location = new System.Drawing.Point(222, 331);
+            this.radioUkrainian.Location = new System.Drawing.Point(555, 43);
             this.radioUkrainian.Margin = new System.Windows.Forms.Padding(2);
             this.radioUkrainian.Name = "radioUkrainian";
             this.radioUkrainian.Size = new System.Drawing.Size(67, 25);
@@ -720,7 +726,7 @@ namespace Optimizer
             // pictureBox20
             // 
             this.pictureBox20.Image = global::Optimizer.Properties.Resources.ukraine;
-            this.pictureBox20.Location = new System.Drawing.Point(182, 333);
+            this.pictureBox20.Location = new System.Drawing.Point(515, 45);
             this.pictureBox20.Name = "pictureBox20";
             this.pictureBox20.Size = new System.Drawing.Size(32, 19);
             this.pictureBox20.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
@@ -732,7 +738,7 @@ namespace Optimizer
             this.radioBulgarian.AutoSize = true;
             this.radioBulgarian.Font = new System.Drawing.Font("Segoe UI Semibold", 12F);
             this.radioBulgarian.ForeColor = System.Drawing.Color.White;
-            this.radioBulgarian.Location = new System.Drawing.Point(53, 329);
+            this.radioBulgarian.Location = new System.Drawing.Point(386, 41);
             this.radioBulgarian.Margin = new System.Windows.Forms.Padding(2);
             this.radioBulgarian.Name = "radioBulgarian";
             this.radioBulgarian.Size = new System.Drawing.Size(69, 25);
@@ -745,13 +751,65 @@ namespace Optimizer
             // pictureBox21
             // 
             this.pictureBox21.Image = global::Optimizer.Properties.Resources.bulgaria;
-            this.pictureBox21.Location = new System.Drawing.Point(13, 331);
+            this.pictureBox21.Location = new System.Drawing.Point(346, 43);
             this.pictureBox21.Name = "pictureBox21";
             this.pictureBox21.Size = new System.Drawing.Size(32, 19);
             this.pictureBox21.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
             this.pictureBox21.TabIndex = 125;
             this.pictureBox21.TabStop = false;
             // 
+            // radioVietnam
+            // 
+            this.radioVietnam.AutoSize = true;
+            this.radioVietnam.Font = new System.Drawing.Font("Segoe UI Semibold", 12F);
+            this.radioVietnam.ForeColor = System.Drawing.Color.White;
+            this.radioVietnam.Location = new System.Drawing.Point(386, 70);
+            this.radioVietnam.Margin = new System.Windows.Forms.Padding(2);
+            this.radioVietnam.Name = "radioVietnam";
+            this.radioVietnam.Size = new System.Drawing.Size(113, 25);
+            this.radioVietnam.TabIndex = 130;
+            this.radioVietnam.Tag = "";
+            this.radioVietnam.Text = "Vietnamese";
+            this.radioVietnam.UseVisualStyleBackColor = true;
+            this.radioVietnam.CheckedChanged += new System.EventHandler(this.radioVietnam_CheckedChanged);
+            // 
+            // pictureBox22
+            // 
+            this.pictureBox22.Image = global::Optimizer.Properties.Resources.vietnam;
+            this.pictureBox22.Location = new System.Drawing.Point(346, 72);
+            this.pictureBox22.Name = "pictureBox22";
+            this.pictureBox22.Size = new System.Drawing.Size(32, 19);
+            this.pictureBox22.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
+            this.pictureBox22.TabIndex = 129;
+            this.pictureBox22.TabStop = false;
+            this.pictureBox22.Click += new System.EventHandler(this.pictureBox22_Click);
+            // 
+            // radioUrdu
+            // 
+            this.radioUrdu.AutoSize = true;
+            this.radioUrdu.Font = new System.Drawing.Font("Segoe UI Semibold", 12F);
+            this.radioUrdu.ForeColor = System.Drawing.Color.White;
+            this.radioUrdu.Location = new System.Drawing.Point(554, 72);
+            this.radioUrdu.Margin = new System.Windows.Forms.Padding(2);
+            this.radioUrdu.Name = "radioUrdu";
+            this.radioUrdu.Size = new System.Drawing.Size(64, 25);
+            this.radioUrdu.TabIndex = 132;
+            this.radioUrdu.Tag = "";
+            this.radioUrdu.Text = "Urdu";
+            this.radioUrdu.UseVisualStyleBackColor = true;
+            this.radioUrdu.CheckedChanged += new System.EventHandler(this.radioUrdu_CheckedChanged);
+            // 
+            // pictureBox23
+            // 
+            this.pictureBox23.Image = global::Optimizer.Properties.Resources.pakistan;
+            this.pictureBox23.Location = new System.Drawing.Point(514, 74);
+            this.pictureBox23.Name = "pictureBox23";
+            this.pictureBox23.Size = new System.Drawing.Size(32, 19);
+            this.pictureBox23.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
+            this.pictureBox23.TabIndex = 131;
+            this.pictureBox23.TabStop = false;
+            this.pictureBox23.Click += new System.EventHandler(this.pictureBox23_Click);
+            // 
             // FirstRunForm
             // 
             this.AcceptButton = this.btnStart;
@@ -759,7 +817,11 @@ namespace Optimizer
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
             this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
             this.CancelButton = this.btnStart;
-            this.ClientSize = new System.Drawing.Size(336, 443);
+            this.ClientSize = new System.Drawing.Size(685, 298);
+            this.Controls.Add(this.radioUrdu);
+            this.Controls.Add(this.pictureBox23);
+            this.Controls.Add(this.radioVietnam);
+            this.Controls.Add(this.pictureBox22);
             this.Controls.Add(this.radioUkrainian);
             this.Controls.Add(this.pictureBox20);
             this.Controls.Add(this.radioBulgarian);
@@ -845,6 +907,8 @@ namespace Optimizer
             ((System.ComponentModel.ISupportInitialize)(this.pictureBox19)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.pictureBox20)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.pictureBox21)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.pictureBox22)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.pictureBox23)).EndInit();
             this.ResumeLayout(false);
             this.PerformLayout();
 
@@ -901,5 +965,9 @@ namespace Optimizer
         private System.Windows.Forms.PictureBox pictureBox20;
         private MoonRadio radioBulgarian;
         private System.Windows.Forms.PictureBox pictureBox21;
+        private MoonRadio radioVietnam;
+        private System.Windows.Forms.PictureBox pictureBox22;
+        private MoonRadio radioUrdu;
+        private System.Windows.Forms.PictureBox pictureBox23;
     }
 }

+ 128 - 51
Optimizer/Forms/FirstRunForm.cs

@@ -1,19 +1,24 @@
 using System;
 using System.Windows.Forms;
 
-namespace Optimizer {
-    public sealed partial class FirstRunForm : Form {
-        public FirstRunForm() {
+namespace Optimizer
+{
+    public sealed partial class FirstRunForm : Form
+    {
+        public FirstRunForm()
+        {
             InitializeComponent();
             this.DoubleBuffered = true;
             OptionsHelper.ApplyTheme(this);
         }
 
-        private void btnStart_Click(object sender, EventArgs e) {
+        private void btnStart_Click(object sender, EventArgs e)
+        {
             this.Close();
         }
 
-        private void FirstRunForm_Load(object sender, EventArgs e) {
+        private void FirstRunForm_Load(object sender, EventArgs e)
+        {
             radioArabic.Text = Constants.ARABIC;
             radioPortuguese.Text = Constants.PORTUGUESE;
             radioChinese.Text = Constants.CHINESE;
@@ -38,238 +43,310 @@ namespace Optimizer {
             radioUkrainian.Text = Constants.UKRAINIAN;
             radioBulgarian.Text = Constants.BULGARIAN;
             radioEnglish.Text = Constants.ENGLISH;
+            radioUrdu.Text = Constants.URDU;
+            radioVietnam.Text = Constants.VIETNAMESE;
         }
 
-        private void pictureBox86_Click(object sender, EventArgs e) {
+        private void pictureBox86_Click(object sender, EventArgs e)
+        {
             radioEnglish.PerformClick();
         }
 
-        private void pictureBox87_Click(object sender, EventArgs e) {
+        private void pictureBox87_Click(object sender, EventArgs e)
+        {
             radioRussian.PerformClick();
         }
 
-        private void pictureBox88_Click(object sender, EventArgs e) {
+        private void pictureBox88_Click(object sender, EventArgs e)
+        {
             radioHellenic.PerformClick();
         }
 
-        private void radioEnglish_CheckedChanged(object sender, EventArgs e) {
+        private void radioEnglish_CheckedChanged(object sender, EventArgs e)
+        {
             OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.EN;
             OptionsHelper.SaveSettings();
             OptionsHelper.LoadTranslation();
         }
 
-        private void radioRussian_CheckedChanged(object sender, EventArgs e) {
+        private void radioRussian_CheckedChanged(object sender, EventArgs e)
+        {
             OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.RU;
             OptionsHelper.SaveSettings();
             OptionsHelper.LoadTranslation();
         }
 
-        private void radioHellenic_CheckedChanged(object sender, EventArgs e) {
+        private void radioHellenic_CheckedChanged(object sender, EventArgs e)
+        {
             OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.EL;
             OptionsHelper.SaveSettings();
             OptionsHelper.LoadTranslation();
         }
 
-        private void pictureBox1_Click(object sender, EventArgs e) {
+        private void pictureBox1_Click(object sender, EventArgs e)
+        {
             radioTurkish.PerformClick();
         }
 
-        private void radioTurkish_CheckedChanged(object sender, EventArgs e) {
+        private void radioTurkish_CheckedChanged(object sender, EventArgs e)
+        {
             OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.TR;
             OptionsHelper.SaveSettings();
             OptionsHelper.LoadTranslation();
         }
 
-        private void radioGerman_CheckedChanged(object sender, EventArgs e) {
+        private void radioGerman_CheckedChanged(object sender, EventArgs e)
+        {
             OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.DE;
             OptionsHelper.SaveSettings();
             OptionsHelper.LoadTranslation();
         }
 
-        private void pictureBox2_Click(object sender, EventArgs e) {
+        private void pictureBox2_Click(object sender, EventArgs e)
+        {
             radioGerman.PerformClick();
         }
 
-        private void pictureBox3_Click(object sender, EventArgs e) {
+        private void pictureBox3_Click(object sender, EventArgs e)
+        {
             radioSpanish.PerformClick();
         }
 
-        private void radioSpanish_CheckedChanged(object sender, EventArgs e) {
+        private void radioSpanish_CheckedChanged(object sender, EventArgs e)
+        {
             OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.ES;
             OptionsHelper.SaveSettings();
             OptionsHelper.LoadTranslation();
         }
 
-        private void radioPortuguese_CheckedChanged(object sender, EventArgs e) {
+        private void radioPortuguese_CheckedChanged(object sender, EventArgs e)
+        {
             OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.PT;
             OptionsHelper.SaveSettings();
             OptionsHelper.LoadTranslation();
         }
 
-        private void pictureBox4_Click(object sender, EventArgs e) {
+        private void pictureBox4_Click(object sender, EventArgs e)
+        {
             radioPortuguese.PerformClick();
         }
 
-        private void radioFrench_CheckedChanged(object sender, EventArgs e) {
+        private void radioFrench_CheckedChanged(object sender, EventArgs e)
+        {
             OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.FR;
             OptionsHelper.SaveSettings();
             OptionsHelper.LoadTranslation();
         }
 
-        private void pictureBox5_Click(object sender, EventArgs e) {
+        private void pictureBox5_Click(object sender, EventArgs e)
+        {
             radioFrench.PerformClick();
         }
 
-        private void radioitalian_CheckedChanged(object sender, EventArgs e) {
+        private void radioitalian_CheckedChanged(object sender, EventArgs e)
+        {
             OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.IT;
             OptionsHelper.SaveSettings();
             OptionsHelper.LoadTranslation();
         }
 
-        private void pictureBox6_Click(object sender, EventArgs e) {
+        private void pictureBox6_Click(object sender, EventArgs e)
+        {
             radioItalian.PerformClick();
         }
 
-        private void pictureBox7_Click(object sender, EventArgs e) {
+        private void pictureBox7_Click(object sender, EventArgs e)
+        {
             radioChinese.PerformClick();
         }
 
-        private void radioChinese_CheckedChanged(object sender, EventArgs e) {
+        private void radioChinese_CheckedChanged(object sender, EventArgs e)
+        {
             OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.CN;
             OptionsHelper.SaveSettings();
             OptionsHelper.LoadTranslation();
         }
 
-        private void pictureBox8_Click(object sender, EventArgs e) {
+        private void pictureBox8_Click(object sender, EventArgs e)
+        {
             radioCzech.PerformClick();
         }
 
-        private void radioCzech_CheckedChanged(object sender, EventArgs e) {
+        private void radioCzech_CheckedChanged(object sender, EventArgs e)
+        {
             OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.CZ;
             OptionsHelper.SaveSettings();
             OptionsHelper.LoadTranslation();
         }
 
-        private void radioTaiwan_CheckedChanged(object sender, EventArgs e) {
+        private void radioTaiwan_CheckedChanged(object sender, EventArgs e)
+        {
             OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.TW;
             OptionsHelper.SaveSettings();
             OptionsHelper.LoadTranslation();
         }
 
-        private void pictureBox9_Click(object sender, EventArgs e) {
+        private void pictureBox9_Click(object sender, EventArgs e)
+        {
             radioTaiwan.PerformClick();
         }
 
-        private void radioKorean_CheckedChanged(object sender, EventArgs e) {
+        private void radioKorean_CheckedChanged(object sender, EventArgs e)
+        {
             OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.KO;
             OptionsHelper.SaveSettings();
             OptionsHelper.LoadTranslation();
         }
 
-        private void pictureBox10_Click(object sender, EventArgs e) {
+        private void pictureBox10_Click(object sender, EventArgs e)
+        {
             radioChinese.PerformClick();
         }
 
-        private void pictureBox11_Click(object sender, EventArgs e) {
+        private void pictureBox11_Click(object sender, EventArgs e)
+        {
             radioPolish.PerformClick();
         }
 
-        private void radioPolish_CheckedChanged(object sender, EventArgs e) {
+        private void radioPolish_CheckedChanged(object sender, EventArgs e)
+        {
             OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.PL;
             OptionsHelper.SaveSettings();
             OptionsHelper.LoadTranslation();
         }
 
-        private void radioArabic_CheckedChanged(object sender, EventArgs e) {
+        private void radioArabic_CheckedChanged(object sender, EventArgs e)
+        {
             OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.AR;
             OptionsHelper.SaveSettings();
             OptionsHelper.LoadTranslation();
         }
 
-        private void pictureBox12_Click(object sender, EventArgs e) {
+        private void pictureBox12_Click(object sender, EventArgs e)
+        {
             radioArabic.PerformClick();
         }
 
-        private void pictureBox13_Click(object sender, EventArgs e) {
+        private void pictureBox13_Click(object sender, EventArgs e)
+        {
             radioKurdish.PerformClick();
         }
 
-        private void radioKurdish_CheckedChanged(object sender, EventArgs e) {
+        private void radioKurdish_CheckedChanged(object sender, EventArgs e)
+        {
             OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.KU;
             OptionsHelper.SaveSettings();
             OptionsHelper.LoadTranslation();
         }
 
-        private void pictureBox14_Click(object sender, EventArgs e) {
+        private void pictureBox14_Click(object sender, EventArgs e)
+        {
             radioHungarian.PerformClick();
         }
 
-        private void radioHungarian_CheckedChanged(object sender, EventArgs e) {
+        private void radioHungarian_CheckedChanged(object sender, EventArgs e)
+        {
             OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.HU;
             OptionsHelper.SaveSettings();
             OptionsHelper.LoadTranslation();
         }
 
-        private void radioRomanian_CheckedChanged(object sender, EventArgs e) {
+        private void radioRomanian_CheckedChanged(object sender, EventArgs e)
+        {
             OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.RO;
             OptionsHelper.SaveSettings();
             OptionsHelper.LoadTranslation();
         }
 
-        private void pictureBox15_Click(object sender, EventArgs e) {
+        private void pictureBox15_Click(object sender, EventArgs e)
+        {
             radioRomanian.PerformClick();
         }
 
-        private void radioDutch_CheckedChanged(object sender, EventArgs e) {
+        private void radioDutch_CheckedChanged(object sender, EventArgs e)
+        {
             OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.NL;
             OptionsHelper.SaveSettings();
             OptionsHelper.LoadTranslation();
         }
 
-        private void pictureBox16_Click(object sender, EventArgs e) {
+        private void pictureBox16_Click(object sender, EventArgs e)
+        {
             radioDutch.PerformClick();
         }
 
-        private void radioJapanese_CheckedChanged(object sender, EventArgs e) {
+        private void radioJapanese_CheckedChanged(object sender, EventArgs e)
+        {
             OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.JA;
             OptionsHelper.SaveSettings();
             OptionsHelper.LoadTranslation();
         }
 
-        private void pictureBox17_Click(object sender, EventArgs e) {
+        private void pictureBox17_Click(object sender, EventArgs e)
+        {
             radioJapanese.PerformClick();
         }
 
-        private void radioFarsi_CheckedChanged(object sender, EventArgs e) {
+        private void radioFarsi_CheckedChanged(object sender, EventArgs e)
+        {
             OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.FA;
             OptionsHelper.SaveSettings();
             OptionsHelper.LoadTranslation();
         }
 
-        private void pictureBox18_Click(object sender, EventArgs e) {
+        private void pictureBox18_Click(object sender, EventArgs e)
+        {
             radioFarsi.PerformClick();
         }
 
-        private void pictureBox19_Click(object sender, EventArgs e) {
+        private void pictureBox19_Click(object sender, EventArgs e)
+        {
             radioNepali.PerformClick();
         }
 
-        private void radioNepali_CheckedChanged(object sender, EventArgs e) {
+        private void radioNepali_CheckedChanged(object sender, EventArgs e)
+        {
             OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.NE;
             OptionsHelper.SaveSettings();
             OptionsHelper.LoadTranslation();
         }
 
-        private void radioBulgarian_CheckedChanged(object sender, EventArgs e) {
+        private void radioBulgarian_CheckedChanged(object sender, EventArgs e)
+        {
             OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.BG;
             OptionsHelper.SaveSettings();
             OptionsHelper.LoadTranslation();
         }
 
-        private void radioUkrainian_CheckedChanged(object sender, EventArgs e) {
+        private void radioUkrainian_CheckedChanged(object sender, EventArgs e)
+        {
             OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.UA;
             OptionsHelper.SaveSettings();
             OptionsHelper.LoadTranslation();
         }
+
+        private void radioVietnam_CheckedChanged(object sender, EventArgs e)
+        {
+            OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.VN;
+            OptionsHelper.SaveSettings();
+            OptionsHelper.LoadTranslation();
+        }
+
+        private void pictureBox22_Click(object sender, EventArgs e)
+        {
+            radioVietnam.PerformClick();
+        }
+
+        private void pictureBox23_Click(object sender, EventArgs e)
+        {
+            radioUrdu.PerformClick();
+        }
+
+        private void radioUrdu_CheckedChanged(object sender, EventArgs e)
+        {
+            OptionsHelper.CurrentOptions.LanguageCode = LanguageCode.UR;
+            OptionsHelper.SaveSettings();
+            OptionsHelper.LoadTranslation();
+        }
     }
 }

+ 30 - 15
Optimizer/Forms/HelperForm.cs

@@ -3,31 +3,40 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Windows.Forms;
 
-namespace Optimizer {
-    public sealed partial class HelperForm : System.Windows.Forms.Form {
+namespace Optimizer
+{
+    public sealed partial class HelperForm : System.Windows.Forms.Form
+    {
         MainForm _main;
         MessageType _type;
 
-        private void Confirm() {
-            if (_type == MessageType.Error) {
+        private void Confirm()
+        {
+            if (_type == MessageType.Error)
+            {
                 this.Close();
             }
-            if (_type == MessageType.Startup) {
+            if (_type == MessageType.Startup)
+            {
                 _main.RemoveAllStartupItems();
             }
-            if (_type == MessageType.Restart) {
+            if (_type == MessageType.Restart)
+            {
                 OptionsHelper.SaveSettings();
                 Utilities.Reboot();
             }
-            if (_type == MessageType.Hosts) {
+            if (_type == MessageType.Hosts)
+            {
                 _main.RemoveAllHostsEntries();
             }
-            if (_type == MessageType.Integrator) {
+            if (_type == MessageType.Integrator)
+            {
                 _main.RemoveAllDesktopItems();
             }
         }
 
-        internal HelperForm(MainForm main, MessageType m, string text) {
+        internal HelperForm(MainForm main, MessageType m, string text)
+        {
             InitializeComponent();
             OptionsHelper.ApplyTheme(this);
 
@@ -36,7 +45,8 @@ namespace Optimizer {
 
             lblMessage.Text = text;
 
-            if (_type == MessageType.Error) {
+            if (_type == MessageType.Error)
+            {
                 btnNo.Visible = false;
                 btnYes.Text = OptionsHelper.TranslationList["btnOk"];
 
@@ -50,26 +60,31 @@ namespace Optimizer {
             if (OptionsHelper.CurrentOptions.LanguageCode != LanguageCode.EN) Translate();
         }
 
-        private void btnNo_Click(object sender, EventArgs e) {
+        private void btnNo_Click(object sender, EventArgs e)
+        {
             this.Close();
         }
 
-        private void btnYes_Click(object sender, EventArgs e) {
+        private void btnYes_Click(object sender, EventArgs e)
+        {
             Confirm();
             this.Close();
         }
 
-        private void Messager_Load(object sender, EventArgs e) {
+        private void Messager_Load(object sender, EventArgs e)
+        {
             CheckForIllegalCrossThreadCalls = false;
             this.BringToFront();
         }
 
-        private void Translate() {
+        private void Translate()
+        {
             Dictionary<string, string> translationList = OptionsHelper.TranslationList.ToObject<Dictionary<string, string>>();
 
             Control element;
 
-            foreach (var x in translationList) {
+            foreach (var x in translationList)
+            {
                 if (x.Key == null || x.Key == string.Empty) continue;
                 element = this.Controls.Find(x.Key, true).FirstOrDefault();
 

+ 18 - 9
Optimizer/Forms/HostsEditorForm.cs

@@ -3,15 +3,19 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Windows.Forms;
 
-namespace Optimizer {
-    public sealed partial class HostsEditorForm : Form {
+namespace Optimizer
+{
+    public sealed partial class HostsEditorForm : Form
+    {
         string[] _toSave = null;
 
-        public HostsEditorForm() {
+        public HostsEditorForm()
+        {
             InitializeComponent();
             OptionsHelper.ApplyTheme(this);
 
-            if (HostsHelper.GetReadOnly()) {
+            if (HostsHelper.GetReadOnly())
+            {
                 savebtn.Enabled = false;
             }
 
@@ -19,7 +23,8 @@ namespace Optimizer {
             if (OptionsHelper.CurrentOptions.LanguageCode != LanguageCode.EN) Translate();
         }
 
-        private void HostsEditor_Load(object sender, EventArgs e) {
+        private void HostsEditor_Load(object sender, EventArgs e)
+        {
             //foreach (string line in HostsHelper.ReadHosts())
             //{
             //    textBox1.Text += line + HostsHelper.NewLine;
@@ -30,13 +35,15 @@ namespace Optimizer {
             textBox1.Focus();
         }
 
-        private void Translate() {
+        private void Translate()
+        {
             this.Text = OptionsHelper.TranslationList["HostsEditorForm"];
             Dictionary<string, string> translationList = OptionsHelper.TranslationList.ToObject<Dictionary<string, string>>();
 
             Control element;
 
-            foreach (var x in translationList) {
+            foreach (var x in translationList)
+            {
                 if (x.Key == null || x.Key == string.Empty) continue;
                 element = this.Controls.Find(x.Key, true).FirstOrDefault();
 
@@ -46,11 +53,13 @@ namespace Optimizer {
             }
         }
 
-        private void button1_Click(object sender, EventArgs e) {
+        private void button1_Click(object sender, EventArgs e)
+        {
             this.Close();
         }
 
-        private void button7_Click(object sender, EventArgs e) {
+        private void button7_Click(object sender, EventArgs e)
+        {
             _toSave = textBox1.Lines;
             HostsHelper.SaveHosts(_toSave);
 

+ 18 - 9
Optimizer/Forms/InfoForm.cs

@@ -3,9 +3,12 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Windows.Forms;
 
-namespace Optimizer {
-    public sealed partial class InfoForm : Form {
-        public InfoForm(string info) {
+namespace Optimizer
+{
+    public sealed partial class InfoForm : Form
+    {
+        public InfoForm(string info)
+        {
             InitializeComponent();
             CheckForIllegalCrossThreadCalls = false;
 
@@ -17,12 +20,14 @@ namespace Optimizer {
             if (OptionsHelper.CurrentOptions.LanguageCode != LanguageCode.EN) Translate();
         }
 
-        private void Translate() {
+        private void Translate()
+        {
             Dictionary<string, string> translationList = OptionsHelper.TranslationList.ToObject<Dictionary<string, string>>();
 
             Control element;
 
-            foreach (var x in translationList) {
+            foreach (var x in translationList)
+            {
                 if (x.Key == null || x.Key == string.Empty) continue;
                 element = this.Controls.Find(x.Key, true).FirstOrDefault();
 
@@ -32,16 +37,20 @@ namespace Optimizer {
             }
         }
 
-        private void btnOK_Click(object sender, EventArgs e) {
+        private void btnOK_Click(object sender, EventArgs e)
+        {
             this.Close();
         }
 
-        private void Info_Load(object sender, EventArgs e) {
+        private void Info_Load(object sender, EventArgs e)
+        {
 
         }
 
-        private void copyIPB_Click(object sender, EventArgs e) {
-            try {
+        private void copyIPB_Click(object sender, EventArgs e)
+        {
+            try
+            {
                 Clipboard.SetText(txtInfo.Text);
             }
             catch { }

Datei-Diff unterdrückt, da er zu groß ist
+ 5362 - 4920
Optimizer/Forms/MainForm.Designer.cs


Datei-Diff unterdrückt, da er zu groß ist
+ 401 - 155
Optimizer/Forms/MainForm.cs


+ 2 - 2
Optimizer/Forms/MainForm.resx

@@ -458,7 +458,7 @@ any application only by typing your desired keyword.</value>
   <data name="pictureBox7.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
-        wQAADsEBuJFr7QAAAWVJREFUaEPtlktuQjEQBL3gMO8Wuf+pggwtAaGMxvOxXyRKqhXtmR6RRGkZHMfx
+        vAAADrwBlbxySQAAAWVJREFUaEPtlktuQjEQBL3gMO8Wuf+pggwtAaGMxvOxXyRKqhXtmR6RRGkZHMfx
         61HP90CFImpsPbQ8U63J56e1y99llWptDrRghVofgwavVDV80MAdqs4cNGinqmWDBpxB1fsMPTyTqsnQ
         A48E5Tz2P+eq+w49sDoDvZ9RdV+hoEUvNGtG1X5AIYsRaJ5V1b5DAasRaN6Mqh//5X2GPu+OoKxV1Y8f
         YJWgnNWl5bsE5Wb8HmCVoNysSw4YQdlZyw8YQVmPpQeMoKzXsgNGUDZiyQEjKBt12QGUy3DJAZTJMv0A
@@ -761,7 +761,7 @@ any application only by typing your desired keyword.</value>
         AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
         LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
         ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAC0
-        GgAAAk1TRnQBSQFMAgEBCQEAAYABDwGAAQ8BIAEAASABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAGA
+        GgAAAk1TRnQBSQFMAgEBCQEAAcgBDwHIAQ8BIAEAASABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAGA
         AwABYAMAAQEBAAEgBgABwP8A/wD/AP8A/wD/AP8A/wAeAANHAYB0//8AiQADRwGAdP//AIkAAyoBQANH
         AYADRwGAA0cBgANHAYADRwGAA0cBgANHAYADRwGAA0cBgANHAYADRwGAA0cBgANHAYADRwGAA0cBgANH
         AYADRwGAA0cBgANHAYADRwGAA0cBgANHAYADRwGAA0cBgANHAYADRwGAA0cBgANHAYADRwGA/wD/AP8A

+ 6 - 3
Optimizer/Forms/SplashForm.cs

@@ -1,8 +1,11 @@
 using System.Windows.Forms;
 
-namespace Optimizer {
-    public sealed partial class SplashForm : Form {
-        public SplashForm() {
+namespace Optimizer
+{
+    public sealed partial class SplashForm : Form
+    {
+        public SplashForm()
+        {
             InitializeComponent();
 
             this.DoubleBuffered = true;

+ 22 - 11
Optimizer/Forms/StartupPreviewForm.cs

@@ -4,11 +4,14 @@ using System.IO;
 using System.Linq;
 using System.Windows.Forms;
 
-namespace Optimizer {
-    public sealed partial class StartupPreviewForm : Form {
+namespace Optimizer
+{
+    public sealed partial class StartupPreviewForm : Form
+    {
         string _token = string.Empty;
 
-        public StartupPreviewForm(List<BackupStartupItem> items) {
+        public StartupPreviewForm(List<BackupStartupItem> items)
+        {
             InitializeComponent();
 
             CheckForIllegalCrossThreadCalls = false;
@@ -17,11 +20,14 @@ namespace Optimizer {
             // translate UI elements
             if (OptionsHelper.CurrentOptions.LanguageCode != LanguageCode.EN) Translate();
 
-            foreach (BackupStartupItem x in items) {
-                if (File.Exists(SanitizePath(x.FileLocation))) {
+            foreach (BackupStartupItem x in items)
+            {
+                if (File.Exists(SanitizePath(x.FileLocation)))
+                {
                     _token = "[✓] ";
                 }
-                else {
+                else
+                {
                     _token = "[⚠] ";
                 }
 
@@ -29,14 +35,16 @@ namespace Optimizer {
             }
         }
 
-        private void Translate() {
+        private void Translate()
+        {
             this.Text = OptionsHelper.TranslationList["StartupPreviewForm"];
 
             Dictionary<string, string> translationList = OptionsHelper.TranslationList.ToObject<Dictionary<string, string>>();
 
             Control element;
 
-            foreach (var x in translationList) {
+            foreach (var x in translationList)
+            {
                 if (x.Key == null || x.Key == string.Empty) continue;
                 element = this.Controls.Find(x.Key, true).FirstOrDefault();
 
@@ -46,15 +54,18 @@ namespace Optimizer {
             }
         }
 
-        private void StartupPreviewForm_Load(object sender, EventArgs e) {
+        private void StartupPreviewForm_Load(object sender, EventArgs e)
+        {
             this.Focus();
         }
 
-        private string SanitizePath(string s) {
+        private string SanitizePath(string s)
+        {
             s = s.Replace("\"", string.Empty);
             int i;
 
-            while (s.Contains("/")) {
+            while (s.Contains("/"))
+            {
                 i = s.LastIndexOf("/");
                 s = s.Substring(0, i);
             }

+ 64 - 32
Optimizer/Forms/StartupRestoreForm.cs

@@ -6,11 +6,14 @@ using System.IO;
 using System.Linq;
 using System.Windows.Forms;
 
-namespace Optimizer {
-    public sealed partial class StartupRestoreForm : Form {
+namespace Optimizer
+{
+    public sealed partial class StartupRestoreForm : Form
+    {
         string[] _backups;
 
-        public StartupRestoreForm() {
+        public StartupRestoreForm()
+        {
             InitializeComponent();
 
             CheckForIllegalCrossThreadCalls = false;
@@ -22,28 +25,32 @@ namespace Optimizer {
             RefreshBackups();
         }
 
-        private void RefreshBackups() {
+        private void RefreshBackups()
+        {
             _backups = Directory.GetFiles(CoreHelper.StartupItemsBackupFolder, "*.json");
             Array.Reverse(_backups);
             listRestoreItems.Items.Clear();
 
             txtNoBackups.Visible = _backups.Length == 0;
 
-            foreach (string x in _backups) {
+            foreach (string x in _backups)
+            {
                 listRestoreItems.Items.Add(Path.GetFileNameWithoutExtension(x));
             }
 
             if (_backups.Any()) listRestoreItems.SelectedIndex = 0;
         }
 
-        private void Translate() {
+        private void Translate()
+        {
             this.Text = OptionsHelper.TranslationList["StartupRestoreForm"];
 
             Dictionary<string, string> translationList = OptionsHelper.TranslationList.ToObject<Dictionary<string, string>>();
 
             Control element;
 
-            foreach (var x in translationList) {
+            foreach (var x in translationList)
+            {
                 if (x.Key == null || x.Key == string.Empty) continue;
                 element = this.Controls.Find(x.Key, true).FirstOrDefault();
 
@@ -53,18 +60,24 @@ namespace Optimizer {
             }
         }
 
-        private void StartupRestoreForm_Load(object sender, EventArgs e) {
+        private void StartupRestoreForm_Load(object sender, EventArgs e)
+        {
 
         }
 
         // DeleteStartupBackup
-        private void button2_Click(object sender, EventArgs e) {
-            if (listRestoreItems.SelectedIndex > -1) {
-                if (MessageBox.Show("Do you really want to delete this backup?", "Delete Backup?", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) {
-                    try {
+        private void button2_Click(object sender, EventArgs e)
+        {
+            if (listRestoreItems.SelectedIndex > -1)
+            {
+                if (MessageBox.Show("Do you really want to delete this backup?", "Delete Backup?", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
+                {
+                    try
+                    {
                         File.Delete(_backups[listRestoreItems.SelectedIndex]);
                     }
-                    catch (Exception ex) {
+                    catch (Exception ex)
+                    {
                         Logger.LogError("StartupRestoreForm.DeleteStartupBackup", ex.Message, ex.StackTrace);
                     }
 
@@ -73,69 +86,88 @@ namespace Optimizer {
             }
         }
 
-        private void ShowPreview() {
-            if (listRestoreItems.SelectedIndex > -1) {
+        private void ShowPreview()
+        {
+            if (listRestoreItems.SelectedIndex > -1)
+            {
                 List<BackupStartupItem> backup = JsonConvert.DeserializeObject<List<BackupStartupItem>>(File.ReadAllText(_backups[listRestoreItems.SelectedIndex]));
                 StartupPreviewForm f = new StartupPreviewForm(backup);
                 f.ShowDialog(this);
             }
         }
 
-        private void button39_Click(object sender, EventArgs e) {
+        private void button39_Click(object sender, EventArgs e)
+        {
             ShowPreview();
         }
 
-        private void listRestoreItems_MouseDoubleClick(object sender, MouseEventArgs e) {
+        private void listRestoreItems_MouseDoubleClick(object sender, MouseEventArgs e)
+        {
             ShowPreview();
         }
 
         // RestoreStartupBackup
-        private void button1_Click(object sender, EventArgs e) {
-            if (listRestoreItems.SelectedIndex > -1) {
+        private void button1_Click(object sender, EventArgs e)
+        {
+            if (listRestoreItems.SelectedIndex > -1)
+            {
                 List<BackupStartupItem> backup = JsonConvert.DeserializeObject<List<BackupStartupItem>>(File.ReadAllText(_backups[listRestoreItems.SelectedIndex]));
 
                 string keyPath = string.Empty;
                 RegistryKey hive = null;
 
-                foreach (BackupStartupItem x in backup) {
-                    if (x.RegistryLocation == StartupItemLocation.HKLM.ToString()) {
+                foreach (BackupStartupItem x in backup)
+                {
+                    if (x.RegistryLocation == StartupItemLocation.HKLM.ToString())
+                    {
                         hive = Registry.LocalMachine;
 
-                        if (x.StartupType == StartupItemType.Run.ToString()) {
+                        if (x.StartupType == StartupItemType.Run.ToString())
+                        {
                             keyPath = StartupHelper.LocalMachineRun;
                         }
-                        else if (x.StartupType == StartupItemType.RunOnce.ToString()) {
+                        else if (x.StartupType == StartupItemType.RunOnce.ToString())
+                        {
                             keyPath = StartupHelper.LocalMachineRunOnce;
                         }
                     }
-                    else if (x.RegistryLocation == StartupItemLocation.HKLMWoW.ToString()) {
+                    else if (x.RegistryLocation == StartupItemLocation.HKLMWoW.ToString())
+                    {
                         hive = Registry.LocalMachine;
 
-                        if (x.StartupType == StartupItemType.Run.ToString()) {
+                        if (x.StartupType == StartupItemType.Run.ToString())
+                        {
                             keyPath = StartupHelper.LocalMachineRunWoW;
                         }
-                        else if (x.StartupType == StartupItemType.RunOnce.ToString()) {
+                        else if (x.StartupType == StartupItemType.RunOnce.ToString())
+                        {
                             keyPath = StartupHelper.LocalMachineRunOnceWow;
                         }
                     }
-                    else if (x.RegistryLocation == StartupItemLocation.HKCU.ToString()) {
+                    else if (x.RegistryLocation == StartupItemLocation.HKCU.ToString())
+                    {
                         hive = Registry.CurrentUser;
 
-                        if (x.StartupType == StartupItemType.Run.ToString()) {
+                        if (x.StartupType == StartupItemType.Run.ToString())
+                        {
                             keyPath = StartupHelper.CurrentUserRun;
                         }
-                        else if (x.StartupType == StartupItemType.RunOnce.ToString()) {
+                        else if (x.StartupType == StartupItemType.RunOnce.ToString())
+                        {
                             keyPath = StartupHelper.CurrentUserRunOnce;
                         }
                     }
 
-                    if (hive != null) {
-                        try {
+                    if (hive != null)
+                    {
+                        try
+                        {
                             RegistryKey key = hive.OpenSubKey(keyPath, true);
                             key.SetValue(x.Name, x.FileLocation, RegistryValueKind.String);
 
                         }
-                        catch (Exception ex) {
+                        catch (Exception ex)
+                        {
                             Logger.LogError("StartupRestoreForm.RestoreStartupBackup", ex.Message, ex.StackTrace);
                         }
                     }

+ 12 - 6
Optimizer/Forms/SubForm.cs

@@ -1,9 +1,12 @@
 using System;
 using System.Windows.Forms;
 
-namespace Optimizer {
-    public sealed partial class SubForm : Form {
-        public SubForm() {
+namespace Optimizer
+{
+    public sealed partial class SubForm : Form
+    {
+        public SubForm()
+        {
             InitializeComponent();
 
             CheckForIllegalCrossThreadCalls = false;
@@ -14,17 +17,20 @@ namespace Optimizer {
             btnStart.Select();
         }
 
-        internal void SetTip(string tip) {
+        internal void SetTip(string tip)
+        {
             txtInfo.Text = tip;
             btnStart.Focus();
             btnStart.Select();
         }
 
-        private void btnStart_Click(object sender, EventArgs e) {
+        private void btnStart_Click(object sender, EventArgs e)
+        {
             this.Close();
         }
 
-        private void SubForm_Load(object sender, EventArgs e) {
+        private void SubForm_Load(object sender, EventArgs e)
+        {
             OptionsHelper.ApplyTheme(this);
         }
     }

+ 12 - 6
Optimizer/Forms/UpdateForm.cs

@@ -2,16 +2,20 @@
 using System.Drawing;
 using System.Windows.Forms;
 
-namespace Optimizer {
-    public sealed partial class UpdateForm : Form {
-        public UpdateForm(string message, bool newUpdate, string changelog, string latestVersion) {
+namespace Optimizer
+{
+    public sealed partial class UpdateForm : Form
+    {
+        public UpdateForm(string message, bool newUpdate, string changelog, string latestVersion)
+        {
             InitializeComponent();
             CheckForIllegalCrossThreadCalls = false;
             OptionsHelper.ApplyTheme(this);
 
             txtMessage.Text = message;
 
-            if (newUpdate) {
+            if (newUpdate)
+            {
                 this.Size = new Size(600, 545);
                 btnOK.Text = OptionsHelper.TranslationList["btnYes"].ToString();
                 btnNo.Text = OptionsHelper.TranslationList["btnNo"].ToString();
@@ -27,7 +31,8 @@ namespace Optimizer {
                 txtInfo.Visible = true;
                 txtChanges.Visible = true;
             }
-            else {
+            else
+            {
                 this.Size = new Size(600, 188);
                 btnOK.Text = OptionsHelper.TranslationList["btnAbout"].ToString();
                 btnNo.Visible = false;
@@ -40,7 +45,8 @@ namespace Optimizer {
             }
         }
 
-        private void UpdateForm_Load(object sender, EventArgs e) {
+        private void UpdateForm_Load(object sender, EventArgs e)
+        {
 
         }
     }

+ 86 - 43
Optimizer/HostsHelper.cs

@@ -6,34 +6,44 @@ using System.Text;
 using System.Text.RegularExpressions;
 using System.Windows.Forms;
 
-namespace Optimizer {
-    internal static class HostsHelper {
+namespace Optimizer
+{
+    internal static class HostsHelper
+    {
         internal static string NewLine = Environment.NewLine;
         internal static readonly string HostsFile = CleanHelper.System32Folder + "\\drivers\\etc\\hosts";
 
-        internal static void RestoreDefaultHosts() {
-            try {
-                if (File.Exists(HostsFile)) {
+        internal static void RestoreDefaultHosts()
+        {
+            try
+            {
+                if (File.Exists(HostsFile))
+                {
                     File.Delete(HostsFile);
                 }
 
                 File.WriteAllBytes(HostsFile, Properties.Resources.hosts);
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("HostsHelper.RestoreDefaultHosts", ex.Message, ex.StackTrace);
                 MessageBox.Show(OptionsHelper.TranslationList("dnsCacheM").ToString(), "Optimizer", MessageBoxButtons.OK, MessageBoxIcon.Information);
             }
         }
 
-        internal static string[] ReadHosts() {
+        internal static string[] ReadHosts()
+        {
             StringBuilder sb = new StringBuilder();
 
-            try {
-                using (StreamReader sr = File.OpenText(HostsFile)) {
+            try
+            {
+                using (StreamReader sr = File.OpenText(HostsFile))
+                {
                     sb.Append(sr.ReadToEnd());
                 }
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("HostsHelper.ReadHosts", ex.Message, ex.StackTrace);
             }
 
@@ -41,50 +51,63 @@ namespace Optimizer {
             //return File.ReadAllLines(HostsFile);
         }
 
-        internal static string ReadHostsFast() {
+        internal static string ReadHostsFast()
+        {
             StringBuilder sb = new StringBuilder();
 
-            try {
-                using (StreamReader sr = File.OpenText(HostsFile)) {
+            try
+            {
+                using (StreamReader sr = File.OpenText(HostsFile))
+                {
                     sb.Append(sr.ReadToEnd());
                 }
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("HostsHelper.ReadHostsFast", ex.Message, ex.StackTrace);
             }
 
             return sb.ToString();
         }
 
-        internal static void LocateHosts() {
+        internal static void LocateHosts()
+        {
             Utilities.FindFile(HostsFile);
         }
 
-        internal static void SaveHosts(string[] lines) {
-            for (int i = 0; i < lines.Length; i++) {
-                if (!lines[i].StartsWith("#") && (!string.IsNullOrEmpty(lines[i]))) {
+        internal static void SaveHosts(string[] lines)
+        {
+            for (int i = 0; i < lines.Length; i++)
+            {
+                if (!lines[i].StartsWith("#") && (!string.IsNullOrEmpty(lines[i])))
+                {
                     lines[i] = SanitizeEntry(lines[i]);
                 }
             }
 
-            try {
+            try
+            {
                 File.WriteAllText(HostsFile, string.Empty);
                 File.WriteAllLines(HostsFile, lines);
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("HostsHelper.SaveHosts", ex.Message, ex.StackTrace);
                 MessageBox.Show(OptionsHelper.TranslationList("dnsCacheM").ToString(), "Optimizer", MessageBoxButtons.OK, MessageBoxIcon.Information);
             }
         }
 
-        internal static List<string> GetHostsEntries() {
+        internal static List<string> GetHostsEntries()
+        {
             List<string> entries = new List<string>();
 
             //string[] lines = File.ReadAllLines(HostsFile);
             string[] lines = ReadHosts();
 
-            foreach (string line in lines) {
-                if (!line.StartsWith("#") && (!string.IsNullOrEmpty(line))) {
+            foreach (string line in lines)
+            {
+                if (!line.StartsWith("#") && (!string.IsNullOrEmpty(line)))
+                {
                     entries.Add(line.Replace(" ", " : "));
                 }
             }
@@ -92,68 +115,88 @@ namespace Optimizer {
             return entries;
         }
 
-        internal static void AddEntry(string entry) {
-            try {
+        internal static void AddEntry(string entry)
+        {
+            try
+            {
                 File.AppendAllText(HostsFile, NewLine + $"{entry}");
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("HostsHelper.AddEntry", ex.Message, ex.StackTrace);
                 MessageBox.Show(OptionsHelper.TranslationList("dnsCacheM").ToString(), "DNS Cache is running", MessageBoxButtons.OK, MessageBoxIcon.Information);
             }
         }
 
-        internal static void RemoveEntry(string entry) {
-            try {
+        internal static void RemoveEntry(string entry)
+        {
+            try
+            {
                 File.WriteAllLines(HostsFile, File.ReadLines(HostsFile).Where(x => x != entry).ToList());
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("HostsHelper.RemoveEntry", ex.Message, ex.StackTrace);
                 MessageBox.Show(OptionsHelper.TranslationList("dnsCacheM").ToString(), "DNS Cache is running", MessageBoxButtons.OK, MessageBoxIcon.Information);
             }
         }
 
-        internal static void RemoveEntryFromTemplate(string domain) {
-            try {
+        internal static void RemoveEntryFromTemplate(string domain)
+        {
+            try
+            {
                 File.WriteAllLines(HostsFile, File.ReadLines(HostsFile).Where(x => !x.Contains(domain)).ToList());
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("HostsHelper.RemoveEntryFromTemplate", ex.Message, ex.StackTrace);
             }
         }
 
-        internal static void RemoveAllEntries(List<string> collection) {
-            try {
-                foreach (string text in collection) {
+        internal static void RemoveAllEntries(List<string> collection)
+        {
+            try
+            {
+                foreach (string text in collection)
+                {
                     File.WriteAllLines(HostsFile, File.ReadLines(HostsFile).Where(l => l != text).ToList());
                 }
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("HostsHelper.RemoveAllEntries", ex.Message, ex.StackTrace);
                 MessageBox.Show(OptionsHelper.TranslationList("dnsCacheM").ToString(), "DNS Cache is running", MessageBoxButtons.OK, MessageBoxIcon.Information);
             }
         }
 
-        internal static string SanitizeEntry(string entry) {
+        internal static string SanitizeEntry(string entry)
+        {
             // remove multiple white spaces and keep only one
             return Regex.Replace(entry, @"\s{2,}", " ");
         }
 
-        internal static bool GetReadOnly() {
-            try {
+        internal static bool GetReadOnly()
+        {
+            try
+            {
                 return new FileInfo(HostsFile).IsReadOnly;
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("HostsHelper.ReadOnly", ex.Message, ex.StackTrace);
                 return false;
             }
         }
 
-        internal static void ReadOnly(bool enable) {
-            try {
+        internal static void ReadOnly(bool enable)
+        {
+            try
+            {
                 FileInfo fi = new FileInfo(HostsFile);
                 fi.IsReadOnly = enable;
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("HostsHelper.ReadOnly", ex.Message, ex.StackTrace);
             }
         }

+ 152 - 76
Optimizer/IndiciumHelper.cs

@@ -3,8 +3,10 @@ using System;
 using System.Collections.Generic;
 using System.Management;
 
-namespace Optimizer {
-    public static class IndiciumHelper {
+namespace Optimizer
+{
+    public static class IndiciumHelper
+    {
         public static List<Volume> Volumes = new List<Volume>();
         public static List<Volume> Opticals = new List<Volume>();
         public static List<Volume> Removables = new List<Volume>();
@@ -15,13 +17,16 @@ namespace Optimizer {
         public static List<Keyboard> Keyboards = new List<Keyboard>();
         public static List<PointingDevice> PointingDevices = new List<PointingDevice>();
 
-        public static List<CPU> GetCPUs() {
+        public static List<CPU> GetCPUs()
+        {
             List<CPU> CPUs = new List<CPU>();
             CPU cpu;
 
-            try {
+            try
+            {
                 ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Processor");
-                foreach (ManagementObject mo in searcher.Get()) {
+                foreach (ManagementObject mo in searcher.Get())
+                {
                     cpu = new CPU();
 
                     cpu.Name = Convert.ToString(mo.Properties["Name"].Value);
@@ -34,25 +39,30 @@ namespace Optimizer {
 
                     cpu.LogicalCpus = Convert.ToUInt32(mo.Properties["NumberOfLogicalProcessors"].Value);
 
-                    if (Utilities.CurrentWindowsVersion != WindowsVersion.Windows7) {
+                    if (Utilities.CurrentWindowsVersion != WindowsVersion.Windows7)
+                    {
                         bool temp = Convert.ToBoolean(mo.Properties["VirtualizationFirmwareEnabled"].Value);
                         cpu.Virtualization = (temp) ? "Yes" : "No";
                     }
-                    else {
+                    else
+                    {
                         cpu.Virtualization = "-";
                     }
 
                     cpu.Stepping = Convert.ToString(mo.Properties["Description"].Value);
                     cpu.Revision = Convert.ToString(mo.Properties["Revision"].Value);
 
-                    try {
+                    try
+                    {
                         ManagementObjectSearcher searcher2 = new ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem");
-                        foreach (ManagementObject mo2 in searcher2.Get()) {
+                        foreach (ManagementObject mo2 in searcher2.Get())
+                        {
                             bool temp2 = Convert.ToBoolean(mo2.Properties["DataExecutionPrevention_Available"].Value);
                             cpu.DataExecutionPrevention = (temp2) ? "Yes" : "No";
                         }
                     }
-                    catch {
+                    catch
+                    {
                         cpu.DataExecutionPrevention = "-";
                     }
 
@@ -61,44 +71,54 @@ namespace Optimizer {
                     CPUs.Add(cpu);
                 }
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("IndiciumHelper.GetCPUs", ex.Message, ex.StackTrace);
             }
 
             return CPUs;
         }
 
-        private static string GetCPUNameAlternative() {
-            using (RegistryKey key = Registry.LocalMachine.OpenSubKey(@"HARDWARE\DESCRIPTION\System\CentralProcessor\0", false)) {
+        private static string GetCPUNameAlternative()
+        {
+            using (RegistryKey key = Registry.LocalMachine.OpenSubKey(@"HARDWARE\DESCRIPTION\System\CentralProcessor\0", false))
+            {
                 return key.GetValue("ProcessorNameString").ToString();
             }
         }
 
-        public static VirtualMemory GetVM() {
+        public static VirtualMemory GetVM()
+        {
             VirtualMemory vm = new VirtualMemory();
 
-            try {
+            try
+            {
                 ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem");
-                foreach (ManagementObject mo in searcher.Get()) {
+                foreach (ManagementObject mo in searcher.Get())
+                {
                     vm.TotalVirtualMemory = ByteSize.FromKiloBytes(Convert.ToUInt64(mo.Properties["TotalVirtualMemorySize"].Value));
                     vm.AvailableVirtualMemory = ByteSize.FromKiloBytes(Convert.ToUInt64(mo.Properties["FreeVirtualMemory"].Value));
                     vm.UsedVirtualMemory = vm.TotalVirtualMemory.Subtract(vm.AvailableVirtualMemory);
                 }
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("IndiciumHelper.GetVM", ex.Message, ex.StackTrace);
             }
 
             return vm;
         }
 
-        public static List<RAM> GetRAM() {
+        public static List<RAM> GetRAM()
+        {
             List<RAM> modules = new List<RAM>();
             RAM module;
 
-            try {
+            try
+            {
                 ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMemory");
-                foreach (ManagementObject mo in searcher.Get()) {
+                foreach (ManagementObject mo in searcher.Get())
+                {
                     module = new RAM();
 
                     module.BankLabel = Convert.ToString(mo.Properties["BankLabel"].Value);
@@ -113,19 +133,23 @@ namespace Optimizer {
                     modules.Add(module);
                 }
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("IndiciumHelper.GetRAM", ex.Message, ex.StackTrace);
             }
 
             return modules;
         }
 
-        public static List<Motherboard> GetMotherboards() {
+        public static List<Motherboard> GetMotherboards()
+        {
             List<Motherboard> mobos = new List<Motherboard>();
 
-            try {
+            try
+            {
                 ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_BaseBoard");
-                foreach (ManagementObject mo in searcher.Get()) {
+                foreach (ManagementObject mo in searcher.Get())
+                {
                     Motherboard mobo = new Motherboard();
 
                     mobo.Model = Convert.ToString(mo.Properties["Model"].Value);
@@ -133,32 +157,39 @@ namespace Optimizer {
                     mobo.Product = Convert.ToString(mo.Properties["Product"].Value);
                     mobo.Version = Convert.ToString(mo.Properties["Version"].Value);
 
-                    try {
+                    try
+                    {
                         ManagementObjectSearcher searcher2 = new ManagementObjectSearcher("SELECT * FROM Win32_IDEController");
-                        foreach (ManagementObject mo2 in searcher2.Get()) {
+                        foreach (ManagementObject mo2 in searcher2.Get())
+                        {
                             mobo.Chipset = Convert.ToString(mo2.Properties["Description"].Value);
                         }
                     }
                     catch { }
 
-                    try {
+                    try
+                    {
                         ManagementObjectSearcher searcher3 = new ManagementObjectSearcher("SELECT * FROM Win32_IDEController");
-                        foreach (ManagementObject mo3 in searcher3.Get()) {
+                        foreach (ManagementObject mo3 in searcher3.Get())
+                        {
                             mobo.Revision = Convert.ToString(mo3.Properties["RevisionNumber"].Value);
                         }
                     }
                     catch { }
 
-                    try {
+                    try
+                    {
                         ManagementObjectSearcher searcher4 = new ManagementObjectSearcher("SELECT * FROM Win32_ComputerSystem");
-                        foreach (ManagementObject mo4 in searcher4.Get()) {
+                        foreach (ManagementObject mo4 in searcher4.Get())
+                        {
                             mobo.SystemModel = Convert.ToString(mo4.Properties["Model"].Value);
                         }
                     }
                     catch { }
 
                     ManagementObjectSearcher searcher5 = new ManagementObjectSearcher("SELECT * FROM Win32_BIOS");
-                    foreach (ManagementObject mo5 in searcher5.Get()) {
+                    foreach (ManagementObject mo5 in searcher5.Get())
+                    {
                         mobo.BIOSName = Convert.ToString(mo5.Properties["Name"].Value);
                         mobo.BIOSManufacturer = Convert.ToString(mo5.Properties["Manufacturer"].Value);
                         mobo.BIOSVersion = Convert.ToString(mo5.Properties["Version"].Value);
@@ -169,19 +200,23 @@ namespace Optimizer {
                     mobos.Add(mobo);
                 }
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("IndiciumHelper.GetMotherboards", ex.Message, ex.StackTrace);
             }
 
             return mobos;
         }
 
-        public static List<Disk> GetDisks() {
+        public static List<Disk> GetDisks()
+        {
             List<Disk> disks = new List<Disk>();
 
-            try {
+            try
+            {
                 ManagementObjectSearcher searcher2 = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");
-                foreach (ManagementObject mo2 in searcher2.Get()) {
+                foreach (ManagementObject mo2 in searcher2.Get())
+                {
                     Disk disk = new Disk();
 
                     disk.Model = Convert.ToString(mo2.Properties["Model"].Value);
@@ -193,17 +228,21 @@ namespace Optimizer {
                     disks.Add(disk);
                 }
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("IndiciumHelper.GetDisks", ex.Message, ex.StackTrace);
             }
 
             return disks;
         }
 
-        public static void GetVolumes() {
-            try {
+        public static void GetVolumes()
+        {
+            try
+            {
                 ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Volume");
-                foreach (ManagementObject mo in searcher.Get()) {
+                foreach (ManagementObject mo in searcher.Get())
+                {
                     Volume volume = new Volume();
 
                     volume.BlockSize = Convert.ToUInt64(mo.Properties["BlockSize"].Value);
@@ -220,26 +259,33 @@ namespace Optimizer {
                     volume.Indexing = (temp2) ? "Yes" : "No";
                     volume.Label = Convert.ToString(mo.Properties["Label"].Value);
 
-                    if (i == 2) {
+                    if (i == 2)
+                    {
                         Removables.Add(volume);
                     }
-                    else if (i == 5) {
+                    else if (i == 5)
+                    {
                         Opticals.Add(volume);
                     }
-                    else {
+                    else
+                    {
                         Volumes.Add(volume);
                     }
                 }
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("IndiciumHelper.GetVolumes", ex.Message, ex.StackTrace);
             }
         }
 
-        public static void GetPeripherals() {
-            try {
+        public static void GetPeripherals()
+        {
+            try
+            {
                 ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Keyboard");
-                foreach (ManagementObject mo in searcher.Get()) {
+                foreach (ManagementObject mo in searcher.Get())
+                {
                     Keyboard keyboard = new Keyboard();
 
                     keyboard.Name = Convert.ToString(mo.Properties["Description"].Value);
@@ -252,13 +298,16 @@ namespace Optimizer {
                     Keyboards.Add(keyboard);
                 }
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("IndiciumHelper.GetKeyboards", ex.Message, ex.StackTrace);
             }
 
-            try {
+            try
+            {
                 ManagementObjectSearcher searcher2 = new ManagementObjectSearcher("SELECT * FROM Win32_PointingDevice");
-                foreach (ManagementObject mo2 in searcher2.Get()) {
+                foreach (ManagementObject mo2 in searcher2.Get())
+                {
                     PointingDevice pointingDevice = new PointingDevice();
 
                     pointingDevice.Name = Convert.ToString(mo2.Properties["Description"].Value);
@@ -276,17 +325,21 @@ namespace Optimizer {
                     PointingDevices.Add(pointingDevice);
                 }
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("IndiciumHelper.GetPointingDevices", ex.Message, ex.StackTrace);
             }
         }
 
-        public static List<GPU> GetGPUs() {
+        public static List<GPU> GetGPUs()
+        {
             List<GPU> GPUs = new List<GPU>();
 
-            try {
+            try
+            {
                 ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_VideoController");
-                foreach (ManagementObject mo in searcher.Get()) {
+                foreach (ManagementObject mo in searcher.Get())
+                {
                     GPU gpu = new GPU();
 
                     gpu.Name = Convert.ToString(mo.Properties["Name"].Value);
@@ -301,17 +354,21 @@ namespace Optimizer {
                     GPUs.Add(gpu);
                 }
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("IndiciumHelper.GetGPUs", ex.Message, ex.StackTrace);
             }
 
             return GPUs;
         }
 
-        public static void GetNetworkAdapters() {
-            try {
+        public static void GetNetworkAdapters()
+        {
+            try
+            {
                 ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapter");
-                foreach (ManagementObject mo in searcher.Get()) {
+                foreach (ManagementObject mo in searcher.Get())
+                {
                     NetworkDevice adapter = new NetworkDevice();
 
                     adapter.AdapterType = Convert.ToString(mo.Properties["AdapterType"].Value);
@@ -322,25 +379,31 @@ namespace Optimizer {
                     adapter.MacAddress = Convert.ToString(mo.Properties["MacAddress"].Value);
                     adapter.ServiceName = Convert.ToString(mo.Properties["ServiceName"].Value);
 
-                    if (temp) {
+                    if (temp)
+                    {
                         PhysicalAdapters.Add(adapter);
                     }
-                    else {
+                    else
+                    {
                         VirtualAdapters.Add(adapter);
                     }
                 }
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("IndiciumHelper.GetNetworkAdapters", ex.Message, ex.StackTrace);
             }
         }
 
-        public static List<AudioDevice> GetAudioDevices() {
+        public static List<AudioDevice> GetAudioDevices()
+        {
             List<AudioDevice> audioDevices = new List<AudioDevice>();
 
-            try {
+            try
+            {
                 ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_SoundDevice");
-                foreach (ManagementObject mo in searcher.Get()) {
+                foreach (ManagementObject mo in searcher.Get())
+                {
                     AudioDevice device = new AudioDevice();
 
                     device.ProductName = Convert.ToString(mo.Properties["ProductName"].Value);
@@ -350,17 +413,20 @@ namespace Optimizer {
                     audioDevices.Add(device);
                 }
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("IndiciumHelper.GetAudioDevices", ex.Message, ex.StackTrace);
             }
 
             return audioDevices;
         }
 
-        private static string SanitizeDriveType(UInt32 i) {
+        private static string SanitizeDriveType(UInt32 i)
+        {
             string result = string.Empty;
 
-            switch (i) {
+            switch (i)
+            {
                 case 0:
                     result = "Unknown";
                     break;
@@ -387,10 +453,12 @@ namespace Optimizer {
             return result;
         }
 
-        private static string SanitizeVideoMemoryType(UInt16 i) {
+        private static string SanitizeVideoMemoryType(UInt16 i)
+        {
             string result = string.Empty;
 
-            switch (i) {
+            switch (i)
+            {
                 case 1:
                     result = "Other";
                     break;
@@ -435,10 +503,12 @@ namespace Optimizer {
             return result;
         }
 
-        private static string SanitizeFormFactor(UInt16 i) {
+        private static string SanitizeFormFactor(UInt16 i)
+        {
             string result = string.Empty;
 
-            switch (i) {
+            switch (i)
+            {
                 case 0:
                     result = "Unknown";
                     break;
@@ -516,10 +586,12 @@ namespace Optimizer {
             return result;
         }
 
-        private static string SanitizeMemoryType(UInt16 i) {
+        private static string SanitizeMemoryType(UInt16 i)
+        {
             string result = string.Empty;
 
-            switch (i) {
+            switch (i)
+            {
                 case 0:
                     result = "Unknown";
                     break;
@@ -600,10 +672,12 @@ namespace Optimizer {
             return result;
         }
 
-        private static string SanitizeDeviceInterface(UInt16 i) {
+        private static string SanitizeDeviceInterface(UInt16 i)
+        {
             string result = string.Empty;
 
-            switch (i) {
+            switch (i)
+            {
                 case 1:
                     result = "Other";
                     break;
@@ -642,10 +716,12 @@ namespace Optimizer {
             return result;
         }
 
-        private static string SanitizePointingType(UInt16 i) {
+        private static string SanitizePointingType(UInt16 i)
+        {
             string result = string.Empty;
 
-            switch (i) {
+            switch (i)
+            {
                 case 1:
                     result = "Other";
                     break;

+ 112 - 56
Optimizer/IntegratorHelper.cs

@@ -7,12 +7,16 @@ using System.IO;
 using System.Net;
 using System.Windows.Forms;
 
-namespace Optimizer {
-    public static class IntegratorHelper {
+namespace Optimizer
+{
+    public static class IntegratorHelper
+    {
         internal static string FolderDefaultIcon = @"%systemroot%\system32\imageres.dll,-112";
 
-        internal static void CreateCustomCommand(string file, string keyword) {
-            if (!keyword.EndsWith(".exe")) {
+        internal static void CreateCustomCommand(string file, string keyword)
+        {
+            if (!keyword.EndsWith(".exe"))
+            {
                 keyword = keyword + ".exe";
             }
 
@@ -23,11 +27,14 @@ namespace Optimizer {
             Registry.SetValue(key, "Path", file.Substring(0, file.LastIndexOf("\\")));
         }
 
-        internal static List<string> GetCustomCommands() {
+        internal static List<string> GetCustomCommands()
+        {
             List<string> items = new List<string>();
 
-            using (RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\")) {
-                foreach (string command in key.GetSubKeyNames()) {
+            using (RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\"))
+            {
+                foreach (string command in key.GetSubKeyNames())
+                {
                     items.Add(command);
                 }
             }
@@ -35,21 +42,27 @@ namespace Optimizer {
             return items;
         }
 
-        internal static void DeleteCustomCommand(string command) {
+        internal static void DeleteCustomCommand(string command)
+        {
             Registry.LocalMachine.DeleteSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\" + command, false);
         }
 
-        private static void CreateDefaultCommand(string itemName) {
-            using (RegistryKey key = Registry.ClassesRoot.OpenSubKey(@"DesktopBackground\Shell\" + itemName, true)) {
+        private static void CreateDefaultCommand(string itemName)
+        {
+            using (RegistryKey key = Registry.ClassesRoot.OpenSubKey(@"DesktopBackground\Shell\" + itemName, true))
+            {
                 key.CreateSubKey("command", RegistryKeyPermissionCheck.Default);
             }
         }
 
-        internal static List<string> GetDesktopItems() {
+        internal static List<string> GetDesktopItems()
+        {
             List<string> items = new List<string>();
 
-            using (RegistryKey key = Registry.ClassesRoot.OpenSubKey(@"DesktopBackground\Shell", false)) {
-                foreach (string item in key.GetSubKeyNames()) {
+            using (RegistryKey key = Registry.ClassesRoot.OpenSubKey(@"DesktopBackground\Shell", false))
+            {
+                foreach (string item in key.GetSubKeyNames())
+                {
                     // filter the list, so the default items will not be visible
                     if (item.Contains("Gadgets")) continue;
                     if (item.Contains("Display")) continue;
@@ -62,69 +75,91 @@ namespace Optimizer {
             return items;
         }
 
-        internal static void RemoveItem(string name) {
-            try {
-                using (RegistryKey key = Registry.ClassesRoot.OpenSubKey(@"DesktopBackground\Shell", true)) {
-                    try {
+        internal static void RemoveItem(string name)
+        {
+            try
+            {
+                using (RegistryKey key = Registry.ClassesRoot.OpenSubKey(@"DesktopBackground\Shell", true))
+                {
+                    try
+                    {
                         key.DeleteSubKeyTree(name, false);
                     }
-                    catch (Exception ex) {
+                    catch (Exception ex)
+                    {
                         Logger.LogError("Integrator.RemoveItem", ex.Message, ex.StackTrace);
                     }
                 }
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("Integrator.RemoveItem", ex.Message, ex.StackTrace);
             }
         }
 
-        internal static bool DesktopItemExists(string name) {
-            try {
+        internal static bool DesktopItemExists(string name)
+        {
+            try
+            {
                 return Registry.ClassesRoot.OpenSubKey(@"DesktopBackground\Shell\" + name, false) != null;
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("Integrator.ItemExists", ex.Message, ex.StackTrace);
                 return false;
             }
         }
 
-        internal static bool TakeOwnershipExists() {
-            try {
+        internal static bool TakeOwnershipExists()
+        {
+            try
+            {
                 return Registry.ClassesRoot.OpenSubKey(@"*\shell\runas", false).GetValue("").ToString() == "Take Ownership";
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("Integrator.TakeOwnershipExists", ex.Message, ex.StackTrace);
                 return false;
             }
         }
 
-        internal static bool OpenWithCMDExists() {
-            try {
+        internal static bool OpenWithCMDExists()
+        {
+            try
+            {
                 return Registry.ClassesRoot.OpenSubKey(@"Directory\shell\OpenWithCMD", false) != null;
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("Integrator.OpenWithCMDExists", ex.Message, ex.StackTrace);
                 return false;
             }
         }
 
-        internal static void RemoveAllItems(List<string> items) {
-            using (RegistryKey key = Registry.ClassesRoot.OpenSubKey(@"DesktopBackground\Shell", true)) {
-                foreach (string item in items) {
-                    try {
+        internal static void RemoveAllItems(List<string> items)
+        {
+            using (RegistryKey key = Registry.ClassesRoot.OpenSubKey(@"DesktopBackground\Shell", true))
+            {
+                foreach (string item in items)
+                {
+                    try
+                    {
                         key.DeleteSubKeyTree(item, false);
                     }
-                    catch (Exception ex) {
+                    catch (Exception ex)
+                    {
                         Logger.LogError("Integrator.RemoveAllItems", ex.Message, ex.StackTrace);
                     }
                 }
             }
         }
 
-        internal static string ExtractIconFromExecutable(string itemName, string fileName) {
+        internal static string ExtractIconFromExecutable(string itemName, string fileName)
+        {
             string iconPath = string.Empty;
 
-            if (File.Exists(fileName)) {
+            if (File.Exists(fileName))
+            {
                 Icon ico = Icon.ExtractAssociatedIcon(fileName);
 
                 Clipboard.SetImage(ico.ToBitmap());
@@ -137,36 +172,45 @@ namespace Optimizer {
             return iconPath;
         }
 
-        internal static string DownloadFavicon(string link, string name) {
+        internal static string DownloadFavicon(string link, string name)
+        {
             string favicon = string.Empty;
 
-            try {
+            try
+            {
                 Uri url = new Uri(link);
-                if (url.HostNameType == UriHostNameType.Dns) {
+                if (url.HostNameType == UriHostNameType.Dns)
+                {
                     Image.FromStream(((HttpWebResponse)WebRequest.Create("http://" + url.Host + "/favicon.ico").GetResponse()).GetResponseStream()).Save(CoreHelper.FavIconsFolder + name + ".ico", ImageFormat.Bmp);
 
                     favicon = CoreHelper.FavIconsFolder + name + ".ico";
                 }
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("Integrator.DownloadFavicon", ex.Message, ex.StackTrace);
             }
 
             return favicon;
         }
 
-        internal static void AddItem(string name, string item, string icon, DesktopTypePosition position, bool shift, DesktopItemType type) {
-            using (RegistryKey key = Registry.ClassesRoot.OpenSubKey(@"DesktopBackground\Shell", true)) {
+        internal static void AddItem(string name, string item, string icon, DesktopTypePosition position, bool shift, DesktopItemType type)
+        {
+            using (RegistryKey key = Registry.ClassesRoot.OpenSubKey(@"DesktopBackground\Shell", true))
+            {
                 key.CreateSubKey(name, RegistryKeyPermissionCheck.Default);
             }
 
             CreateDefaultCommand(name);
 
-            if (shift) {
+            if (shift)
+            {
                 Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + name, "Extended", "");
             }
-            else {
-                using (RegistryKey key = Registry.ClassesRoot.OpenSubKey(@"DesktopBackground\Shell\" + name, true)) {
+            else
+            {
+                using (RegistryKey key = Registry.ClassesRoot.OpenSubKey(@"DesktopBackground\Shell\" + name, true))
+                {
                     key.CreateSubKey(name, RegistryKeyPermissionCheck.Default);
                 }
             }
@@ -174,7 +218,8 @@ namespace Optimizer {
             Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + name, "Icon", icon);
             Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + name, "Position", position.ToString());
 
-            switch (type) {
+            switch (type)
+            {
                 case DesktopItemType.Program:
                     Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + name + "\\command", "", item);
                     break;
@@ -196,38 +241,49 @@ namespace Optimizer {
             }
         }
 
-        internal static void InstallOpenWithCMD() {
+        internal static void InstallOpenWithCMD()
+        {
             Utilities.ImportRegistryScript(CoreHelper.ScriptsFolder + "AddOpenWithCMD.reg");
         }
 
-        internal static void DeleteOpenWithCMD() {
+        internal static void DeleteOpenWithCMD()
+        {
             Registry.ClassesRoot.DeleteSubKeyTree(@"Directory\shell\OpenWithCMD", false);
             Registry.ClassesRoot.DeleteSubKeyTree(@"Directory\Background\shell\OpenWithCMD", false);
             Registry.ClassesRoot.DeleteSubKeyTree(@"Drive\shell\OpenWithCMD", false);
         }
 
-        internal static void InstallTakeOwnership(bool remove) {
-            if (!File.Exists(CoreHelper.ReadyMadeMenusFolder + "InstallTakeOwnership.reg")) {
-                try {
+        internal static void InstallTakeOwnership(bool remove)
+        {
+            if (!File.Exists(CoreHelper.ReadyMadeMenusFolder + "InstallTakeOwnership.reg"))
+            {
+                try
+                {
                     File.WriteAllText(CoreHelper.ReadyMadeMenusFolder + "InstallTakeOwnership.reg", Properties.Resources.InstallTakeOwnership);
                 }
-                catch (Exception ex) {
+                catch (Exception ex)
+                {
                     Logger.LogError("Integrator.TakeOwnership", ex.Message, ex.StackTrace);
                 }
             }
-            if (!File.Exists(CoreHelper.ReadyMadeMenusFolder + "RemoveTakeOwnership.reg")) {
-                try {
+            if (!File.Exists(CoreHelper.ReadyMadeMenusFolder + "RemoveTakeOwnership.reg"))
+            {
+                try
+                {
                     File.WriteAllText(CoreHelper.ReadyMadeMenusFolder + "RemoveTakeOwnership.reg", Properties.Resources.RemoveTakeOwnership);
                 }
-                catch (Exception ex) {
+                catch (Exception ex)
+                {
                     Logger.LogError("Integrator.TakeOwnership", ex.Message, ex.StackTrace);
                 }
             }
 
-            if (!remove) {
+            if (!remove)
+            {
                 Utilities.ImportRegistryScript(CoreHelper.ReadyMadeMenusFolder + "InstallTakeOwnership.reg");
             }
-            else {
+            else
+            {
                 Utilities.ImportRegistryScript(CoreHelper.ReadyMadeMenusFolder + "RemoveTakeOwnership.reg");
             }
         }

+ 4 - 2
Optimizer/Models/AppInfo.cs

@@ -1,4 +1,5 @@
-namespace Optimizer {
+namespace Optimizer
+{
     /// <summary>
     /// Represents an app from feed, containing:
     /// - Title
@@ -6,7 +7,8 @@
     /// - Image
     /// - Group
     /// </summary>
-    public sealed class AppInfo {
+    public sealed class AppInfo
+    {
         public string Title { get; set; }
         public string Link64 { get; set; }
         public string Link { get; set; }

+ 30 - 15
Optimizer/Models/Enums.cs

@@ -1,17 +1,21 @@
-namespace Optimizer {
-    internal enum LogType {
+namespace Optimizer
+{
+    internal enum LogType
+    {
         Information,
         Error,
     }
 
-    internal enum EventType {
+    internal enum EventType
+    {
         Modified,
         Renamed,
         Created,
         Deleted
     }
 
-    internal enum WindowsVersion {
+    internal enum WindowsVersion
+    {
         Unsupported = 0,
         Windows7 = 7,
         Windows8 = 8,
@@ -19,7 +23,8 @@
         Windows11 = 11
     }
 
-    public enum StartupItemLocation {
+    public enum StartupItemLocation
+    {
         LMStartupFolder,
         CUStartupFolder,
         HKLM,
@@ -27,13 +32,15 @@
         HKCU
     }
 
-    public enum StartupItemType {
+    public enum StartupItemType
+    {
         None,
         Run,
         RunOnce
     }
 
-    internal enum MessageType {
+    internal enum MessageType
+    {
         Error,
         Startup,
         Restart,
@@ -41,7 +48,8 @@
         Integrator
     }
 
-    internal enum DesktopItemType {
+    internal enum DesktopItemType
+    {
         Program,
         Folder,
         Link,
@@ -49,38 +57,44 @@
         Command
     }
 
-    internal enum DesktopTypePosition {
+    internal enum DesktopTypePosition
+    {
         Top,
         Middle,
         Bottom
     }
 
-    internal enum RecycleFlag : int {
+    internal enum RecycleFlag : int
+    {
         SHERB_NOCONFIRMATION = 0x00000001,
         SHERB_NOPROGRESSUI = 0x00000001,
         SHERB_NOSOUND = 0x00000004
     }
 
-    public enum ToggleSwitchAlignment {
+    public enum ToggleSwitchAlignment
+    {
         Near,
         Center,
         Far
     }
 
-    public enum ToggleSwitchButtonAlignment {
+    public enum ToggleSwitchButtonAlignment
+    {
         Left,
         Center,
         Right
     }
 
-    public enum RestartType {
+    public enum RestartType
+    {
         Normal,
         SafeMode,
         DisableDefender,
         EnableDefender
     }
 
-    public enum LanguageCode {
+    public enum LanguageCode
+    {
         EN, // english
         RU, // russian
         EL, // hellenic
@@ -105,6 +119,7 @@
         FA, // farsi
         NE, // nepali
         BG, // bulgarian
-        VN // vietnamese
+        VN, // vietnamese
+        UR // urdu
     }
 }

+ 26 - 13
Optimizer/Models/Hardware.cs

@@ -1,12 +1,14 @@
 using System;
 using System.Collections.Generic;
 
-namespace Optimizer {
+namespace Optimizer
+{
     /// <summary>
     /// A full representation of all the computer components with the most usual details
     /// </summary>
 
-    public sealed class CPU {
+    public sealed class CPU
+    {
         public string Name { get; set; }
         public ByteSize L2CacheSize { get; set; }
         public ByteSize L3CacheSize { get; set; }
@@ -19,7 +21,8 @@ namespace Optimizer {
         public string Revision { get; set; }
     }
 
-    public sealed class RAM {
+    public sealed class RAM
+    {
         public string BankLabel { get; set; }
         public ByteSize Capacity { get; set; }
         public string FormFactor { get; set; }
@@ -28,13 +31,15 @@ namespace Optimizer {
         public UInt32 Speed { get; set; }
     }
 
-    public sealed class VirtualMemory {
+    public sealed class VirtualMemory
+    {
         public ByteSize TotalVirtualMemory { get; set; }
         public ByteSize AvailableVirtualMemory { get; set; }
         public ByteSize UsedVirtualMemory { get; set; }
     }
 
-    public sealed class GPU {
+    public sealed class GPU
+    {
         public string Name { get; set; }
         public ByteSize Memory { get; set; }
         public UInt32 ResolutionX { get; set; }
@@ -44,7 +49,8 @@ namespace Optimizer {
         public string VideoMemoryType { get; set; }
     }
 
-    public sealed class Disk {
+    public sealed class Disk
+    {
         public UInt32 BytesPerSector { get; set; }
         public string FirmwareRevision { get; set; }
         public string MediaType { get; set; }
@@ -52,7 +58,8 @@ namespace Optimizer {
         public ByteSize Capacity { get; set; }
     }
 
-    public sealed class Volume {
+    public sealed class Volume
+    {
         public UInt64 BlockSize { get; set; }
         public ByteSize Capacity { get; set; }
         public string Compressed { get; set; }
@@ -65,7 +72,8 @@ namespace Optimizer {
         public string Label { get; set; }
     }
 
-    public sealed class NetworkDevice {
+    public sealed class NetworkDevice
+    {
         public string AdapterType { get; set; }
         public string Manufacturer { get; set; }
         public string ProductName { get; set; }
@@ -74,7 +82,8 @@ namespace Optimizer {
         public string ServiceName { get; set; }
     }
 
-    public sealed class Keyboard {
+    public sealed class Keyboard
+    {
         public string Name { get; set; }
         public string Layout { get; set; }
         public string Status { get; set; }
@@ -82,7 +91,8 @@ namespace Optimizer {
         public string Locked { get; set; }
     }
 
-    public sealed class PointingDevice {
+    public sealed class PointingDevice
+    {
         public string Name { get; set; }
         public string Manufacturer { get; set; }
         public string Status { get; set; }
@@ -93,13 +103,15 @@ namespace Optimizer {
         public string DeviceInterface { get; set; }
     }
 
-    public sealed class AudioDevice {
+    public sealed class AudioDevice
+    {
         public string ProductName { get; set; }
         public string Manufacturer { get; set; }
         public string Status { get; set; }
     }
 
-    public sealed class Motherboard {
+    public sealed class Motherboard
+    {
         public string Model { get; set; }
         public string Manufacturer { get; set; }
         public string Chipset { get; set; }
@@ -114,7 +126,8 @@ namespace Optimizer {
         public string BIOSBuildNumber { get; set; }
     }
 
-    public static class HardwareSummary {
+    public static class HardwareSummary
+    {
         public static List<string> CPUs = new List<string>();
         public static string TotalRAM = string.Empty;
         public static List<string> Motherboards = new List<string>();

+ 11 - 2
Optimizer/Models/Options.cs

@@ -1,9 +1,11 @@
 using System;
 using System.Drawing;
 
-namespace Optimizer {
+namespace Optimizer
+{
     [Serializable]
-    public sealed class Options {
+    public sealed class Options
+    {
         /// <summary>
         /// Represents the theme color in RGB
         /// </summary>
@@ -81,6 +83,9 @@ namespace Optimizer {
         public bool DisableSMB2 { get; set; }
         public bool DisableNTFSTimeStamp { get; set; }
         public bool DisableSearch { get; set; }
+        public bool EnableUtcTime { get; set; }
+        public bool ShowAllTrayIcons { get; set; }
+        public bool RemoveMenusDelay { get; set; }
 
         /// <summary>
         /// The state of the apps telemetry tweaks
@@ -130,6 +135,10 @@ namespace Optimizer {
         public bool RemoveCastToDevice { get; set; }
         public bool EnableGamingMode { get; set; }
         public bool RestoreClassicPhotoViewer { get; set; }
+        public bool DisableModernStandby { get; set; }
+        public bool HideTaskbarWeather { get; set; }
+        public bool HideTaskbarSearch { get; set; }
+        public bool DisableNewsInterests { get; set; }
 
         /// <summary>
         /// The state of the Windows 11 tweaks

+ 35 - 14
Optimizer/Models/SilentConfig.cs

@@ -1,9 +1,11 @@
 using Newtonsoft.Json;
 using System;
 
-namespace Optimizer {
+namespace Optimizer
+{
     [Serializable]
-    public sealed class SilentConfig {
+    public sealed class SilentConfig
+    {
         [JsonProperty("WindowsVersion", Required = Required.Always, NullValueHandling = NullValueHandling.Ignore)]
         public int WindowsVersion { get; set; }
 
@@ -36,7 +38,8 @@ namespace Optimizer {
     }
 
     [Serializable]
-    public sealed class AdvancedTweaks {
+    public sealed class AdvancedTweaks
+    {
         [JsonProperty("DisableHPET", NullValueHandling = NullValueHandling.Ignore)]
         public bool? DisableHPET { get; set; }
 
@@ -51,7 +54,8 @@ namespace Optimizer {
     }
 
     [Serializable]
-    public sealed class Cleaner {
+    public sealed class Cleaner
+    {
         [JsonProperty("TempFiles", NullValueHandling = NullValueHandling.Ignore)]
         public bool? TempFiles { get; set; }
 
@@ -81,7 +85,8 @@ namespace Optimizer {
     }
 
     [Serializable]
-    public sealed class BaseBrowser {
+    public sealed class BaseBrowser
+    {
         [JsonProperty("Cache", NullValueHandling = NullValueHandling.Ignore)]
         public bool? Cache { get; set; }
 
@@ -99,7 +104,8 @@ namespace Optimizer {
     }
 
     [Serializable]
-    public sealed class HostsEditor {
+    public sealed class HostsEditor
+    {
         [JsonProperty("Block", NullValueHandling = NullValueHandling.Ignore)]
         public string[] Block { get; set; }
 
@@ -114,7 +120,8 @@ namespace Optimizer {
     }
 
     [Serializable]
-    public sealed class AddHostsEntry {
+    public sealed class AddHostsEntry
+    {
         [JsonProperty("Domain", NullValueHandling = NullValueHandling.Ignore)]
         public string Domain { get; set; }
 
@@ -123,7 +130,8 @@ namespace Optimizer {
     }
 
     [Serializable]
-    public sealed class Integrator {
+    public sealed class Integrator
+    {
         [JsonProperty("TakeOwnership", NullValueHandling = NullValueHandling.Ignore)]
         public bool? TakeOwnership { get; set; }
 
@@ -132,7 +140,8 @@ namespace Optimizer {
     }
 
     [Serializable]
-    public sealed class Pinger {
+    public sealed class Pinger
+    {
         [JsonProperty("SetDNS", NullValueHandling = NullValueHandling.Ignore)]
         public string SetDns { get; set; }
 
@@ -147,7 +156,8 @@ namespace Optimizer {
     }
 
     [Serializable]
-    public sealed class PostAction {
+    public sealed class PostAction
+    {
         [JsonProperty("Restart", NullValueHandling = NullValueHandling.Ignore)]
         public bool? Restart { get; set; }
 
@@ -156,7 +166,8 @@ namespace Optimizer {
     }
 
     [Serializable]
-    public sealed class ProcessControl {
+    public sealed class ProcessControl
+    {
         [JsonProperty("Prevent", NullValueHandling = NullValueHandling.Ignore)]
         public string[] Prevent { get; set; }
 
@@ -165,7 +176,8 @@ namespace Optimizer {
     }
 
     [Serializable]
-    public sealed class RegistryFix {
+    public sealed class RegistryFix
+    {
         [JsonProperty("TaskManager", NullValueHandling = NullValueHandling.Ignore)]
         public bool? TaskManager { get; set; }
 
@@ -192,7 +204,8 @@ namespace Optimizer {
     }
 
     [Serializable]
-    public sealed class SvchostProcessSplitting {
+    public sealed class SvchostProcessSplitting
+    {
         [JsonProperty("Disable", NullValueHandling = NullValueHandling.Ignore)]
         public bool? Disable { get; set; }
 
@@ -201,7 +214,8 @@ namespace Optimizer {
     }
 
     [Serializable]
-    public sealed class Tweaks {
+    public sealed class Tweaks
+    {
         public bool? EnablePerformanceTweaks { get; set; }
         public bool? DisableNetworkThrottling { get; set; }
         public bool? DisableWindowsDefender { get; set; }
@@ -222,6 +236,9 @@ namespace Optimizer {
         public bool? DisableSMB2 { get; set; }
         public bool? DisableNTFSTimeStamp { get; set; }
         public bool? DisableSearch { get; set; }
+        public bool? EnableUtcTime { get; set; }
+        public bool? ShowAllTrayIcons { get; set; }
+        public bool? RemoveMenusDelay { get; set; }
 
         public bool? DisableOffice2016Telemetry { get; set; }
         public bool? DisableVisualStudioTelemetry { get; set; }
@@ -253,6 +270,10 @@ namespace Optimizer {
         public bool? RemoveCastToDevice { get; set; }
         public bool? EnableGamingMode { get; set; }
         public bool? RestoreClassicPhotoViewer { get; set; }
+        public bool? DisableModernStandby { get; set; }
+        public bool? HideTaskbarWeather { get; set; }
+        public bool? HideTaskbarSearch { get; set; }
+        public bool? DisableNewsInterests { get; set; }
 
         public bool? DisableOneDrive { get; set; }
 

+ 6 - 3
Optimizer/Models/StartupBackupItem.cs

@@ -1,17 +1,20 @@
 using System;
 
-namespace Optimizer {
+namespace Optimizer
+{
     /// <summary>
     /// Represents a backup of a Windows base startup item
     /// </summary>
     [Serializable]
-    public sealed class BackupStartupItem {
+    public sealed class BackupStartupItem
+    {
         public string Name { get; set; }
         public string FileLocation { get; set; }
         public string RegistryLocation { get; set; }
         public string StartupType { get; set; }
 
-        public BackupStartupItem(string name, string fileLocation, string registryLocation, string startupType) {
+        public BackupStartupItem(string name, string fileLocation, string registryLocation, string startupType)
+        {
             Name = name;
             FileLocation = fileLocation;
             RegistryLocation = registryLocation;

+ 46 - 23
Optimizer/Models/StartupItem.cs

@@ -2,11 +2,13 @@
 using System;
 using System.IO;
 
-namespace Optimizer {
+namespace Optimizer
+{
     /// <summary>
     /// Represents a base Windows startup item
     /// </summary>
-    internal class StartupItem {
+    internal class StartupItem
+    {
         internal string Name { get; set; }
         internal string FileLocation { get; set; }
         internal StartupItemLocation RegistryLocation { get; set; }
@@ -16,71 +18,92 @@ namespace Optimizer {
         internal virtual void LocateFile() { }
         internal virtual void LocateKey() { }
 
-        public override string ToString() {
+        public override string ToString()
+        {
             if (RegistryLocation == StartupItemLocation.LMStartupFolder) return RegistryLocation.ToString();
             return string.Format("{0}:{1}", RegistryLocation, StartupType);
         }
     }
 
-    internal sealed class FolderStartupItem : StartupItem {
+    internal sealed class FolderStartupItem : StartupItem
+    {
         internal string Shortcut { get; set; }
 
-        internal override void Remove() {
-            try {
-                if (File.Exists(Shortcut)) {
+        internal override void Remove()
+        {
+            try
+            {
+                if (File.Exists(Shortcut))
+                {
                     File.Delete(Shortcut);
                 }
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("FolderStartupItem.Remove", ex.Message, ex.StackTrace);
             }
         }
 
-        internal override void LocateFile() {
-            try {
+        internal override void LocateFile()
+        {
+            try
+            {
                 Utilities.FindFile(FileLocation);
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("FolderStartupItem.LocateFile", ex.Message, ex.StackTrace);
             }
         }
     }
 
-    internal sealed class RegistryStartupItem : StartupItem {
+    internal sealed class RegistryStartupItem : StartupItem
+    {
         internal RegistryKey Key { get; set; }
 
-        internal override void LocateKey() {
-            try {
+        internal override void LocateKey()
+        {
+            try
+            {
                 Utilities.FindKeyInRegistry(Key.ToString());
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("RegistryStartupItem.LocateKey", ex.Message, ex.StackTrace);
             }
         }
 
-        internal override void Remove() {
-            try {
+        internal override void Remove()
+        {
+            try
+            {
                 Key.DeleteValue(Name, false);
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("RegistryStartupItem.Remove", ex.Message, ex.StackTrace);
             }
         }
 
-        internal override void LocateFile() {
-            try {
+        internal override void LocateFile()
+        {
+            try
+            {
                 Utilities.FindFile(SanitizePath(FileLocation));
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("RegistryStartupItem.LocateFile", ex.Message, ex.StackTrace);
             }
         }
 
-        internal string SanitizePath(string s) {
+        internal string SanitizePath(string s)
+        {
             s = s.Replace("\"", string.Empty);
             int i;
 
-            while (s.Contains("/")) {
+            while (s.Contains("/"))
+            {
                 i = s.LastIndexOf("/");
                 s = s.Substring(0, i);
             }

Datei-Diff unterdrückt, da er zu groß ist
+ 296 - 176
Optimizer/OptimizeHelper.cs


+ 2 - 0
Optimizer/Optimizer.csproj

@@ -316,6 +316,7 @@
     <None Include="Resources\i18n\RO.json" />
     <None Include="Resources\Fonts\Poppins-Regular.ttf" />
     <None Include="Resources\i18n\UA.json" />
+    <None Include="Resources\i18n\UR.json" />
     <None Include="Resources\i18n\VN.json" />
     <None Include="Resources\Scripts\AddOpenWithCMD.reg" />
     <None Include="Resources\i18n\CN.json" />
@@ -384,6 +385,7 @@
     </COMReference>
   </ItemGroup>
   <ItemGroup>
+    <None Include="Resources\Flags\pakistan.png" />
     <None Include="Resources\Flags\vietnam.png" />
     <None Include="Resources\Flags\bulgaria.png" />
     <None Include="Resources\Flags\nepal.png" />

+ 64 - 27
Optimizer/OptionsHelper.cs

@@ -6,8 +6,10 @@ using System.IO;
 using System.Linq;
 using System.Windows.Forms;
 
-namespace Optimizer {
-    internal static class OptionsHelper {
+namespace Optimizer
+{
+    internal static class OptionsHelper
+    {
         internal static Color ForegroundColor = Color.FromArgb(153, 102, 204);
         internal static Color ForegroundAccentColor = Color.FromArgb(134, 89, 179);
         internal static Color BackgroundColor = Color.FromArgb(10, 10, 10);
@@ -20,25 +22,30 @@ namespace Optimizer {
 
         internal static dynamic TranslationList;
 
-        internal static Color GetContrastColor(Color c) {
+        internal static Color GetContrastColor(Color c)
+        {
             double brightness = c.R * 0.299 + c.G * 0.587 + c.B * 0.114;
             return brightness > Constants.CONTRAST_THRESHOLD ? Color.Black : Color.White;
         }
 
-        internal static void ApplyTheme(Form f) {
+        internal static void ApplyTheme(Form f)
+        {
             SetTheme(f, CurrentOptions.Theme, ColorHelper.ChangeColorBrightness(CurrentOptions.Theme, 0.7));
         }
 
-        private static void SetTheme(Form f, Color c1, Color c2) {
+        private static void SetTheme(Form f, Color c1, Color c2)
+        {
             dynamic c;
             ForegroundColor = c1;
             ForegroundAccentColor = c2;
             TextColor = GetContrastColor(CurrentOptions.Theme);
 
-            Utilities.GetSelfAndChildrenRecursive(f).ToList().ForEach(x => {
+            Utilities.GetSelfAndChildrenRecursive(f).ToList().ForEach(x =>
+            {
                 c = x;
 
-                if (x is Button) {
+                if (x is Button)
+                {
                     c.ForeColor = TextColor;
                     c.BackColor = c1;
                     c.FlatAppearance.BorderColor = c1;
@@ -47,16 +54,20 @@ namespace Optimizer {
                     c.FlatAppearance.BorderSize = 0;
                 }
 
-                if (x is LinkLabel) {
-                    if ((string)c.Tag == Constants.THEME_FLAG) {
+                if (x is LinkLabel)
+                {
+                    if ((string)c.Tag == Constants.THEME_FLAG)
+                    {
                         c.LinkColor = c1;
                         c.VisitedLinkColor = c1;
                         c.ActiveLinkColor = c2;
                     }
                 }
 
-                if (x is CheckBox || x is RadioButton || x is Label) {
-                    if ((string)c.Tag == Constants.THEME_FLAG) {
+                if (x is CheckBox || x is RadioButton || x is Label)
+                {
+                    if ((string)c.Tag == Constants.THEME_FLAG)
+                    {
                         c.ForeColor = c1;
                     }
                 }
@@ -65,16 +76,21 @@ namespace Optimizer {
             });
         }
 
-        internal static void LegacyCheck() {
-            if (File.Exists(SettingsFile)) {
-                if (File.ReadAllText(SettingsFile).Contains("FirstRun")) {
+        internal static void LegacyCheck()
+        {
+            if (File.Exists(SettingsFile))
+            {
+                if (File.ReadAllText(SettingsFile).Contains("FirstRun"))
+                {
                     File.Delete(SettingsFile);
                 }
             }
         }
 
-        internal static void SaveSettings() {
-            if (File.Exists(SettingsFile)) {
+        internal static void SaveSettings()
+        {
+            if (File.Exists(SettingsFile))
+            {
                 string jsonFile = File.ReadAllText(SettingsFile);
                 string jsonMemory = JsonConvert.SerializeObject(CurrentOptions);
 
@@ -85,7 +101,8 @@ namespace Optimizer {
 
                 using (FileStream fs = File.Open(SettingsFile, FileMode.OpenOrCreate))
                 using (StreamWriter sw = new StreamWriter(fs))
-                using (JsonWriter jw = new JsonTextWriter(sw)) {
+                using (JsonWriter jw = new JsonTextWriter(sw))
+                {
                     jw.Formatting = Formatting.Indented;
 
                     JsonSerializer serializer = new JsonSerializer();
@@ -94,15 +111,19 @@ namespace Optimizer {
             }
         }
 
-        internal static void LoadSettings() {
-            if (!File.Exists(SettingsFile) || File.ReadAllText(SettingsFile).Contains("\"Color\":")) {
+        internal static void LoadSettings()
+        {
+            if (!File.Exists(SettingsFile) || File.ReadAllText(SettingsFile).Contains("\"Color\":"))
+            {
                 // settings migration for new color picker
-                if (File.Exists(SettingsFile) && File.ReadAllText(SettingsFile).Contains("\"Color\":")) {
+                if (File.Exists(SettingsFile) && File.ReadAllText(SettingsFile).Contains("\"Color\":"))
+                {
                     Options tmpJson = JsonConvert.DeserializeObject<Options>(File.ReadAllText(SettingsFile));
                     tmpJson.Theme = Color.FromArgb(153, 102, 204);
                     CurrentOptions = tmpJson;
                 }
-                else {
+                else
+                {
                     // DEFAULT OPTIONS
                     CurrentOptions.Theme = Color.FromArgb(153, 102, 204);
                     CurrentOptions.AppsFolder = string.Empty;
@@ -192,9 +213,18 @@ namespace Optimizer {
                     CurrentOptions.DisableHPET = false;
                     CurrentOptions.EnableLoginVerbose = false;
 
+                    CurrentOptions.RemoveMenusDelay = false;
+                    CurrentOptions.ShowAllTrayIcons = false;
+                    CurrentOptions.DisableModernStandby = false;
+                    CurrentOptions.EnableUtcTime = false;
+                    CurrentOptions.DisableNewsInterests = false;
+                    CurrentOptions.HideTaskbarSearch = false;
+                    CurrentOptions.HideTaskbarWeather = false;
+
                     using (FileStream fs = File.Open(SettingsFile, FileMode.CreateNew))
                     using (StreamWriter sw = new StreamWriter(fs))
-                    using (JsonWriter jw = new JsonTextWriter(sw)) {
+                    using (JsonWriter jw = new JsonTextWriter(sw))
+                    {
                         jw.Formatting = Formatting.Indented;
 
                         JsonSerializer serializer = new JsonSerializer();
@@ -202,12 +232,14 @@ namespace Optimizer {
                     }
                 }
             }
-            else {
+            else
+            {
                 CurrentOptions = JsonConvert.DeserializeObject<Options>(File.ReadAllText(SettingsFile));
             }
 
             // prevent options from corruption
-            if (CurrentOptions.Theme == Color.Empty || CurrentOptions.Theme == Color.FromArgb(0, 0, 0, 0)) {
+            if (CurrentOptions.Theme == Color.Empty || CurrentOptions.Theme == Color.FromArgb(0, 0, 0, 0))
+            {
                 CurrentOptions.Theme = Color.FromArgb(153, 102, 204);
             }
             // generate random telemetry ID if not present
@@ -220,9 +252,11 @@ namespace Optimizer {
             LoadTranslation();
         }
 
-        internal static void LoadTranslation() {
+        internal static void LoadTranslation()
+        {
             // load proper translation list
-            try {
+            try
+            {
                 if (CurrentOptions.LanguageCode == LanguageCode.EN) TranslationList = JObject.Parse(Properties.Resources.EN);
                 if (CurrentOptions.LanguageCode == LanguageCode.RU) TranslationList = JObject.Parse(Properties.Resources.RU);
                 if (CurrentOptions.LanguageCode == LanguageCode.EL) TranslationList = JObject.Parse(Properties.Resources.EL);
@@ -248,8 +282,11 @@ namespace Optimizer {
                 if (CurrentOptions.LanguageCode == LanguageCode.NE) TranslationList = JObject.Parse(Properties.Resources.NE);
                 if (CurrentOptions.LanguageCode == LanguageCode.BG) TranslationList = JObject.Parse(Properties.Resources.BG);
                 if (CurrentOptions.LanguageCode == LanguageCode.VN) TranslationList = JObject.Parse(Properties.Resources.VN);
+                if (CurrentOptions.LanguageCode == LanguageCode.UR) TranslationList = JObject.Parse(Properties.Resources.UR);
+
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("Options.LoadTranslation", ex.Message, ex.StackTrace);
                 TranslationList = JObject.Parse(Properties.Resources.EN);
             }

+ 46 - 23
Optimizer/PingerHelper.cs

@@ -5,8 +5,10 @@ using System.Net;
 using System.Net.NetworkInformation;
 using System.Net.Sockets;
 
-namespace Optimizer {
-    internal static class PingerHelper {
+namespace Optimizer
+{
+    internal static class PingerHelper
+    {
         internal static string[] DNSOptions =
         {
             "Automatic",
@@ -51,8 +53,10 @@ namespace Optimizer {
 
         static IPAddress addressToPing;
 
-        internal static NetworkInterface[] GetActiveNetworkAdapters() {
-            try {
+        internal static NetworkInterface[] GetActiveNetworkAdapters()
+        {
+            try
+            {
                 if (ShowHiddenAdapters) NetworkAdapters = NetworkInterface.GetAllNetworkInterfaces();
 
                 if (!ShowHiddenAdapters) NetworkAdapters = NetworkInterface.GetAllNetworkInterfaces().Where(
@@ -60,7 +64,8 @@ namespace Optimizer {
                     (a.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 || a.NetworkInterfaceType == NetworkInterfaceType.Ethernet) &&
                     a.GetIPProperties().GatewayAddresses.Any(g => g.Address.AddressFamily.ToString() == "InterNetwork")).ToArray();
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("PingerHelper.GetActiveNetworkAdapters", ex.Message, ex.StackTrace);
                 return null;
             }
@@ -68,27 +73,33 @@ namespace Optimizer {
             return NetworkAdapters;
         }
 
-        internal static IEnumerable<string> GetDNSFromNetworkAdapter(NetworkInterface nic) {
-            try {
+        internal static IEnumerable<string> GetDNSFromNetworkAdapter(NetworkInterface nic)
+        {
+            try
+            {
                 return nic.GetIPProperties().DnsAddresses.Select(z => z.ToString());
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("PingerHelper.GetDNSFromNetworkAdapter", ex.Message, ex.StackTrace);
                 return null;
             }
         }
 
-        internal static void SetDNS(string nic, string[] dnsv4, string[] dnsv6) {
+        internal static void SetDNS(string nic, string[] dnsv4, string[] dnsv6)
+        {
             string cmdv4Alternate = string.Empty;
             string cmdv6Alternate = string.Empty;
 
             string cmdv4Primary = $"netsh interface ipv4 set dnsservers {nic} static {dnsv4[0]} primary";
-            if (dnsv4.Length == 2) {
+            if (dnsv4.Length == 2)
+            {
                 cmdv4Alternate = $"netsh interface ipv4 add dnsservers {nic} {dnsv4[1]} index=2";
             }
 
             string cmdv6Primary = $"netsh interface ipv6 set dnsservers {nic} static {dnsv6[0]} primary";
-            if (dnsv6.Length == 2) {
+            if (dnsv6.Length == 2)
+            {
                 cmdv6Alternate = $"netsh interface ipv6 add dnsservers {nic} {dnsv6[1]} index=2";
             }
 
@@ -99,7 +110,8 @@ namespace Optimizer {
             Utilities.RunCommand(cmdv6Alternate);
         }
 
-        internal static void ResetDefaultDNS(string nic) {
+        internal static void ResetDefaultDNS(string nic)
+        {
             string cmdv4 = $"netsh interface ipv4 set dnsservers {nic} dhcp";
             string cmdv6 = $"netsh interface ipv6 set dnsservers {nic} dhcp";
 
@@ -107,33 +119,41 @@ namespace Optimizer {
             Utilities.RunCommand(cmdv6);
         }
 
-        internal static void ResetDefaultDNSForAllNICs() {
-            foreach (string nic in NetworkAdapters.Select(x => x.Name)) {
+        internal static void ResetDefaultDNSForAllNICs()
+        {
+            foreach (string nic in NetworkAdapters.Select(x => x.Name))
+            {
                 ResetDefaultDNS(nic);
             }
         }
 
-        internal static void SetDNSForAllNICs(string[] dnsv4, string[] dnsv6) {
-            foreach (string nic in NetworkAdapters.Select(x => x.Name)) {
+        internal static void SetDNSForAllNICs(string[] dnsv4, string[] dnsv6)
+        {
+            foreach (string nic in NetworkAdapters.Select(x => x.Name))
+            {
                 SetDNS(nic, dnsv4, dnsv6);
             }
         }
 
-        internal static PingReply PingHost(string nameOrAddress) {
+        internal static PingReply PingHost(string nameOrAddress)
+        {
             PingReply reply;
-            try {
+            try
+            {
                 addressToPing = Dns.GetHostAddresses(nameOrAddress).First(address => address.AddressFamily == AddressFamily.InterNetwork);
 
                 reply = pinger.Send(addressToPing);
                 return reply;
             }
-            catch {
+            catch
+            {
                 return null;
             }
         }
 
         // It uses the InternalDNS setting for this
-        internal static bool IsInternetAvailable() {
+        internal static bool IsInternetAvailable()
+        {
             const int timeout = 1000;
             string host = OptionsHelper.CurrentOptions.InternalDNS ?? Constants.INTERNAL_DNS;
 
@@ -141,16 +161,19 @@ namespace Optimizer {
             var buffer = new byte[32];
             var pingOptions = new PingOptions();
 
-            try {
+            try
+            {
                 var reply = ping.Send(host, timeout, buffer, pingOptions);
                 return (reply != null && reply.Status == IPStatus.Success);
             }
-            catch (Exception) {
+            catch (Exception)
+            {
                 return false;
             }
         }
 
-        internal static void FlushDNSCache() {
+        internal static void FlushDNSCache()
+        {
             Utilities.RunCommand("ipconfig /flushdns");
         }
 

+ 100 - 51
Optimizer/Program.cs

@@ -6,20 +6,24 @@ using System.Reflection;
 using System.Threading;
 using System.Windows.Forms;
 
-namespace Optimizer {
-    static class Program {
+namespace Optimizer
+{
+    static class Program
+    {
         /// <summary>
         /// Version properties. Do NOT leave them empty
         /// </summary>
         internal readonly static float Major = 16;
-        internal readonly static float Minor = 4;
+        internal readonly static float Minor = 5;
         internal readonly static bool EXPERIMENTAL_BUILD = false;
 
-        internal static string GetCurrentVersionTostring() {
+        internal static string GetCurrentVersionTostring()
+        {
             return $"{Major.ToString()}.{Minor.ToString()}";
         }
 
-        internal static float GetCurrentVersionToFloat() {
+        internal static float GetCurrentVersionToFloat()
+        {
             return float.Parse(GetCurrentVersionTostring());
         }
 
@@ -52,13 +56,15 @@ namespace Optimizer {
         private static extern bool SetProcessDPIAware();
 
         [STAThread]
-        static void Main(string[] switches) {
+        static void Main(string[] switches)
+        {
             AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
             AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
             EmbeddedAssembly.Load(_jsonAssembly, _jsonAssembly.Replace("Optimizer.", string.Empty));
 
             DPI_PREFERENCE = Convert.ToInt32(Microsoft.Win32.Registry.GetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ThemeManager", "LastLoadedDPI", "96"));
-            if (DPI_PREFERENCE <= 0) {
+            if (DPI_PREFERENCE <= 0)
+            {
                 DPI_PREFERENCE = 96;
             }
 
@@ -69,13 +75,15 @@ namespace Optimizer {
             // single-instance mechanism
             MUTEX = new Mutex(true, MUTEX_GUID, out _notRunning);
 
-            if (!_notRunning) {
+            if (!_notRunning)
+            {
                 MessageBox.Show(_alreadyRunningMsg, "Optimizer", MessageBoxButtons.OK, MessageBoxIcon.Information);
                 Environment.Exit(0);
                 return;
             }
 
-            if (!Utilities.IsAdmin()) {
+            if (!Utilities.IsAdmin())
+            {
                 string file = Process.GetCurrentProcess().MainModule.FileName;
                 ProcessStartInfo p = new ProcessStartInfo(file);
                 p.Verb = "runas";
@@ -85,7 +93,8 @@ namespace Optimizer {
                 return;
             }
 
-            if (!Utilities.IsCompatible()) {
+            if (!Utilities.IsCompatible())
+            {
                 HelperForm f = new HelperForm(null, MessageType.Error, _unsupportedMessage);
                 f.ShowDialog();
                 Environment.Exit(0);
@@ -95,40 +104,47 @@ namespace Optimizer {
             CoreHelper.Deploy();
             FontHelper.LoadFont();
 
-            if (switches.Length == 1) {
+            if (switches.Length == 1)
+            {
                 string arg = switches[0].Trim().ToLowerInvariant();
 
                 // UNSAFE mode switch (allows running on Windows Server 2008+)
-                if (arg == "/unsafe") {
+                if (arg == "/unsafe")
+                {
                     UNSAFE_MODE = true;
                     StartMainForm();
                     return;
                 }
 
-                if (arg == "/repair") {
+                if (arg == "/repair")
+                {
                     Utilities.Repair(true);
                     return;
                 }
 
-                if (arg == "/disablehpet") {
+                if (arg == "/disablehpet")
+                {
                     Utilities.DisableHPET();
                     Environment.Exit(0);
                     return;
                 }
-                if (arg == "/enablehpet") {
+                if (arg == "/enablehpet")
+                {
                     Utilities.EnableHPET();
                     Environment.Exit(0);
                     return;
                 }
 
                 // [!!!] unlock all cores instruction 
-                if (arg == "/unlockcores") {
+                if (arg == "/unlockcores")
+                {
                     Utilities.UnlockAllCores();
                     Environment.Exit(0);
                     return;
                 }
 
-                if (arg.StartsWith("/svchostsplit=")) {
+                if (arg.StartsWith("/svchostsplit="))
+                {
                     string x = arg.Replace("/svchostsplit=", string.Empty);
                     bool isValid = !x.Any(c => !char.IsDigit(c));
                     if (isValid && int.TryParse(x, out int result)) Utilities.DisableSvcHostProcessSplitting(result);
@@ -136,13 +152,15 @@ namespace Optimizer {
                     return;
                 }
 
-                if (arg == "/resetsvchostsplit") {
+                if (arg == "/resetsvchostsplit")
+                {
                     Utilities.EnableSvcHostProcessSplitting();
                     Environment.Exit(0);
                     return;
                 }
 
-                if (arg == "/version") {
+                if (arg == "/version")
+                {
                     if (!EXPERIMENTAL_BUILD) MessageBox.Show($"Optimizer: {GetCurrentVersionTostring()}\n\nCoded by: deadmoon © ∞\n\nhttps://github.com/hellzerg/optimizer", "Optimizer", MessageBoxButtons.OK, MessageBoxIcon.Information);
                     else MessageBox.Show("Optimizer: EXPERIMENTAL BUILD. PLEASE DELETE AFTER TESTING.\n\nCoded by: deadmoon © ∞\n\nhttps://github.com/hellzerg/optimizer", "Optimizer", MessageBoxButtons.OK, MessageBoxIcon.Information);
 
@@ -150,38 +168,45 @@ namespace Optimizer {
                     return;
                 }
                 // instruct to restart in safe-mode
-                if (arg == "/restart=safemode") {
+                if (arg == "/restart=safemode")
+                {
                     RestartInSafeMode();
                 }
 
                 // instruct to restart normally
-                if (arg == "/restart=normal") {
+                if (arg == "/restart=normal")
+                {
                     RestartInNormalMode();
                 }
 
                 // disable defender automatically
-                if (arg == "/restart=disabledefender") {
+                if (arg == "/restart=disabledefender")
+                {
                     SetRunOnceDisableDefender();
                 }
 
                 // enable defender automatically
-                if (arg == "/restart=enabledefender") {
+                if (arg == "/restart=enabledefender")
+                {
                     SetRunOnceEnableDefender();
                 }
 
                 // return from safe-mode automatically
-                if (arg == "/silentdisabledefender") {
+                if (arg == "/silentdisabledefender")
+                {
                     DisableDefenderInSafeMode();
                     RestartInNormalMode();
                 }
 
-                if (arg == "/silentenabledefender") {
+                if (arg == "/silentenabledefender")
+                {
                     EnableDefenderInSafeMode();
                     RestartInNormalMode();
                 }
 
                 // disables Defender in SAFE MODE (for Windows 10 1903+ / works in Windows 11 as well)
-                if (arg == "/disabledefender") {
+                if (arg == "/disabledefender")
+                {
                     DisableDefenderInSafeMode();
 
                     MessageBox.Show("Windows Defender has been completely disabled successfully.", "Optimizer", MessageBoxButtons.OK, MessageBoxIcon.Information);
@@ -191,7 +216,8 @@ namespace Optimizer {
 
 
                 // other options for disabling specific tools
-                if (arg.StartsWith("/disable=")) {
+                if (arg.StartsWith("/disable="))
+                {
                     string x = arg.Replace("/disable=", string.Empty);
                     string[] opts = x.Split(',');
 
@@ -209,11 +235,13 @@ namespace Optimizer {
                     return;
                 }
 
-                if (arg.StartsWith("/config=")) {
+                if (arg.StartsWith("/config="))
+                {
                     UNSAFE_MODE = true;
                     string fileName = arg.Replace("/config=", string.Empty);
 
-                    if (!File.Exists(fileName)) {
+                    if (!File.Exists(fileName))
+                    {
                         MessageBox.Show(_confNotFoundMsg, "Optimizer", MessageBoxButtons.OK, MessageBoxIcon.Information);
                         Environment.Exit(0);
                         return;
@@ -221,12 +249,14 @@ namespace Optimizer {
 
                     SilentOps.GetSilentConfig(fileName);
 
-                    if (SilentOps.CurrentSilentConfig == null) {
+                    if (SilentOps.CurrentSilentConfig == null)
+                    {
                         MessageBox.Show(_confInvalidFormatMsg, "Optimizer", MessageBoxButtons.OK, MessageBoxIcon.Information);
                         Environment.Exit(0);
                         return;
                     }
-                    if (!SilentOps.ProcessWindowsVersionCompatibility()) {
+                    if (!SilentOps.ProcessWindowsVersionCompatibility())
+                    {
                         MessageBox.Show(_confInvalidVersionMsg, "Optimizer", MessageBoxButtons.OK, MessageBoxIcon.Information);
                         Environment.Exit(0);
                         return;
@@ -237,31 +267,38 @@ namespace Optimizer {
                     OptionsHelper.SaveSettings();
                 }
             }
-            else {
+            else
+            {
                 StartMainForm();
             }
         }
 
-        private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) {
+        private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
+        {
             Exception error = (Exception)e.ExceptionObject;
             Logger.LogError("Program.Main-UnhandledException", error.Message, error.StackTrace);
         }
 
-        private static void LoadSettings() {
-            // for backward compatibility (legacy)
+        private static void LoadSettings()
+        {
+            // for backward compatibility
             OptionsHelper.LegacyCheck();
 
             // load settings, if there is no settings, load defaults
-            try {
+            try
+            {
                 // show FirstRunForm/Language Selector if app is running first time
-                if (!File.Exists(OptionsHelper.SettingsFile)) {
+                if (!File.Exists(OptionsHelper.SettingsFile))
+                {
                     OptionsHelper.LoadSettings();
-                    if (!SILENT_MODE) {
+                    if (!SILENT_MODE)
+                    {
                         FirstRunForm frf = new FirstRunForm();
                         frf.ShowDialog();
                     }
                 }
-                else {
+                else
+                {
                     OptionsHelper.LoadSettings();
                 }
 
@@ -279,13 +316,15 @@ namespace Optimizer {
                 _argInvalidMsg = OptionsHelper.TranslationList["argInvalidMsg"];
                 _alreadyRunningMsg = OptionsHelper.TranslationList["alreadyRunningMsg"];
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("Program.Main-LoadSettings", ex.Message, ex.StackTrace);
                 Environment.Exit(0);
             }
         }
 
-        internal static void RestartInSafeMode() {
+        internal static void RestartInSafeMode()
+        {
             Utilities.RunCommand("bcdedit /set {current} safeboot Minimal");
             Thread.Sleep(500);
             Utilities.Reboot();
@@ -293,7 +332,8 @@ namespace Optimizer {
             Environment.Exit(0);
         }
 
-        internal static void RestartInNormalMode() {
+        internal static void RestartInNormalMode()
+        {
             Utilities.RunCommand("bcdedit /deletevalue {current} safeboot");
             Thread.Sleep(500);
             Utilities.Reboot();
@@ -301,7 +341,8 @@ namespace Optimizer {
             Environment.Exit(0);
         }
 
-        private static void DisableDefenderInSafeMode() {
+        private static void DisableDefenderInSafeMode()
+        {
             File.WriteAllText("DisableDefenderSafeMode.bat", Properties.Resources.DisableDefenderSafeMode1903Plus);
 
             Utilities.RunBatchFile("DisableDefenderSafeMode.bat");
@@ -312,7 +353,8 @@ namespace Optimizer {
             File.Delete("DisableDefenderSafeMode.bat");
         }
 
-        private static void EnableDefenderInSafeMode() {
+        private static void EnableDefenderInSafeMode()
+        {
             File.WriteAllText("EnableDefenderSafeMode.bat", Properties.Resources.EnableDefenderSafeMode1903Plus);
 
             Utilities.RunBatchFile("EnableDefenderSafeMode.bat");
@@ -323,19 +365,22 @@ namespace Optimizer {
             File.Delete("EnableDefenderSafeMode.bat");
         }
 
-        internal static void SetRunOnceDisableDefender() {
+        internal static void SetRunOnceDisableDefender()
+        {
             // set RunOnce instruction
             Microsoft.Win32.Registry.SetValue(@"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce", "*OptimizerDisableDefender", Assembly.GetExecutingAssembly().Location + " /silentdisabledefender", Microsoft.Win32.RegistryValueKind.String);
             RestartInSafeMode();
         }
 
-        internal static void SetRunOnceEnableDefender() {
+        internal static void SetRunOnceEnableDefender()
+        {
             // set RunOnce instruction
             Microsoft.Win32.Registry.SetValue(@"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce", "*OptimizerEnableDefender", Assembly.GetExecutingAssembly().Location + " /silentenabledefender", Microsoft.Win32.RegistryValueKind.String);
             RestartInSafeMode();
         }
 
-        private static void StartMainForm() {
+        private static void StartMainForm()
+        {
             LoadSettings();
             StartSplashForm();
 
@@ -344,7 +389,8 @@ namespace Optimizer {
             Application.Run(_MainForm);
         }
 
-        private static void StartMainForm(bool?[] codes) {
+        private static void StartMainForm(bool?[] codes)
+        {
             LoadSettings();
             StartSplashForm();
 
@@ -353,7 +399,8 @@ namespace Optimizer {
             Application.Run(_MainForm);
         }
 
-        private static void StartSplashForm() {
+        private static void StartSplashForm()
+        {
             _SplashForm = new SplashForm();
             var splashThread = new Thread(new ThreadStart(
                 () => Application.Run(_SplashForm)));
@@ -362,7 +409,8 @@ namespace Optimizer {
             splashThread.Start();
         }
 
-        private static void MainForm_Load(object sender, EventArgs e) {
+        private static void MainForm_Load(object sender, EventArgs e)
+        {
             if (_SplashForm != null && !_SplashForm.Disposing && !_SplashForm.IsDisposed)
                 _SplashForm.Invoke(new Action(() => _SplashForm.Close()));
 
@@ -371,7 +419,8 @@ namespace Optimizer {
             _MainForm.TopMost = false;
         }
 
-        private static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args) {
+        private static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
+        {
             return EmbeddedAssembly.Get(args.Name);
         }
     }

+ 123 - 86
Optimizer/Properties/Resources.Designer.cs

@@ -61,25 +61,25 @@ namespace Optimizer.Properties {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to Windows Registry Editor Version 5.00
-        ///
-        ///[HKEY_CLASSES_ROOT\Directory\shell\OpenWithCMD]
-        ///@=&quot;Open Command Prompt here&quot;
-        ///&quot;Icon&quot;=&quot;cmd.exe&quot;
-        ///&quot;NoWorkingDirectory&quot;=&quot;&quot;
-        ///
-        ///[HKEY_CLASSES_ROOT\Directory\shell\OpenWithCMD\command]
-        ///@=&quot;cmd.exe /s /k pushd \&quot;%V\&quot;&quot;
-        ///
-        ///[HKEY_CLASSES_ROOT\Directory\Background\shell\OpenWithCMD]
-        ///@=&quot;Open Command Prompt here&quot;
-        ///&quot;Icon&quot;=&quot;cmd.exe&quot;
-        ///&quot;NoWorkingDirectory&quot;=&quot;&quot;
-        ///
-        ///[HKEY_CLASSES_ROOT\Directory\Background\shell\OpenWithCMD\command]
-        ///@=&quot;cmd.exe /s /k pushd \&quot;%V\&quot;&quot;
-        ///
-        ///[HKEY_CLASSES_ROOT\D [rest of string was truncated]&quot;;.
+        ///   Looks up a localized string similar to Windows Registry Editor Version 5.00
+        ///
+        ///[HKEY_CLASSES_ROOT\Directory\shell\OpenWithCMD]
+        ///@=&quot;Open Command Prompt here&quot;
+        ///&quot;Icon&quot;=&quot;cmd.exe&quot;
+        ///&quot;NoWorkingDirectory&quot;=&quot;&quot;
+        ///
+        ///[HKEY_CLASSES_ROOT\Directory\shell\OpenWithCMD\command]
+        ///@=&quot;cmd.exe /s /k pushd \&quot;%V\&quot;&quot;
+        ///
+        ///[HKEY_CLASSES_ROOT\Directory\Background\shell\OpenWithCMD]
+        ///@=&quot;Open Command Prompt here&quot;
+        ///&quot;Icon&quot;=&quot;cmd.exe&quot;
+        ///&quot;NoWorkingDirectory&quot;=&quot;&quot;
+        ///
+        ///[HKEY_CLASSES_ROOT\Directory\Background\shell\OpenWithCMD\command]
+        ///@=&quot;cmd.exe /s /k pushd \&quot;%V\&quot;&quot;
+        ///
+        ///[HKEY_CLASSES_ROOT\Drive\shell\OpenWit [rest of string was truncated]&quot;;.
         /// </summary>
         internal static string AddOpenWithCMD {
             get {
@@ -89,21 +89,22 @@ namespace Optimizer.Properties {
         
         /// <summary>
         ///   Looks up a localized string similar to {
-        ///	&quot;subSystem&quot;: &quot;نظام&quot;,
-        ///	&quot;subPrivacy&quot;: &quot;خصوصية&quot;,
+        ///	&quot;subSystem&quot;: &quot;النظام&quot;,
+        ///	&quot;subPrivacy&quot;: &quot;الخصوصية&quot;,
         ///	&quot;subGaming&quot;: &quot;الألعاب&quot;,
-        ///	&quot;subTouch&quot;: &quot;يلمس&quot;,
-        ///	&quot;subTaskbar&quot;: &quot;ريط المهام&quot;,
-        ///	&quot;subExtras&quot;: &quot;إضافات&quot;,
+        ///	&quot;subTouch&quot;: &quot;اللمس&quot;,
+        ///	&quot;subTaskbar&quot;: &quot;شريط المهام&quot;,
+        ///	&quot;subExtras&quot;: &quot;الإضافات&quot;,
         ///	&quot;btnAbout&quot;: &quot;حسنا&quot;,
         ///	&quot;restartButton&quot;: &quot;إعادة التشغيل الآن&quot;,
         ///	&quot;restartButton8&quot;: &quot;إعادة التشغيل الآن&quot;,
         ///	&quot;restartButton10&quot;: &quot;إعادة التشغيل الآن&quot;,
-        ///	&quot;restartAndApply&quot;: &quot;إعادة التشغيل لتطبيق التغييرات&quot;,
-        ///	&quot;btnFind&quot;: &quot;يجد&quot;,
-        ///	&quot;btnKill&quot;: &quot;قتل&quot;,
-        ///	&quot;trayUnlocker&quot;: &quot;مقابض الملفات&quot;,
-        ///	&quot;onedriveM&quot;: &quot;هل أنت متأكد من أنك تريد إزالة تثبيت OneDrive؟ يؤدي هذا إلى حذف  [rest of string was truncated]&quot;;.
+        ///	&quot;btnFind&quot;: &quot;البحث&quot;,
+        ///	&quot;btnKill&quot;: &quot;إنهاء&quot;,
+        ///	&quot;trayUnlocker&quot;: &quot;مفاتيح الملفات&quot;,
+        ///	&quot;restartAndApply&quot;: &quot;لتطبيق الإعدادات يجب إعادة التشغيل&quot;,
+        ///	&quot;txtVersion&quot;: &quot;الإصدار: {VN}&quot;,
+        ///	&quot;txtBitness&quot;: &quot;أنت تعمل مع { [rest of string was truncated]&quot;;.
         /// </summary>
         internal static string AR {
             get {
@@ -313,13 +314,14 @@ namespace Optimizer.Properties {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to rem USE AT OWN RISK AS IS WITHOUT WARRANTY OF ANY KIND !!!!!
-        ///
-        ///rem https://docs.microsoft.com/en-us/windows-hardware/customize/desktop/unattend/security-malware-windows-defender-disableantispyware
-        ///rem &quot;DisableAntiSpyware&quot; is discontinued and will be ignored on client devices, as of the August 2020 (version 4.18.2007.8) update to Microsoft Defender Antivirus.
-        ///
-        ///rem Disable Tamper Protection First !!!!!
-        ///rem https://www.tenforums.com/tutorials/123792-turn-off-tamper-protection-windows-defender-antivirus.ht [rest of string was truncated]&quot;;.
+        ///   Looks up a localized string similar to rem USE AT OWN RISK AS IS WITHOUT WARRANTY OF ANY KIND !!!!!
+        ///
+        ///rem https://docs.microsoft.com/en-us/windows-hardware/customize/desktop/unattend/security-malware-windows-defender-disableantispyware
+        ///rem &quot;DisableAntiSpyware&quot; is discontinued and will be ignored on client devices, as of the August 2020 (version 4.18.2007.8) update to Microsoft Defender Antivirus.
+        ///
+        ///rem Disable Tamper Protection First !!!!!
+        ///rem https://www.tenforums.com/tutorials/123792-turn-off-tamper-protection-windows-defender-antivirus.html
+        ///reg [rest of string was truncated]&quot;;.
         /// </summary>
         internal static string DisableDefenderSafeMode1903Plus {
             get {
@@ -351,14 +353,14 @@ namespace Optimizer.Properties {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to schtasks /end /tn &quot;\Microsoft\Office\OfficeTelemetryAgentFallBack2016&quot;
-        ///schtasks /change /tn &quot;\Microsoft\Office\OfficeTelemetryAgentFallBack2016&quot; /disable
-        ///schtasks /end /tn &quot;\Microsoft\Office\OfficeTelemetryAgentLogOn2016&quot;
-        ///schtasks /change /tn &quot;\Microsoft\Office\OfficeTelemetryAgentLogOn2016&quot; /disable
-        ///
-        ///schtasks /end /tn &quot;\Microsoft\Office\OfficeTelemetryAgentFallBack&quot;
-        ///schtasks /change /tn &quot;\Microsoft\Office\OfficeTelemetryAgentFallBack&quot; /disable
-        ///schtasks /end /tn &quot;\Microsoft\Office\OfficeTelemetryAgen [rest of string was truncated]&quot;;.
+        ///   Looks up a localized string similar to schtasks /end /tn &quot;\Microsoft\Office\OfficeTelemetryAgentFallBack2016&quot;
+        ///schtasks /change /tn &quot;\Microsoft\Office\OfficeTelemetryAgentFallBack2016&quot; /disable
+        ///schtasks /end /tn &quot;\Microsoft\Office\OfficeTelemetryAgentLogOn2016&quot;
+        ///schtasks /change /tn &quot;\Microsoft\Office\OfficeTelemetryAgentLogOn2016&quot; /disable
+        ///
+        ///schtasks /end /tn &quot;\Microsoft\Office\OfficeTelemetryAgentFallBack&quot;
+        ///schtasks /change /tn &quot;\Microsoft\Office\OfficeTelemetryAgentFallBack&quot; /disable
+        ///schtasks /end /tn &quot;\Microsoft\Office\OfficeTelemetryAgentLogOn&quot; [rest of string was truncated]&quot;;.
         /// </summary>
         internal static string DisableOfficeTelemetryTasks {
             get {
@@ -367,12 +369,12 @@ namespace Optimizer.Properties {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to schtasks /end /tn &quot;\Microsoft\Windows\Customer Experience Improvement Program\Consolidator&quot;
-        ///schtasks /change /tn &quot;\Microsoft\Windows\Customer Experience Improvement Program\Consolidator&quot; /disable
-        ///schtasks /end /tn &quot;\Microsoft\Windows\Customer Experience Improvement Program\BthSQM&quot;
-        ///schtasks /change /tn &quot;\Microsoft\Windows\Customer Experience Improvement Program\BthSQM&quot; /disable
-        ///schtasks /end /tn &quot;\Microsoft\Windows\Customer Experience Improvement Program\KernelCeipTask&quot;
-        ///schtasks /change /tn &quot;\Microsoft\ [rest of string was truncated]&quot;;.
+        ///   Looks up a localized string similar to schtasks /end /tn &quot;\Microsoft\Windows\Customer Experience Improvement Program\Consolidator&quot;
+        ///schtasks /change /tn &quot;\Microsoft\Windows\Customer Experience Improvement Program\Consolidator&quot; /disable
+        ///schtasks /end /tn &quot;\Microsoft\Windows\Customer Experience Improvement Program\BthSQM&quot;
+        ///schtasks /change /tn &quot;\Microsoft\Windows\Customer Experience Improvement Program\BthSQM&quot; /disable
+        ///schtasks /end /tn &quot;\Microsoft\Windows\Customer Experience Improvement Program\KernelCeipTask&quot;
+        ///schtasks /change /tn &quot;\Microsoft\Windo [rest of string was truncated]&quot;;.
         /// </summary>
         internal static string DisableTelemetryTasks {
             get {
@@ -381,10 +383,10 @@ namespace Optimizer.Properties {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to schtasks /end /tn &quot;\Microsoft\XblGameSave\XblGameSaveTask&quot;
-        ///schtasks /change /tn &quot;\Microsoft\XblGameSave\XblGameSaveTask&quot; /disable
-        ///schtasks /end /tn &quot;\Microsoft\XblGameSave\XblGameSaveTaskLogon&quot;
-        ///schtasks /change /tn &quot;\Microsoft\XblGameSave\XblGameSaveTaskLogon&quot; /disable
+        ///   Looks up a localized string similar to schtasks /end /tn &quot;\Microsoft\XblGameSave\XblGameSaveTask&quot;
+        ///schtasks /change /tn &quot;\Microsoft\XblGameSave\XblGameSaveTask&quot; /disable
+        ///schtasks /end /tn &quot;\Microsoft\XblGameSave\XblGameSaveTaskLogon&quot;
+        ///schtasks /change /tn &quot;\Microsoft\XblGameSave\XblGameSaveTaskLogon&quot; /disable
         ///.
         /// </summary>
         internal static string DisableXboxTasks {
@@ -510,14 +512,14 @@ namespace Optimizer.Properties {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to schtasks /change /tn &quot;\Microsoft\Office\OfficeTelemetryAgentFallBack2016&quot; /enable
-        ///schtasks /change /tn &quot;\Microsoft\Office\OfficeTelemetryAgentLogOn2016&quot; /enable
-        ///
-        ///schtasks /change /tn &quot;\Microsoft\Office\OfficeTelemetryAgentFallBack&quot; /enable
-        ///schtasks /change /tn &quot;\Microsoft\Office\OfficeTelemetryAgentLogOn&quot; /enable
-        ///
-        ///reg add &quot;HKCU\SOFTWARE\Microsoft\Office\15.0\Outlook\Options\Mail&quot; /v &quot;EnableLogging&quot; /t REG_DWORD /d 1 /f
-        ///reg add &quot;HKCU\SOFTWARE\Microsoft\Office\16.0\Outlook\Options\Mail&quot; /v &quot;EnableLoggi [rest of string was truncated]&quot;;.
+        ///   Looks up a localized string similar to schtasks /change /tn &quot;\Microsoft\Office\OfficeTelemetryAgentFallBack2016&quot; /enable
+        ///schtasks /change /tn &quot;\Microsoft\Office\OfficeTelemetryAgentLogOn2016&quot; /enable
+        ///
+        ///schtasks /change /tn &quot;\Microsoft\Office\OfficeTelemetryAgentFallBack&quot; /enable
+        ///schtasks /change /tn &quot;\Microsoft\Office\OfficeTelemetryAgentLogOn&quot; /enable
+        ///
+        ///reg add &quot;HKCU\SOFTWARE\Microsoft\Office\15.0\Outlook\Options\Mail&quot; /v &quot;EnableLogging&quot; /t REG_DWORD /d 1 /f
+        ///reg add &quot;HKCU\SOFTWARE\Microsoft\Office\16.0\Outlook\Options\Mail&quot; /v &quot;EnableLogging&quot; /t  [rest of string was truncated]&quot;;.
         /// </summary>
         internal static string EnableOfficeTelemetryTasks {
             get {
@@ -526,12 +528,12 @@ namespace Optimizer.Properties {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to schtasks /change /tn &quot;\Microsoft\Windows\Customer Experience Improvement Program\Consolidator&quot; /enable
-        ///schtasks /change /tn &quot;\Microsoft\Windows\Customer Experience Improvement Program\BthSQM&quot; /enable
-        ///schtasks /change /tn &quot;\Microsoft\Windows\Customer Experience Improvement Program\KernelCeipTask&quot; /enable
-        ///schtasks /change /tn &quot;\Microsoft\Windows\Customer Experience Improvement Program\UsbCeip&quot; /enable
-        ///schtasks /change /tn &quot;\Microsoft\Windows\Customer Experience Improvement Program\Uploader&quot; /enable
-        ///schta [rest of string was truncated]&quot;;.
+        ///   Looks up a localized string similar to schtasks /change /tn &quot;\Microsoft\Windows\Customer Experience Improvement Program\Consolidator&quot; /enable
+        ///schtasks /change /tn &quot;\Microsoft\Windows\Customer Experience Improvement Program\BthSQM&quot; /enable
+        ///schtasks /change /tn &quot;\Microsoft\Windows\Customer Experience Improvement Program\KernelCeipTask&quot; /enable
+        ///schtasks /change /tn &quot;\Microsoft\Windows\Customer Experience Improvement Program\UsbCeip&quot; /enable
+        ///schtasks /change /tn &quot;\Microsoft\Windows\Customer Experience Improvement Program\Uploader&quot; /enable
+        ///schtasks / [rest of string was truncated]&quot;;.
         /// </summary>
         internal static string EnableTelemetryTasks {
             get {
@@ -540,8 +542,8 @@ namespace Optimizer.Properties {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to schtasks /change /tn &quot;\Microsoft\XblGameSave\XblGameSaveTask&quot; /enable
-        ///schtasks /change /tn &quot;\Microsoft\XblGameSave\XblGameSaveTaskLogon&quot; /enable
+        ///   Looks up a localized string similar to schtasks /change /tn &quot;\Microsoft\XblGameSave\XblGameSaveTask&quot; /enable
+        ///schtasks /change /tn &quot;\Microsoft\XblGameSave\XblGameSaveTaskLogon&quot; /enable
         ///.
         /// </summary>
         internal static string EnableXboxTasks {
@@ -713,22 +715,22 @@ namespace Optimizer.Properties {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to Windows Registry Editor Version 5.00
-        ///
-        ///[HKEY_CLASSES_ROOT\*\shell\runas]
-        ///@=&quot;Take Ownership&quot;
-        ///&quot;NoWorkingDirectory&quot;=&quot;&quot;
-        ///
-        ///[HKEY_CLASSES_ROOT\*\shell\runas\command]
-        ///@=&quot;cmd.exe /c takeown /f \&quot;%1\&quot; &amp;&amp; icacls \&quot;%1\&quot; /grant administrators:F&quot;
-        ///&quot;IsolatedCommand&quot;=&quot;cmd.exe /c takeown /f \&quot;%1\&quot; &amp;&amp; icacls \&quot;%1\&quot; /grant administrators:F&quot;
-        ///
-        ///[HKEY_CLASSES_ROOT\Directory\shell\runas]
-        ///@=&quot;Take Ownership&quot;
-        ///&quot;NoWorkingDirectory&quot;=&quot;&quot;
-        ///
-        ///[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
-        ///@=&quot;cmd.exe /c takeown /f \&quot;%1\&quot; /r /d  [rest of string was truncated]&quot;;.
+        ///   Looks up a localized string similar to Windows Registry Editor Version 5.00
+        ///
+        ///[HKEY_CLASSES_ROOT\*\shell\runas]
+        ///@=&quot;Take Ownership&quot;
+        ///&quot;NoWorkingDirectory&quot;=&quot;&quot;
+        ///
+        ///[HKEY_CLASSES_ROOT\*\shell\runas\command]
+        ///@=&quot;cmd.exe /c takeown /f \&quot;%1\&quot; &amp;&amp; icacls \&quot;%1\&quot; /grant administrators:F&quot;
+        ///&quot;IsolatedCommand&quot;=&quot;cmd.exe /c takeown /f \&quot;%1\&quot; &amp;&amp; icacls \&quot;%1\&quot; /grant administrators:F&quot;
+        ///
+        ///[HKEY_CLASSES_ROOT\Directory\shell\runas]
+        ///@=&quot;Take Ownership&quot;
+        ///&quot;NoWorkingDirectory&quot;=&quot;&quot;
+        ///
+        ///[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
+        ///@=&quot;cmd.exe /c takeown /f \&quot;%1\&quot; /r /d y &amp;&amp; icacls \&quot;% [rest of string was truncated]&quot;;.
         /// </summary>
         internal static string InstallTakeOwnership {
             get {
@@ -971,6 +973,16 @@ namespace Optimizer.Properties {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap pakistan {
+            get {
+                object obj = ResourceManager.GetObject("pakistan", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to {
         ///	&quot;subSystem&quot;: &quot;System&quot;,
@@ -1330,6 +1342,31 @@ namespace Optimizer.Properties {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to {
+        ///&quot;subSystem&quot;: &quot;سسٹم&quot;,
+        ///&quot;subPrivacy&quot;: &quot;رازداری&quot;,
+        ///&quot;subGaming&quot;: &quot;گیمنگ&quot;,
+        ///&quot;subTouch&quot;: &quot;ٹچ&quot;,
+        ///&quot;subTaskbar&quot;: &quot;ٹاسک بار&quot;,
+        ///&quot;subExtras&quot;: &quot;اضافی&quot;,
+        ///&quot;btnAbout&quot;: &quot;ٹھیک ہے&quot;,
+        ///&quot;restartButton&quot;: &quot;ابھی دوبارہ شروع کریں&quot;,
+        ///&quot;restartButton8&quot;: &quot;ابھی دوبارہ شروع کریں&quot;,
+        ///&quot;restartButton10&quot;: &quot;ابھی دوبارہ شروع کریں&quot;,
+        ///&quot;btnFind&quot;: &quot;تلاش کریں&quot;,
+        ///&quot;btnKill&quot;: &quot;مار ڈالو&quot;,
+        ///&quot;trayUnlocker&quot;: &quot;فائل ہینڈلز&quot;,
+        ///&quot;restartAndApply&quot;: &quot;تبدیلیاں لاگو کرنے کے لیے دوبارہ شروع کریں&quot;,
+        ///&quot;txtVersion&quot;: &quot;ورژن: {VN}&quot;,
+        ///&quot;txtBitness&quot;: &quot;آپ {BITS} کے ساتھ کام  [rest of string was truncated]&quot;;.
+        /// </summary>
+        internal static string UR {
+            get {
+                return ResourceManager.GetString("UR", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized resource of type System.Drawing.Bitmap.
         /// </summary>

+ 6 - 0
Optimizer/Properties/Resources.resx

@@ -346,4 +346,10 @@
   <data name="VN" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\i18n\VN.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
   </data>
+  <data name="pakistan" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\Flags\pakistan.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="UR" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\i18n\UR.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
+  </data>
 </root>

+ 13 - 11
Optimizer/Resources/i18n/AR.json

@@ -354,7 +354,7 @@
 على شبكة منزلية باستخدام Windows Explorer.",
 	"superfetchTip": "يقوم Superfetch بتحميل التطبيقات الشائعة الاستخدام مسبقًا إلى ذاكرة الوصول العشوائي (RAM)، مما يتسبب في زيادة استخدام القرص،
 وخاصة على محركات الأقراص من نوع HDD.",
-	"compatTip": "تكتشف خدمة "مساعد التوافق" مشكلات التوافق المعروفة في البرامج القديمة.",
+	"compatTip": "تكتشف خدمة مساعد التوافق مشكلات التوافق المعروفة في البرامج القديمة.",
 	"disableOneDriveTip": "تعطيل تكامل التخزين السحابي في OneDrive.",
 	"oldMixerTip": "يستعيد لوحة التحكم الكلاسيكية لخالط الصوت.",
 	"oldExplorerTip": "- تعطيل سجل الوصول السريع
@@ -414,7 +414,7 @@
 	"chatTip": "إزالة أيقونة الدردشة من شريط المهام.",
 	"smallerTaskbarTip": "يجعل حجم شريط المهام والأيقونات أصغر.",
 	"classicRibbonTip": "يستعيد شريط الأدوات الكلاسيكي من نظام التشغيل Windows 10 في File Explorer.",
-	"classicContextTip": "استعادة قائمة النقر بزر الماوس الأيمن الكلاسيكية، وإزالة "إظهار المزيد من الخيارات".",
+	"classicContextTip": "استعادة قائمة النقر بزر الماوس الأيمن الكلاسيكية، وإزالة إظهار المزيد من الخيارات.",
 	"gameModeSw": "تفعيل وضع الألعاب",
 	"gameModeTip": "تمكين وضع الألعاب بالاشتراك مع جدولة GPU المسرَّعة للأجهزة.",
 	"systemRestoreM": "هل أنت متأكد أنك تريد تعطيل استعادة النظام؟ سيؤدي هذا إلى حذف الصور الاحتياطية الحالية الخاصة بك!",
@@ -441,8 +441,8 @@
 	"btnRestoreUwp": "استعادة كل تطبيقات UWP",
 	"restoreUwpMessage": "هل انت متأكد من أنك تريد أن تفعل هذا؟",
 	"telemetrySvcToggle": "تعطيل Optimizer Insights",
-	"edgeAiSw": تعطيل ميزة الإكتشاف في Edge",
-	"edgeTelemetrySw": تعطيل إرسال البيانات في Edge",
+	"edgeAiSw": "تعطيل ميزة الإكتشاف في Edge",
+	"edgeTelemetrySw": "تعطيل إرسال البيانات في Edge",
 	"edgeAiTip": "قم بإزالة شريط Discover في Edge.",
 	"edgeTelemetryTip": "تعطيل خدمات SmartScreen وSpotlight وإرسال البيانات في Edge.",
 	"hpetSw": "تعطيل HPET",
@@ -465,11 +465,13 @@
 	"copilotSw": "تعطيل مساعد الذكاء الإصطناعي CoPilot",
 	"copilotTip": "تعطيل جميع ميزات مساعد الذكاء الأصطناعي windows CoPilot.",
 	"btnReinforce": "تحسين السياسات",
-	"msgReinforce": "هل أنت متأكد أنك تريد إعادة تطبيق سياساتك النشطة الحالية؟",
-	"chkNewsInterest": "تعطيل الأخبار والاهتمامات",
-	"chkAllTrayIcons": "إظهار جميع أيقونات صينية النظام",
-	"chkMenuDelays": "إزالة تأخيرات القائمة",
-	"chkHideSearch": "إخفاء البحث",
-	"chkHideFeed": "إخفاء الطقس",
-	"autoUpdateToggle": "التحديث عند التشغيل"
+	"msgReinforce": "هل أنت متأكد أنك تريد إعادة تطبيق سياساتك النشطة الحالية؟",	
+	"newsInterestsSw": "تعطيل الأخبار && الاهتمامات",
+	"allTrayIconsSw": "إظهار جميع رموز الإشعارات",
+	"noMenuDelaySw": "إزالة تأخير القوائم",
+	"hideSearchSw": "إخفاء بحث شريط المهام",
+	"hideWeatherSw": "إخفاء الطقس في شريط المهام",
+	"autoUpdateToggle": "التحديث تلقائيًا عند التشغيل",
+	"enableUtcSw": "تمکين الوقت العالمي المنسق",
+	"modernStandbySw": "تعطيل Modern Standby"
 }

+ 10 - 8
Optimizer/Resources/i18n/BG.json

@@ -423,8 +423,8 @@
 	"stickersTip": "Стикерите са големи емоджита, които се появяват на тапети, изполсзвани в социални месинджъри.",
 	"hibernateSw": "Изключи хибернирането",
 	"hibernateTip": "Изключва свойството Windows хибернация.",
-	"smbSw1": "Изключи SMBv1 Протокол",
-	"smbSw2": "Изключи SMBv2 Протокол",
+	"smb1Sw": "Изключи SMBv1 Протокол",
+	"smb2Sw": "Изключи SMBv2 Протокол",
 	"smbTip": "SMB{v} протокола е отговорен за споделяне на файлове между Windows Компютри.
 Заменен е със SMBv3, който е по-защитен.",
 	"ntfsStampSw": "Изкючи NTFS времева марка",
@@ -466,10 +466,12 @@
 	"copilotTip": "Изцяло изключва функцията CoPilot AI",
 	"btnReinforce": "Укрепете политиките",
 	"msgReinforce": "Сигурни ли сте, че искате да приложите отново текущите си политики?",
-	"chkNewsInterest": "Изключване на новина и интерес",
-	"chkAllTrayIcons": "Показване на всички икони в областта на лентата",
-	"chkMenuDelays": "Премахване на забавянията в менюто",
-	"chkHideSearch": "Скрий търсенето",
-	"chkHideFeed": "Скрий времето",
-	"autoUpdateToggle": "Обнови при стартиране"
+	"newsInterestsSw": "Деактивиране на новините и интересите",
+	"allTrayIconsSw": "Показване на всички икони за известия",
+	"noMenuDelaySw": "Премахване на забавянето на менютата",
+	"hideSearchSw": "Скриване на търсенето в лентата със задачи",
+	"hideWeatherSw": "Скриване на времето в лентата със задачи",
+	"enableUtcSw": "Включи UTC Времето",
+	"autoUpdateToggle": "Актуализация при стартиране",
+	"modernStandbySw": "Деактивиране на съвременното готвене"
 }

+ 8 - 6
Optimizer/Resources/i18n/CN.json

@@ -465,10 +465,12 @@
     "copilotTip": "完全关闭 CoPilot AI 功能。",
 	"btnReinforce": "强化政策",
 	"msgReinforce": "您确定要重新应用当前的政策吗?",
-	"chkNewsInterest": "禁用新闻和兴趣",
-	"chkAllTrayIcons": "显示所有托盘图标",
-	"chkMenuDelays": "删除菜单延迟",
-	"chkHideSearch": "隐藏搜索",
-	"chkHideFeed": "隐藏天气",
-	"autoUpdateToggle": "启动时更新"
+	"newsInterestsSw": "禁用新闻和兴趣",
+	"allTrayIconsSw": "显示所有通知图标",
+	"noMenuDelaySw": "删除菜单延迟",
+	"hideSearchSw": "隐藏任务栏搜索",
+	"hideWeatherSw": "隐藏任务栏天气",
+	"autoUpdateToggle": "启动时更新",
+	"enableUtcSw": "启用协调世界时",
+	"modernStandbySw": "禁用现代待机"
 }

+ 8 - 6
Optimizer/Resources/i18n/CZ.json

@@ -466,10 +466,12 @@ Má to negativní vliv na výkon.",
     "copilotTip": "Úplně vypne funkci CoPilot AI.",
 	"btnReinforce": "Posílit politiky",
 	"msgReinforce": "Opravdu si přejete znovu použít své stávající politiky?",
-	"chkNewsInterest": "Vypnout Novinky a Zájmy",
-	"chkAllTrayIcons": "Zobrazit všechny ikony v oznamovací oblasti",
-	"chkMenuDelays": "Odstranit zpoždění v menu",
-	"chkHideSearch": "Skrýt vyhledávání",
-	"chkHideFeed": "Skrýt počasí",
-	"autoUpdateToggle": "Aktualizovat při spuštění"
+	"newsInterestsSw": "Zakázat zprávy a zájmy",
+	"allTrayIconsSw": "Zobrazit všechny ikony oznamování",
+	"noMenuDelaySw": "Odstranit zpoždění nabídek",
+	"hideSearchSw": "Skrýt vyhledávání v hlavní liště",
+	"hideWeatherSw": "Skrýt počasí v hlavní liště",
+	"autoUpdateToggle": "Aktualizovat při spuštění",
+	"enableUtcSw": "Aktivovat UTC Čas",
+	"modernStandbySw": "Zakázat moderní pohotovost"
 }

+ 8 - 6
Optimizer/Resources/i18n/DE.json

@@ -440,10 +440,12 @@
     "copilotTip": "Deaktiviert die CoPilot AI-Funktion vollständig.",
 	"btnReinforce": "Richtlinien verstärken",
 	"msgReinforce": "Sind Sie sicher, dass Sie Ihre aktuellen Richtlinien erneut anwenden möchten?",
-	"chkNewsInterest": "News & Interessen deaktivieren",
-	"chkAllTrayIcons": "Alle Tray-Symbole anzeigen",
-	"chkMenuDelays": "Menüverzögerungen entfernen",
-	"chkHideSearch": "Suche ausblenden",
-	"chkHideFeed": "Wetter ausblenden",
-	"autoUpdateToggle": "Aktualisieren beim Start"
+	"newsInterestsSw": "Nachrichten und Interessen deaktivieren",
+	"allTrayIconsSw": "Alle Benachrichtigungssymbole anzeigen",
+	"noMenuDelaySw": "Menüverzögerung entfernen",
+	"hideSearchSw": "Suche in der Taskleiste ausblenden",
+	"hideWeatherSw": "Wetter in der Taskleiste ausblenden",
+	"autoUpdateToggle": "Aktualisierung beim Start",
+	"enableUtcSw": "UTC-Zeit aktivieren",
+	"modernStandbySw": "Modernen Standby deaktivieren"
 }

+ 8 - 6
Optimizer/Resources/i18n/EL.json

@@ -461,10 +461,12 @@
     "copilotTip": "Απενεργοποιεί πλήρως το χαρακτηριστικό CoPilot AI.",
 	"btnReinforce": "Ενίσχυση των πολιτικών",
 	"msgReinforce": "Είστε σίγουροι ότι θέλετε να ξαναεφαρμόσετε τις τρέχουσες πολιτικές σας;",
-	"chkNewsInterest": "Απενεργοποίηση Ειδήσεων",
-	"chkAllTrayIcons": "Εμφάνιση όλων των εικονιδίων",
-	"chkMenuDelays": "Αφαίρεση καθυστερήσεων στο μενού",
-	"chkHideSearch": "Απόκρυψη Αναζήτησης",
-	"chkHideFeed": "Απόκρυψη Καιρού",
-	"autoUpdateToggle": "Ενημέρωση κατά την εκκίνηση"
+	"newsInterestsSw": "Απενεργοποίηση ειδήσεων και ενδιαφερόντων",
+	"allTrayIconsSw": "Εμφάνιση όλων των εικονιδίων ειδοποιήσεων",
+	"noMenuDelaySw": "Αφαίρεση καθυστέρησης μενού",
+	"hideSearchSw": "Απόκρυψη αναζήτησης",
+	"enableUtcSw": "Ενεργοποίηση UTC Ωρας",
+	"hideWeatherSw": "Απόκρυψη καιρού",
+	"autoUpdateToggle": "Ενημέρωση κατά την εκκίνηση",
+	"modernStandbySw": "Απενεργοποίηση Modern Standby"
 }

+ 8 - 6
Optimizer/Resources/i18n/EN.json

@@ -466,10 +466,12 @@ It has negative effect on performance.",
 	"copilotTip": "Completely turns off CoPilot AI feature.",
 	"btnReinforce": "Reinforce policies",
 	"msgReinforce": "Are you sure you want to re-apply your current active policies?",
-	"chkNewsInterest": "Disable News && Interest",
-	"chkAllTrayIcons": "Show all tray icons",
-	"chkMenuDelays": "Remove menu delays",
-	"chkHideSearch": "Hide Search",
-	"chkHideFeed": "Hide Weather",
-	"autoUpdateToggle": "Update on launch"
+	"newsInterestsSw": "Disable News && Interests",
+	"allTrayIconsSw": "Show all notification icons",
+	"noMenuDelaySw": "Remove menus delay",
+	"hideSearchSw": "Hide Taskbar Search",
+	"hideWeatherSw": "Hide Taskbar Weather",
+	"autoUpdateToggle": "Update on launch",
+	"modernStandbySw": "Disable Modern Standby",
+	"enableUtcSw": "Enable UTC Time"
 }

+ 8 - 6
Optimizer/Resources/i18n/ES.json

@@ -463,10 +463,12 @@ Tiene un efecto negativo en el rendimiento.",
     "copilotTip": "Desactiva por completo la función de CoPilot AI.",
 	"btnReinforce": "Reforzar Políticas",
 	"msgReinforce": "¿Estás seguro de que deseas volver a aplicar tus políticas actuales?",
-	"chkNewsInterest": "Desactivar Noticias e Intereses",
-	"chkAllTrayIcons": "Mostrar todos los iconos de la bandeja",
-	"chkMenuDelays": "Eliminar retrasos en el menú",
-	"chkHideSearch": "Ocultar búsqueda",
-	"chkHideFeed": "Ocultar clima",
-	"autoUpdateToggle": "Actualizar al inicio"
+	"newsInterestsSw": "Desactivar noticias e intereses",
+	"allTrayIconsSw": "Mostrar todos los iconos de notificación",
+	"noMenuDelaySw": "Eliminar la demora de los menús",
+	"hideSearchSw": "Ocultar búsqueda en la barra de tareas",
+	"hideWeatherSw": "Ocultar el clima en la barra de tareas",
+	"autoUpdateToggle": "Actualizar al inicio",
+	"enableUtcSw": "Activar Hora UTC",
+	"modernStandbySw": "Desactivar el modo de espera moderno"
 }

+ 8 - 6
Optimizer/Resources/i18n/FA.json

@@ -453,10 +453,12 @@
     "copilotTip": "ویژگی CoPilot AI به طور کامل غیرفعال می‌شود.",
 	"btnReinforce": "تقویت سیاست‌ها",
 	"msgReinforce": "آیا مطمئن هستید که می‌خواهید سیاست‌های فعلی را مجدداً اعمال کنید؟",
-	"chkNewsInterest": "غیرفعال کردن اخبار و علاقه‌مندی‌ها",
-	"chkAllTrayIcons": "نمایش همه آیکون‌های سینی",
-	"chkMenuDelays": "حذف تأخیرهای منو",
-	"chkHideSearch": "مخفی کردن جستجو",
-	"chkHideFeed": "مخفی کردن هواشناسی",
-	"autoUpdateToggle": "به‌روزرسانی در زمان راه‌اندازی"
+	"newsInterestsSw": "غیرفعال کردن اخبار و علاقه‌مندی‌ها",
+	"allTrayIconsSw": "نمایش تمام آیکون‌های اطلاع‌رسانی",
+	"noMenuDelaySw": "حذف تأخیر منوها",
+	"hideSearchSw": "مخفی کردن جستجو در نوار وظایف",
+	"hideWeatherSw": "مخفی کردن آب و هوا در نوار وظایف",
+	"enableUtcSw": "فعال کردن زمان UTC",
+	"autoUpdateToggle": "به‌روزرسانی هنگام راه‌اندازی",
+	"modernStandbySw": "غیرفعال کردن حالت آماده مدرن"
 }

+ 8 - 6
Optimizer/Resources/i18n/FR.json

@@ -440,10 +440,12 @@ Necessite l'ouverture d'un compte Microsoft.",
     "copilotTip": "Désactive complètement la fonctionnalité CoPilot AI.",
 	"btnReinforce": "Renforcer les politiques",
 	"msgReinforce": "Êtes-vous sûr de vouloir réappliquer vos politiques actuelles?",
-	"chkNewsInterest": "Désactiver les Actualités et les Centres d'Intérêt",
-	"chkAllTrayIcons": "Afficher toutes les icônes de la zone de notification",
-	"chkMenuDelays": "Supprimer les retards dans le menu",
-	"chkHideSearch": "Masquer la recherche",
-	"chkHideFeed": "Masquer la météo",
-	"autoUpdateToggle": "Mise à jour au lancement"
+	"newsInterestsSw": "Désactiver les actualités et les centres d'intérêt",
+	"allTrayIconsSw": "Afficher toutes les icônes de notification",
+	"noMenuDelaySw": "Supprimer le délai des menus",
+	"hideSearchSw": "Masquer la recherche dans la barre des tâches",
+	"hideWeatherSw": "Masquer la météo dans la barre des tâches",
+	"autoUpdateToggle": "Mise à jour au démarrage",
+	"enableUtcSw": "Activer l'heure UTC",
+	"modernStandbySw": "Désactiver le mode veille moderne"
 }

+ 8 - 6
Optimizer/Resources/i18n/HU.json

@@ -464,10 +464,12 @@
     "copilotTip": "Teljesen kikapcsolja a CoPilot AI funkciót.",
 	"btnReinforce": "Iránypontok erősítése",
 	"msgReinforce": "Biztos vagy benne, hogy újra alkalmazod az aktuális iránypontokat?",
-	"chkNewsInterest": "Hírek és Érdeklődés kikapcsolása",
-	"chkAllTrayIcons": "Az összes tálca ikon megjelenítése",
-	"chkMenuDelays": "Menü késleltetések eltávolítása",
-	"chkHideSearch": "Keresés elrejtése",
-	"chkHideFeed": "Időjárás elrejtése",
-	"autoUpdateToggle": "Frissítés indításkor"
+	"newsInterestsSw": "Hírek és érdeklődések kikapcsolása",
+	"allTrayIconsSw": "Összes értesítési ikon megjelenítése",
+	"noMenuDelaySw": "Menük késleltetésének eltávolítása",
+	"hideSearchSw": "Keresés elrejtése a feladatlista keresőmezőjében",
+	"hideWeatherSw": "Időjárás elrejtése a feladatlista területén",
+	"enableUtcSw": "UTC Idő Engedélyezése",
+	"autoUpdateToggle": "Frissítés indításkor",
+	"modernStandbySw": "Modern készenléti állapot kikapcsolása"
 }

+ 8 - 6
Optimizer/Resources/i18n/IT.json

@@ -460,10 +460,12 @@ Ha un effetto negativo sulle prestazioni.",
     "copilotTip": "Disattiva completamente la funzionalità CoPilot AI.",
 	"btnReinforce": "Rafforzare le Politiche",
 	"msgReinforce": "Sei sicuro di voler riapplicare le tue attuali politiche?",
-	"chkNewsInterest": "Disabilita Notizie e Interessi",
-	"chkAllTrayIcons": "Mostra tutte le icone nella barra delle applicazioni",
-	"chkMenuDelays": "Rimuovi ritardi nel menu",
-	"chkHideSearch": "Nascondi ricerca",
-	"chkHideFeed": "Nascondi meteo",
-	"autoUpdateToggle": "Aggiorna all'avvio"
+	"newsInterestsSw": "Disabilita notizie e interessi",
+	"allTrayIconsSw": "Mostra tutte le icone di notifica",
+	"noMenuDelaySw": "Rimuovi ritardo dei menu",
+	"hideSearchSw": "Nascondi ricerca nella barra delle applicazioni",
+	"hideWeatherSw": "Nascondi il meteo nella barra delle applicazioni",
+	"enableUtcSw": "Abilita ora UTC",
+	"autoUpdateToggle": "Aggiornamento all'avvio",
+	"modernStandbySw": "Disabilita Standby moderno"
 }

+ 8 - 6
Optimizer/Resources/i18n/JA.json

@@ -457,10 +457,12 @@ SMBv3に置き換えられており、そちらのほうがより安全です。
     "copilotTip": "CoPilot AI の機能を完全に無効にします.",
 	"btnReinforce": "ポリシーを強化する",
 	"msgReinforce": "現在のポリシーを再適用してもよろしいですか?",
-	"chkNewsInterest": "ニュースと興味を無効にする",
-	"chkAllTrayIcons": "すべてのトレイアイコンを表示",
-	"chkMenuDelays": "メニューの遅延を削除",
-	"chkHideSearch": "検索を非表示",
-	"chkHideFeed": "天気を非表示",
-	"autoUpdateToggle": "起動時に更新"
+	"newsInterestsSw": "ニュースと関心事の無効化",
+	"allTrayIconsSw": "すべての通知アイコンを表示",
+	"noMenuDelaySw": "メニューの遅延を削除",
+	"hideSearchSw": "タスクバーの検索を非表示",
+	"hideWeatherSw": "タスクバーの天気を非表示",
+	"enableUtcSw": "UTC 時間を有効にする",
+	"autoUpdateToggle": "起動時の更新",
+	"modernStandbySw": "モダンスタンバイの無効化"
 }

+ 8 - 6
Optimizer/Resources/i18n/KO.json

@@ -468,10 +468,12 @@ Microsoft 계정 로그인이 필요합니다.",
     "copilotTip": "CoPilot AI 기능을 완전히 비활성화합니다.",
 	"btnReinforce": "정책 강화",
 	"msgReinforce": "현재 정책을 다시 적용하시겠습니까?",
-	"chkNewsInterest": "뉴스 및 관심사 비활성화",
-	"chkAllTrayIcons": "모든 트레이 아이콘 표시",
-	"chkMenuDelays": "메뉴 지연 제거",
-	"chkHideSearch": "검색 숨기기",
-	"chkHideFeed": "날씨 숨기기",
-	"autoUpdateToggle": "시작 시 업데이트"
+	"newsInterestsSw": "뉴스 및 관심사 비활성화",
+	"allTrayIconsSw": "모든 알림 아이콘 표시",
+	"noMenuDelaySw": "메뉴 지연 제거",
+	"hideSearchSw": "작업 표시줄 검색 숨기기",
+	"hideWeatherSw": "작업 표시줄 날씨 숨기기",
+	"autoUpdateToggle": "시작 시 업데이트",
+	"enableUtcSw": "UTC 시간 활성화",
+	"modernStandbySw": "현대 대기 모드 비활성화"
 }

+ 8 - 7
Optimizer/Resources/i18n/KU.json

@@ -464,11 +464,12 @@
 	"copilotSw": "CoPilot AI تایبه‌تییه‌کرن",
     "copilotTip": "ویژگی CoPilot AI تایبه‌تییه‌کرنەوەکی ته‌مامی.",
 	"btnReinforce": "سیاسهٔ بیشکوچین",
-	"msgReinforce": "داکۆ پێشەنگەتیە پێوستییە کرییە مە یانو دابەزەکیی نو رە بکە؟",
-	"chkNewsInterest": "شوێنەکردنی نووسراو و نواندن",
-	"chkAllTrayIcons": "نیشاندانی هەموو سیمبۆلەکانی تەخته",
-	"chkMenuDelays": "لابردنی داواکردنی مێنیو",
-	"chkHideSearch": "شارستنی پوشە",
-	"chkHideFeed": "شارستنی هەوا",
-	"autoUpdateToggle": "نوێکردنەوە لە چاڵاککردندا"
+	"newsInterestsSw": "بازنیشانیکردنی خۆبەخش و بەڵگەڕان",
+	"allTrayIconsSw": "پیشاندانی هەموو ئایکۆنەکانی ئاگەداری",
+	"noMenuDelaySw": "لابردنی داگیراوەی مێنوەکان",
+	"hideSearchSw": "شاردنەوەی گەڕان لە نواری کارەکوتنەکان",
+	"enableUtcSw": "فعال کردن زمان UTC",
+	"hideWeatherSw": "شاردنەوەی ئاستی هەوا لە نواری کارەکوتنەکان",
+	"autoUpdateToggle": "نوێکردنەوە لە دەستپێکردن",
+	"modernStandbySw": "بازنیشانیکردنی بەرزی نوێ"
 }

+ 10 - 8
Optimizer/Resources/i18n/NE.json

@@ -376,8 +376,8 @@
 	"stickersTip": "स्टिकरहरू भित्र देखिने बडा इमोजीहरू हो जो वॉलपेपरमा देखिन्छ, सामाजिक संवादकहरूमा प्रयोग गरिन्छ।",
 	"hibernateSw": "हाइबर्नेसन अक्षम गर्नुहोस्",
 	"hibernateTip": "विन्डोज हाइबर्नेट सुविधा अक्षम गर्दछ।",
-	"smbSw1": "SMBv1 प्रोटोकल अक्षम गर्नुहोस्",
-	"smbSw2": "SMBv2 प्रोटोकल अक्षम गर्नुहोस्",
+	"smb1Sw": "SMBv1 प्रोटोकल अक्षम गर्नुहोस्",
+	"smb2Sw": "SMBv2 प्रोटोकल अक्षम गर्नुहोस्",
 	"smbTip": "SMB{v} प्रोटोकल विन्डोज कम्प्युटरहरूको बीच फाइल साझा गर्न जिम्मेवार छ।\nयसलाई SMBv3 द्वारा बदलिएको छ, जुन अधिक सुरक्षित छ।",
 	"ntfsStampSw": "NTFS समय-छाप अक्षम गर्नुहोस्",
 	"ntfsStampTip": "फाइलको अन्तिम पटक पहुँच छाप देखाउँछ।\nयसलाई अक्षम गर्दा डिस्कमा I/O कार्यहरूमा कमी आउन सक्छ।",
@@ -416,10 +416,12 @@
     "copilotTip": "CoPilot AI कुरा पूरा बन्द गर्दछ।",
 	"btnReinforce": "नीत",
 	"msgReinforce": "तपाईंले आफ्ना हालका नीत",
-	"chkNewsInterest": "समाचार र रुचिहरू अक्षम गर्नुहोस्",
-	"chkAllTrayIcons": "सम्पूर्ण ट्रे आइकनहरू देखाउनुहोस्",
-	"chkMenuDelays": "मेनु ल्याग्ले हटाउनुहोस्",
-	"chkHideSearch": "खोज लुकाउनुहोस्",
-	"chkHideFeed": "मौसम लुकाउनुहोस्",
-	"autoUpdateToggle": "प्रक्षेपमा अद्यतन गर्नुहोस्"
+	"newsInterestsSw": "समाचार र रुचिहरू अक्षम गर्नुहोस्",
+	"allTrayIconsSw": "सबै सूचना चिन्हहरू देखाउनुहोस्",
+	"noMenuDelaySw": "मेनू विलम्ब हटाउनुहोस्",
+	"hideSearchSw": "कार्य सामग्री खोज लुकाउनुहोस्",
+	"hideWeatherSw": "तारको समय लुकाउनुहोस्",
+	"enableUtcSw": "समय समन्वित करें UTC",
+	"autoUpdateToggle": "अपडेट प्रारंभमा",
+	"modernStandbySw": "आधुनिक रुकावट अक्षम गर्नुहोस्"
 }

+ 10 - 8
Optimizer/Resources/i18n/NL.json

@@ -374,8 +374,8 @@
    "stickersTip":"Stickers zijn grote emoji's die op achtergrondafbeeldingen verschijnen en worden gebruikt in sociale messengers.",
    "hibernateSw":"Sluimerstand uitschakelen",
    "hibernateTip":"Schakelt de Windows-slaapstandfunctie uit.",
-   "smbSw1":"SMBv1-protocol uitschakelen",
-   "smbSw2":"SMBv2-protocol uitschakelen",
+   "smb1Sw":"SMBv1-protocol uitschakelen",
+   "smb2Sw":"SMBv2-protocol uitschakelen",
    "smbTip":"Het SMB{v}-protocol is verantwoordelijk voor het delen van bestanden tussen Windows-computers. Het is vervangen door SMBv3, wat veiliger is.",
    "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.",
@@ -417,10 +417,12 @@ Het heeft een negatief effect op de prestaties.",
    "copilotTip": "Schakelt de CoPilot AI-functie volledig uit.",
 	"btnReinforce": "Beleid versterken",
 	"msgReinforce": "Weet u zeker dat u uw huidige beleid opnieuw wilt toepassen?",
-   "chkNewsInterest": "Schakel Nieuws en Interesses uit",
-   "chkAllTrayIcons": "Toon alle systeemvakpictogrammen",
-   "chkMenuDelays": "Verwijder menuvertragingen",
-   "chkHideSearch": "Zoeken verbergen",
-   "chkHideFeed": "Weer verbergen",
-   "autoUpdateToggle": "Bij start bijwerken"
+   "newsInterestsSw": "Nieuws en interesses uitschakelen",
+	"allTrayIconsSw": "Alle meldingspictogrammen weergeven",
+	"noMenuDelaySw": "Vertraging van menu's verwijderen",
+	"hideSearchSw": "Zoeken op taakbalk verbergen",
+	"hideWeatherSw": "Weer op taakbalk verbergen",
+   "enableUtcSw": "UTC-tijd inschakelen",
+	"autoUpdateToggle": "Bij opstarten bijwerken",
+	"modernStandbySw": "Moderne stand-bymodus uitschakelen"
 }

+ 8 - 6
Optimizer/Resources/i18n/PL.json

@@ -435,10 +435,12 @@
     "copilotTip": "Całkowicie wyłącza funkcję CoPilot AI.",
 	"btnReinforce": "Wzmocnienie polityk",
 	"msgReinforce": "Czy na pewno chcesz ponownie zastosować obecne polityki?",
-	"chkNewsInterest": "Wyłącz wiadomości i zainteresowania",
-	"chkAllTrayIcons": "Pokaż wszystkie ikony w zasobniku",
-	"chkMenuDelays": "Usuń opóźnienia w menu",
-	"chkHideSearch": "Ukryj wyszukiwanie",
-	"chkHideFeed": "Ukryj pogodę",
-	"autoUpdateToggle": "Aktualizuj przy uruchamianiu"
+	"newsInterestsSw": "Wyłącz wiadomości i zainteresowania",
+	"allTrayIconsSw": "Pokaż wszystkie ikony powiadomień",
+	"noMenuDelaySw": "Usuń opóźnienie menu",
+	"hideSearchSw": "Ukryj wyszukiwanie na pasku zadań",
+	"hideWeatherSw": "Ukryj pogodę na pasku zadań",
+	"enableUtcSw": "Włącz czas UTC",
+	"autoUpdateToggle": "Aktualizuj przy uruchomieniu",
+	"modernStandbySw": "Wyłącz nowoczesny tryb gotowości"
 }

+ 8 - 6
Optimizer/Resources/i18n/PT.json

@@ -463,10 +463,12 @@ Tem efeito negativo no desempenho.",
     "copilotTip": "Desativa completamente a funcionalidade CoPilot AI.",
 	"btnReinforce": "Reforçar Políticas",
 	"msgReinforce": "Tem certeza de que deseja reaplicar suas políticas atuais?",
-	"chkNewsInterest": "Desativar Notícias e Interesses",
-	"chkAllTrayIcons": "Mostrar todos os ícones da bandeja",
-	"chkMenuDelays": "Remover atrasos no menu",
-	"chkHideSearch": "Ocultar busca",
-	"chkHideFeed": "Ocultar tempo",
-	"autoUpdateToggle": "Atualizar no lançamento"
+	"newsInterestsSw": "Desativar notícias e interesses",
+	"allTrayIconsSw": "Mostrar todos os ícones de notificação",
+	"noMenuDelaySw": "Remover atraso de menus",
+	"hideSearchSw": "Ocultar pesquisa na barra de tarefas",
+	"enableUtcSw": "Ativar Hora UTC",
+	"hideWeatherSw": "Ocultar clima na barra de tarefas",
+	"autoUpdateToggle": "Atualizar no lançamento",
+	"modernStandbySw": "Desativar Modo de Espera Moderno"
 }

+ 8 - 6
Optimizer/Resources/i18n/RO.json

@@ -448,10 +448,12 @@
     "copilotTip": "Dezactivează complet funcționalitatea CoPilot AI.",
 	"btnReinforce": "Consolidarea politicilor",
 	"msgReinforce": "Sunteți sigur că doriți să reaplicați politicile actuale?",
-	"chkNewsInterest": "Dezactivează Știri și Interese",
-	"chkAllTrayIcons": "Arată toate pictogramele din zona de notificare",
-	"chkMenuDelays": "Elimină întârzierile din meniu",
-	"chkHideSearch": "Ascunde căutarea",
-	"chkHideFeed": "Ascunde vremea",
-	"autoUpdateToggle": "Actualizare la pornire"
+	"newsInterestsSw": "Dezactivați știrile și interesele",
+	"allTrayIconsSw": "Afișați toate iconurile de notificare",
+	"noMenuDelaySw": "Eliminați întârzierea meniului",
+	"enableUtcSw": "Activare Timp UTC",
+	"hideSearchSw": "Ascundeți căutarea în bara de activități",
+	"hideWeatherSw": "Ascundeți vremea în bara de activități",
+	"autoUpdateToggle": "Actualizare la pornire",
+	"modernStandbySw": "Dezactivați Standby modern"
 }

+ 8 - 6
Optimizer/Resources/i18n/RU.json

@@ -436,10 +436,12 @@
     "copilotTip": "Полностью отключает функцию CoPilot AI.",
 	"btnReinforce": "Укрепить политику",
 	"msgReinforce": "Вы уверены, что хотите повторно применить текущие политики?",
-	"chkNewsInterest": "Отключить Новости и Интересы",
-	"chkAllTrayIcons": "Показать все значки трея",
-	"chkMenuDelays": "Убрать задержки в меню",
-	"chkHideSearch": "Скрыть поиск",
-	"chkHideFeed": "Скрыть погоду",
-	"autoUpdateToggle": "Обновить при запуске"
+	"newsInterestsSw": "Отключить новости и интересы",
+	"allTrayIconsSw": "Показать все значки уведомлений",
+	"noMenuDelaySw": "Убрать задержку меню",
+	"hideSearchSw": "Скрыть поиск на панели задач",
+	"hideWeatherSw": "Скрыть погоду на панели задач",
+	"autoUpdateToggle": "Обновление при запуске",
+	"enableUtcSw": "Включить ВСЕВРЕМЕННОЕ",
+	"modernStandbySw": "Отключить режим современного ожидания"
 }

+ 8 - 6
Optimizer/Resources/i18n/TR.json

@@ -464,10 +464,12 @@ Performansa olumsuz etkisi vardır.",
     "copilotTip": "CoPilot AI özelliğini tamamen kapatır.",
 	"btnReinforce": "Politikaları Güçlendir",
 	"msgReinforce": "Şu anki politikalarınızı tekrar uygulamak istediğinizden emin misiniz?",
-	"chkNewsInterest": "Haberler ve İlgiyi Devre Dışı Bırak",
-	"chkAllTrayIcons": "Tüm tepsici simgelerini göster",
-	"chkMenuDelays": "Menü gecikmelerini kaldır",
-	"chkHideSearch": "Aramayı Gizle",
-	"chkHideFeed": "Hava Durumunu Gizle",
-	"autoUpdateToggle": "Başlangıçta Güncelle"
+	"newsInterestsSw": "Başlıkları ve ilgileri devre dışı bırak",
+	"allTrayIconsSw": "Tüm bildirim simgelerini göster",
+	"noMenuDelaySw": "Menü gecikmesini kaldır",
+	"hideSearchSw": "Görev çubuğundaki aramayı gizle",
+	"hideWeatherSw": "Görev çubuğundaki hava durumunu gizle",
+	"autoUpdateToggle": "Başlangıçta güncelle",
+	"enableUtcSw": "UTC Saati Etkinleştir",
+	"modernStandbySw": "Modern bekleme modunu devre dışı bırak"
 }

+ 8 - 6
Optimizer/Resources/i18n/TW.json

@@ -462,10 +462,12 @@
 	"copilotTip": "完全關閉 CoPilot AI 功能。",
 	"btnReinforce": "加強政策",
 	"msgReinforce": "您確定要重新應用目前的政策嗎?",
-	"chkNewsInterest": "停用新聞和興趣",
-	"chkAllTrayIcons": "顯示所有系統匣圖示",
-	"chkMenuDelays": "移除選單延遲",
-	"chkHideSearch": "隱藏搜尋",
-	"chkHideFeed": "隱藏天氣",
-	"autoUpdateToggle": "啟動時更新"
+	"newsInterestsSw": "停用新聞和興趣",
+	"allTrayIconsSw": "顯示所有通知圖示",
+	"noMenuDelaySw": "移除選單延遲",
+	"hideSearchSw": "隱藏工作列搜尋",
+	"enableUtcSw": "啟用協調世界時間",
+	"hideWeatherSw": "隱藏工作列天氣",
+	"autoUpdateToggle": "啟動時更新",
+	"modernStandbySw": "停用現代待機"
 }

+ 8 - 6
Optimizer/Resources/i18n/UA.json

@@ -467,10 +467,12 @@
     "copilotTip": "Повністю вимикає функцію CoPilot AI.",
 	"btnReinforce": "Підсилити політику",
 	"msgReinforce": "Ви впевнені, що хочете повторно застосувати поточну політику?",
-	"chkNewsInterest": "Вимкнути Новини та Інтереси",
-	"chkAllTrayIcons": "Показати всі значки на панелі задач",
-	"chkMenuDelays": "Видалити затримки у меню",
-	"chkHideSearch": "Приховати пошук",
-	"chkHideFeed": "Приховати погоду",
-	"autoUpdateToggle": "Оновити при запуску"
+	"newsInterestsSw": "Вимкнути новини та інтереси",
+	"allTrayIconsSw": "Показати всі піктограми сповіщень",
+	"noMenuDelaySw": "Видалити затримку меню",
+	"hideSearchSw": "Приховати пошук на панелі завдань",
+	"hideWeatherSw": "Приховати погоду на панелі завдань",
+	"autoUpdateToggle": "Оновлення при запуску",
+	"enableUtcSw": "Увімкнути UTC-час",
+	"modernStandbySw": "Вимкнути сучасний режим очікування"
 }

+ 8 - 6
Optimizer/Resources/i18n/UR.json

@@ -466,10 +466,12 @@
 "copilotTip": "CoPilot AI فیچر کو مکمل طور پر بند کر دیتا ہے۔",
 "btnReinforce": "پالیسیوں کو تقویت دیں",
 "msgReinforce": "کیا آپ واقعی اپنی موجودہ فعال پالیسیوں کو دوبارہ لاگو کرنا چاہتے ہیں؟",
-"chkNewsInterest": "خبروں اور اور دلچسپی کو غیر فعال کریں",
-"chkAllTrayIcons": "تمام ٹرے شبیہیں دکھائیں",
-"chkMenuDelays": "مینو میں تاخیر ہٹائیں",
-"chkHideSearch": "تلاش چھپائیں",
-"chkHideFeed": "موسم چھپائیں",
-"autoUpdateToggle": "لانچ پر اپ ڈیٹ",
+"newsInterestsSw": "خبروں اور دلچسپیوں کو غیرفعال کریں",
+	"allTrayIconsSw": "تمام اطلاعیہ آئیکنز دکھائیں",
+	"noMenuDelaySw": "مینو کی دیر کو ختم کریں",
+	"hideSearchSw": "ٹاسک بار تلاش چھپائیں",
+	"hideWeatherSw": "ٹاسک بار موسم چھپائیں",
+	"autoUpdateToggle": "شروع میں اپ ڈیٹ",
+	"enableUtcSw": "یو ای ٹی سمت ان کریں",
+	"modernStandbySw": "جدید استعداد کو غیر فعال کریں"
 }

+ 8 - 6
Optimizer/Resources/i18n/VN.json

@@ -416,10 +416,12 @@
   "copilotTip": "Tắt hoàn toàn tính năng CoPilot AI.",
   "btnReinforce": "Củng cố các chính sách",
   "msgReinforce": "Bạn có chắc muốn áp dụng lại các chính sách hoạt động hiện tại của bạn không?",
-  "chkNewsInterest": "Tắt Tin tức && Sở thích",
-  "chkAllTrayIcons": "Hiển thị tất cả các biểu tượng khay",
-  "chkMenuDelays": "Loại bỏ độ trễ của menu",
-  "chkHideSearch": "Ẩn Tìm kiếm",
-  "chkHideFeed": "Ẩn Thời tiết",
-  "autoUpdateToggle": "Cập nhật khi khởi động"
+  "newsInterestsSw": "Tắt tin tức và sở thích",
+	"allTrayIconsSw": "Hiển thị tất cả biểu tượng thông báo",
+	"noMenuDelaySw": "Xóa độ trễ của menu",
+	"hideSearchSw": "Ẩn tìm kiếm trên thanh tác vụ",
+	"hideWeatherSw": "Ẩn thời tiết trên thanh tác vụ",
+  "enableUtcSw": "Kích hoạt thời gian UTC",
+	"autoUpdateToggle": "Cập nhật khi khởi động",
+	"modernStandbySw": "Tắt Chế độ chờ hiện đại"
 }

+ 585 - 247
Optimizer/SilentOps.cs

@@ -3,39 +3,49 @@ using System;
 using System.IO;
 using System.Linq;
 
-namespace Optimizer {
-    internal static class SilentOps {
+namespace Optimizer
+{
+    internal static class SilentOps
+    {
         internal static SilentConfig CurrentSilentConfig;
 
-        internal static SilentConfig GetSilentConfig(string path) {
-            try {
+        internal static SilentConfig GetSilentConfig(string path)
+        {
+            try
+            {
                 CurrentSilentConfig = JsonConvert.DeserializeObject<SilentConfig>(File.ReadAllText(path));
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("SilentOps.GetSilentConfig", ex.Message, ex.StackTrace);
                 CurrentSilentConfig = null;
             }
             return CurrentSilentConfig;
         }
 
-        internal static void ProcessAllActions() {
+        internal static void ProcessAllActions()
+        {
             Logger.InitializeSilentReport();
 
-            if (Utilities.CurrentWindowsVersion == WindowsVersion.Windows7) {
+            if (Utilities.CurrentWindowsVersion == WindowsVersion.Windows7)
+            {
                 ProcessTweaksGeneral();
                 Logger.LogInfoSilent("Tweaks | Windows 7");
             }
-            if (Utilities.CurrentWindowsVersion == WindowsVersion.Windows8) {
+            if (Utilities.CurrentWindowsVersion == WindowsVersion.Windows8)
+            {
                 ProcessTweaksGeneral();
                 ProcessTweaksWindows8();
                 Logger.LogInfoSilent("Tweaks | Windows 8.1");
             }
-            if (Utilities.CurrentWindowsVersion == WindowsVersion.Windows10) {
+            if (Utilities.CurrentWindowsVersion == WindowsVersion.Windows10)
+            {
                 ProcessTweaksGeneral();
                 ProcessTweaksWindows10();
                 Logger.LogInfoSilent("Tweaks | Windows 10");
             }
-            if (Utilities.CurrentWindowsVersion == WindowsVersion.Windows11) {
+            if (Utilities.CurrentWindowsVersion == WindowsVersion.Windows11)
+            {
                 ProcessTweaksGeneral();
                 ProcessTweaksWindows10();
                 ProcessTweaksWindows11();
@@ -54,32 +64,41 @@ namespace Optimizer {
             ProcessPostAction();
         }
 
-        internal static bool ProcessWindowsVersionCompatibility() {
+        internal static bool ProcessWindowsVersionCompatibility()
+        {
             return CurrentSilentConfig.WindowsVersion == ((int)Utilities.CurrentWindowsVersion);
         }
 
-        internal static void ProcessPostAction() {
+        internal static void ProcessPostAction()
+        {
             if (CurrentSilentConfig.PostAction.Restart.HasValue &&
-                CurrentSilentConfig.PostAction.Restart.Value == true) {
+                CurrentSilentConfig.PostAction.Restart.Value == true)
+            {
                 string restartType = CurrentSilentConfig.PostAction.RestartType;
-                if (!string.IsNullOrEmpty(restartType)) {
-                    if (restartType == RestartType.Normal.ToString()) {
+                if (!string.IsNullOrEmpty(restartType))
+                {
+                    if (restartType == RestartType.Normal.ToString())
+                    {
                         Program.RestartInNormalMode();
                     }
-                    if (restartType == RestartType.SafeMode.ToString()) {
+                    if (restartType == RestartType.SafeMode.ToString())
+                    {
                         Program.RestartInSafeMode();
                     }
-                    if (restartType == RestartType.DisableDefender.ToString()) {
+                    if (restartType == RestartType.DisableDefender.ToString())
+                    {
                         Program.SetRunOnceDisableDefender();
                     }
-                    if (restartType == RestartType.EnableDefender.ToString()) {
+                    if (restartType == RestartType.EnableDefender.ToString())
+                    {
                         Program.SetRunOnceEnableDefender();
                     }
                 }
             }
         }
 
-        internal static void ProcessCleaner() {
+        internal static void ProcessCleaner()
+        {
             if (CurrentSilentConfig.Cleaner.TempFiles.HasValue && CurrentSilentConfig.Cleaner.TempFiles.Value) CleanHelper.PreviewTemp();
             if (CurrentSilentConfig.Cleaner.BsodDumps.HasValue && CurrentSilentConfig.Cleaner.BsodDumps.Value) CleanHelper.PreviewMinidumps();
             if (CurrentSilentConfig.Cleaner.ErrorReports.HasValue && CurrentSilentConfig.Cleaner.ErrorReports.Value) CleanHelper.PreviewErrorReports();
@@ -116,39 +135,47 @@ namespace Optimizer {
             Logger.LogInfoSilent($"Cleaner | Options");
         }
 
-        internal static void ProcessHosts() {
+        internal static void ProcessHosts()
+        {
             var addList = CurrentSilentConfig.HostsEditor.Add.Where(x => !string.IsNullOrEmpty(x.Domain) && !string.IsNullOrEmpty(x.IpAddress));
             var blockList = CurrentSilentConfig.HostsEditor.Block.Where(x => !string.IsNullOrEmpty(x));
             var removeList = CurrentSilentConfig.HostsEditor.Remove.Where(x => !string.IsNullOrEmpty(x));
             var includeWwwCname = CurrentSilentConfig.HostsEditor.IncludeWwwCname.HasValue ? CurrentSilentConfig.HostsEditor.IncludeWwwCname.Value : false;
 
-            foreach (AddHostsEntry x in addList) {
+            foreach (AddHostsEntry x in addList)
+            {
                 HostsHelper.AddEntry(HostsHelper.SanitizeEntry(x.IpAddress) + " " + HostsHelper.SanitizeEntry(x.Domain));
-                if (includeWwwCname) {
+                if (includeWwwCname)
+                {
                     HostsHelper.AddEntry(HostsHelper.SanitizeEntry(x.IpAddress) + " www." + HostsHelper.SanitizeEntry(x.Domain));
                 }
                 Logger.LogInfoSilent($"Hosts | Add entry: {x.IpAddress} {x.Domain}");
             }
-            foreach (string x in blockList) {
+            foreach (string x in blockList)
+            {
                 HostsHelper.AddEntry("0.0.0.0 " + HostsHelper.SanitizeEntry(x));
                 Logger.LogInfoSilent($"Hosts | Block entry: {x}");
             }
-            foreach (string x in removeList) {
+            foreach (string x in removeList)
+            {
                 HostsHelper.RemoveEntryFromTemplate(x);
                 Logger.LogInfoSilent($"Hosts | Remove entry: {x}");
             }
         }
 
-        internal static void ProcessPinger() {
+        internal static void ProcessPinger()
+        {
             string dnsOption = CurrentSilentConfig.Pinger.SetDns;
 
-            if (dnsOption == Constants.CustomDNS) {
+            if (dnsOption == Constants.CustomDNS)
+            {
                 bool atLeastOnePrimary4 = CurrentSilentConfig.Pinger.CustomDNSv4.Length > 0 && CurrentSilentConfig.Pinger.CustomDNSv4.Length < 3;
                 bool atLeastOnePrimary6 = CurrentSilentConfig.Pinger.CustomDNSv6.Length > 0 && CurrentSilentConfig.Pinger.CustomDNSv6.Length < 3;
                 bool notEmptyDNS4 = Array.Exists(CurrentSilentConfig.Pinger.CustomDNSv4, (x => !string.IsNullOrEmpty(x)));
                 bool notEmptyDNS6 = Array.Exists(CurrentSilentConfig.Pinger.CustomDNSv6, (x => !string.IsNullOrEmpty(x)));
 
-                if (atLeastOnePrimary4 && atLeastOnePrimary6 && notEmptyDNS4 && notEmptyDNS6) {
+                if (atLeastOnePrimary4 && atLeastOnePrimary6 && notEmptyDNS4 && notEmptyDNS6)
+                {
                     PingerHelper.SetDNSForAllNICs(CurrentSilentConfig.Pinger.CustomDNSv4, CurrentSilentConfig.Pinger.CustomDNSv6);
                     Logger.LogInfoSilent("Pinger | Set DNS to custom:");
                     Logger.LogInfoSilent($"Pinger | IPv4: {string.Join(", ", CurrentSilentConfig.Pinger.CustomDNSv4)}");
@@ -156,152 +183,191 @@ namespace Optimizer {
                 }
             }
 
-            if (!string.IsNullOrEmpty(dnsOption) && PingerHelper.DNSOptions.Contains(dnsOption)) {
-                if (dnsOption == Constants.AutomaticDNS) {
+            if (!string.IsNullOrEmpty(dnsOption) && PingerHelper.DNSOptions.Contains(dnsOption))
+            {
+                if (dnsOption == Constants.AutomaticDNS)
+                {
                     PingerHelper.ResetDefaultDNSForAllNICs();
                 }
-                if (dnsOption == Constants.CloudflareDNS) {
+                if (dnsOption == Constants.CloudflareDNS)
+                {
                     PingerHelper.SetDNSForAllNICs(PingerHelper.CloudflareDNSv4, PingerHelper.CloudflareDNSv6);
                 }
-                if (dnsOption == Constants.OpenDNS) {
+                if (dnsOption == Constants.OpenDNS)
+                {
                     PingerHelper.SetDNSForAllNICs(PingerHelper.OpenDNSv4, PingerHelper.OpenDNSv6);
                 }
-                if (dnsOption == Constants.Quad9DNS) {
+                if (dnsOption == Constants.Quad9DNS)
+                {
                     PingerHelper.SetDNSForAllNICs(PingerHelper.Quad9DNSv4, PingerHelper.Quad9DNSv6);
                 }
-                if (dnsOption == Constants.GoogleDNS) {
+                if (dnsOption == Constants.GoogleDNS)
+                {
                     PingerHelper.SetDNSForAllNICs(PingerHelper.GoogleDNSv4, PingerHelper.GoogleDNSv6);
                 }
-                if (dnsOption == Constants.AlternateDNS) {
+                if (dnsOption == Constants.AlternateDNS)
+                {
                     PingerHelper.SetDNSForAllNICs(PingerHelper.AlternateDNSv4, PingerHelper.AlternateDNSv6);
                 }
-                if (dnsOption == Constants.AdguardDNS) {
+                if (dnsOption == Constants.AdguardDNS)
+                {
                     PingerHelper.SetDNSForAllNICs(PingerHelper.AdguardDNSv4, PingerHelper.AdguardDNSv6);
                 }
-                if (dnsOption == Constants.CleanBrowsingDNS) {
+                if (dnsOption == Constants.CleanBrowsingDNS)
+                {
                     PingerHelper.SetDNSForAllNICs(PingerHelper.CleanBrowsingDNSv4, PingerHelper.CleanBrowsingDNSv6);
                 }
-                if (dnsOption == Constants.CleanBrowsingAdultFilterDNS) {
+                if (dnsOption == Constants.CleanBrowsingAdultFilterDNS)
+                {
                     PingerHelper.SetDNSForAllNICs(PingerHelper.CleanBrowsingAdultDNSv4, PingerHelper.CleanBrowsingAdultDNSv6);
                 }
                 Logger.LogInfoSilent($"Pinger | Set DNS to: {dnsOption}");
             }
             if (CurrentSilentConfig.Pinger.FlushDnsCache.HasValue &&
-                CurrentSilentConfig.Pinger.FlushDnsCache.Value == true) {
+                CurrentSilentConfig.Pinger.FlushDnsCache.Value == true)
+            {
                 PingerHelper.FlushDNSCache();
                 Logger.LogInfoSilent($"Pinger | Flush DNS cache");
             }
         }
 
-        internal static void ProcessProcessControl() {
+        internal static void ProcessProcessControl()
+        {
             var allowList = CurrentSilentConfig.ProcessControl.Allow.Where(x => !string.IsNullOrEmpty(x));
             var blockList = CurrentSilentConfig.ProcessControl.Prevent.Where(x => !string.IsNullOrEmpty(x));
 
-            foreach (string x in allowList) {
+            foreach (string x in allowList)
+            {
                 Utilities.AllowProcessToRun(x);
                 Logger.LogInfoSilent($"ProcessControl | Allow process: {x}");
             }
-            foreach (string x in blockList) {
+            foreach (string x in blockList)
+            {
                 Utilities.PreventProcessFromRunning(x);
                 Logger.LogInfoSilent($"ProcessControl | Prevent process: {x}");
             }
         }
 
-        internal static void ProcessRegistryFix() {
+        internal static void ProcessRegistryFix()
+        {
             if (CurrentSilentConfig.RegistryFix.TaskManager.HasValue &&
-                CurrentSilentConfig.RegistryFix.TaskManager.Value == true) {
+                CurrentSilentConfig.RegistryFix.TaskManager.Value == true)
+            {
                 Utilities.EnableTaskManager();
                 Logger.LogInfoSilent($"RegistryFix | EnableTaskManager");
             }
             if (CurrentSilentConfig.RegistryFix.CommandPrompt.HasValue &&
-                CurrentSilentConfig.RegistryFix.CommandPrompt.Value == true) {
+                CurrentSilentConfig.RegistryFix.CommandPrompt.Value == true)
+            {
                 Utilities.EnableCommandPrompt();
                 Logger.LogInfoSilent($"RegistryFix | EnableCommandPrompt");
             }
             if (CurrentSilentConfig.RegistryFix.ControlPanel.HasValue &&
-                CurrentSilentConfig.RegistryFix.ControlPanel.Value == true) {
+                CurrentSilentConfig.RegistryFix.ControlPanel.Value == true)
+            {
                 Utilities.EnableControlPanel();
                 Logger.LogInfoSilent($"RegistryFix | EnableControlPanel");
             }
             if (CurrentSilentConfig.RegistryFix.FolderOptions.HasValue &&
-                CurrentSilentConfig.RegistryFix.FolderOptions.Value == true) {
+                CurrentSilentConfig.RegistryFix.FolderOptions.Value == true)
+            {
                 Utilities.EnableFolderOptions();
                 Logger.LogInfoSilent($"RegistryFix | EnableFolderOptions");
             }
             if (CurrentSilentConfig.RegistryFix.RunDialog.HasValue &&
-                CurrentSilentConfig.RegistryFix.RunDialog.Value == true) {
+                CurrentSilentConfig.RegistryFix.RunDialog.Value == true)
+            {
                 Utilities.EnableRunDialog();
                 Logger.LogInfoSilent($"RegistryFix | EnableRunDialog");
             }
             if (CurrentSilentConfig.RegistryFix.RightClickMenu.HasValue &&
-                CurrentSilentConfig.RegistryFix.RightClickMenu.Value == true) {
+                CurrentSilentConfig.RegistryFix.RightClickMenu.Value == true)
+            {
                 Utilities.EnableContextMenu();
                 Logger.LogInfoSilent($"RegistryFix | EnableContextMenu");
             }
             if (CurrentSilentConfig.RegistryFix.WindowsFirewall.HasValue &&
-                CurrentSilentConfig.RegistryFix.WindowsFirewall.Value == true) {
+                CurrentSilentConfig.RegistryFix.WindowsFirewall.Value == true)
+            {
                 Utilities.EnableFirewall();
                 Logger.LogInfoSilent($"RegistryFix | EnableFirewall");
             }
             if (CurrentSilentConfig.RegistryFix.RegistryEditor.HasValue &&
-                CurrentSilentConfig.RegistryFix.RegistryEditor.Value == true) {
+                CurrentSilentConfig.RegistryFix.RegistryEditor.Value == true)
+            {
                 Utilities.EnableRegistryEditor();
                 Logger.LogInfoSilent($"RegistryFix | EnableRegistryEditor");
             }
         }
 
-        internal static void ProcessIntegrator() {
-            if (CurrentSilentConfig.Integrator.OpenWithCmd.HasValue) {
-                if (CurrentSilentConfig.Integrator.OpenWithCmd.Value) {
+        internal static void ProcessIntegrator()
+        {
+            if (CurrentSilentConfig.Integrator.OpenWithCmd.HasValue)
+            {
+                if (CurrentSilentConfig.Integrator.OpenWithCmd.Value)
+                {
                     IntegratorHelper.InstallOpenWithCMD();
                     Logger.LogInfoSilent($"Integrator | InstallOpenWithCMD");
                 }
-                else {
+                else
+                {
                     IntegratorHelper.DeleteOpenWithCMD();
                     Logger.LogInfoSilent($"Integrator | DeleteOpenWithCMD");
                 }
             }
-            if (CurrentSilentConfig.Integrator.TakeOwnership.HasValue) {
+            if (CurrentSilentConfig.Integrator.TakeOwnership.HasValue)
+            {
                 IntegratorHelper.InstallTakeOwnership(!CurrentSilentConfig.Integrator.TakeOwnership.Value);
                 Logger.LogInfoSilent($"Integrator | TakeOwnership to {CurrentSilentConfig.Integrator.TakeOwnership.Value}");
             }
         }
 
-        internal static void ProcessAdvancedTweaks() {
+        internal static void ProcessAdvancedTweaks()
+        {
             if (CurrentSilentConfig.AdvancedTweaks.UnlockAllCores.HasValue &&
-                CurrentSilentConfig.AdvancedTweaks.UnlockAllCores.Value == true) {
+                CurrentSilentConfig.AdvancedTweaks.UnlockAllCores.Value == true)
+            {
                 Utilities.UnlockAllCores();
                 Logger.LogInfoSilent("AdvancedTweaks | UnlockAllCores");
             }
 
-            if (CurrentSilentConfig.AdvancedTweaks.SvchostProcessSplitting.Disable.HasValue) {
+            if (CurrentSilentConfig.AdvancedTweaks.SvchostProcessSplitting.Disable.HasValue)
+            {
                 if (CurrentSilentConfig.AdvancedTweaks.SvchostProcessSplitting.Disable.Value &&
                     CurrentSilentConfig.AdvancedTweaks.SvchostProcessSplitting.Ram.HasValue &&
-                    CurrentSilentConfig.AdvancedTweaks.SvchostProcessSplitting.Ram > 0) {
+                    CurrentSilentConfig.AdvancedTweaks.SvchostProcessSplitting.Ram > 0)
+                {
                     Utilities.DisableSvcHostProcessSplitting(CurrentSilentConfig.AdvancedTweaks.SvchostProcessSplitting.Ram.Value);
                     Logger.LogInfoSilent($"AdvancedTweaks | DisableSvcHostProcessSplitting | RAM capacity: {CurrentSilentConfig.AdvancedTweaks.SvchostProcessSplitting.Ram.Value} GB");
                 }
-                else {
+                else
+                {
                     Utilities.EnableSvcHostProcessSplitting();
                     Logger.LogInfoSilent("AdvancedTweaks | EnableSvcHostProcessSplitting");
                 }
             }
 
-            if (CurrentSilentConfig.AdvancedTweaks.DisableHPET.HasValue) {
-                if (CurrentSilentConfig.AdvancedTweaks.DisableHPET.Value) {
+            if (CurrentSilentConfig.AdvancedTweaks.DisableHPET.HasValue)
+            {
+                if (CurrentSilentConfig.AdvancedTweaks.DisableHPET.Value)
+                {
                     Utilities.DisableHPET();
                 }
-                else {
+                else
+                {
                     Utilities.EnableHPET();
                 }
                 OptionsHelper.CurrentOptions.DisableHPET = CurrentSilentConfig.AdvancedTweaks.DisableHPET.Value;
             }
 
-            if (CurrentSilentConfig.AdvancedTweaks.EnableLoginVerbose.HasValue) {
-                if (CurrentSilentConfig.AdvancedTweaks.EnableLoginVerbose.Value) {
+            if (CurrentSilentConfig.AdvancedTweaks.EnableLoginVerbose.HasValue)
+            {
+                if (CurrentSilentConfig.AdvancedTweaks.EnableLoginVerbose.Value)
+                {
                     Utilities.EnableLoginVerbose();
                 }
-                else {
+                else
+                {
                     Utilities.DisableLoginVerbose();
                 }
                 OptionsHelper.CurrentOptions.EnableLoginVerbose = CurrentSilentConfig.AdvancedTweaks.EnableLoginVerbose.Value;
@@ -310,256 +376,372 @@ namespace Optimizer {
 
 
         #region General Tweaks
-        internal static void ProcessTweaksGeneral() {
-            if (CurrentSilentConfig.Tweaks.EnablePerformanceTweaks.HasValue) {
-                if (CurrentSilentConfig.Tweaks.EnablePerformanceTweaks.Value) {
+        internal static void ProcessTweaksGeneral()
+        {
+            if (CurrentSilentConfig.Tweaks.EnablePerformanceTweaks.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.EnablePerformanceTweaks.Value)
+                {
                     OptimizeHelper.EnablePerformanceTweaks();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.DisablePerformanceTweaks();
                 }
                 OptionsHelper.CurrentOptions.EnablePerformanceTweaks = CurrentSilentConfig.Tweaks.EnablePerformanceTweaks.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableNetworkThrottling.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableNetworkThrottling.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableNetworkThrottling.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableNetworkThrottling.Value)
+                {
                     OptimizeHelper.DisableNetworkThrottling();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableNetworkThrottling();
                 }
                 OptionsHelper.CurrentOptions.DisableNetworkThrottling = CurrentSilentConfig.Tweaks.DisableNetworkThrottling.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableWindowsDefender.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableWindowsDefender.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableWindowsDefender.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableWindowsDefender.Value)
+                {
                     OptimizeHelper.DisableDefender();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableDefender();
                 }
                 OptionsHelper.CurrentOptions.DisableWindowsDefender = CurrentSilentConfig.Tweaks.DisableWindowsDefender.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableSystemRestore.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableSystemRestore.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableSystemRestore.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableSystemRestore.Value)
+                {
                     OptimizeHelper.DisableSystemRestore();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableSystemRestore();
                 }
                 OptionsHelper.CurrentOptions.DisableSystemRestore = CurrentSilentConfig.Tweaks.DisableSystemRestore.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisablePrintService.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisablePrintService.Value) {
+            if (CurrentSilentConfig.Tweaks.DisablePrintService.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisablePrintService.Value)
+                {
                     OptimizeHelper.DisablePrintService();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnablePrintService();
                 }
                 OptionsHelper.CurrentOptions.DisablePrintService = CurrentSilentConfig.Tweaks.DisablePrintService.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableMediaPlayerSharing.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableMediaPlayerSharing.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableMediaPlayerSharing.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableMediaPlayerSharing.Value)
+                {
                     OptimizeHelper.DisableMediaPlayerSharing();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableMediaPlayerSharing();
                 }
                 OptionsHelper.CurrentOptions.DisableMediaPlayerSharing = CurrentSilentConfig.Tweaks.DisableMediaPlayerSharing.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableErrorReporting.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableErrorReporting.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableErrorReporting.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableErrorReporting.Value)
+                {
                     OptimizeHelper.DisableErrorReporting();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableErrorReporting();
                 }
                 OptionsHelper.CurrentOptions.DisableErrorReporting = CurrentSilentConfig.Tweaks.DisableErrorReporting.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableHomeGroup.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableHomeGroup.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableHomeGroup.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableHomeGroup.Value)
+                {
                     OptimizeHelper.DisableHomeGroup();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableHomeGroup();
                 }
                 OptionsHelper.CurrentOptions.DisableHomeGroup = CurrentSilentConfig.Tweaks.DisableHomeGroup.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableSuperfetch.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableSuperfetch.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableSuperfetch.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableSuperfetch.Value)
+                {
                     OptimizeHelper.DisableSuperfetch();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableSuperfetch();
                 }
                 OptionsHelper.CurrentOptions.DisableSuperfetch = CurrentSilentConfig.Tweaks.DisableSuperfetch.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableTelemetryTasks.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableTelemetryTasks.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableTelemetryTasks.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableTelemetryTasks.Value)
+                {
                     OptimizeHelper.DisableTelemetryTasks();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableTelemetryTasks();
                 }
                 OptionsHelper.CurrentOptions.DisableTelemetryTasks = CurrentSilentConfig.Tweaks.DisableTelemetryTasks.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableOffice2016Telemetry.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableOffice2016Telemetry.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableOffice2016Telemetry.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableOffice2016Telemetry.Value)
+                {
                     OptimizeHelper.DisableOffice2016Telemetry();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableOffice2016Telemetry();
                 }
                 OptionsHelper.CurrentOptions.DisableOffice2016Telemetry = CurrentSilentConfig.Tweaks.DisableOffice2016Telemetry.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableCompatibilityAssistant.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableCompatibilityAssistant.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableCompatibilityAssistant.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableCompatibilityAssistant.Value)
+                {
                     OptimizeHelper.DisableCompatibilityAssistant();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableCompatibilityAssistant();
                 }
                 OptionsHelper.CurrentOptions.DisableCompatibilityAssistant = CurrentSilentConfig.Tweaks.DisableCompatibilityAssistant.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableFaxService.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableFaxService.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableFaxService.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableFaxService.Value)
+                {
                     OptimizeHelper.DisableFaxService();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableFaxService();
                 }
                 OptionsHelper.CurrentOptions.DisableFaxService = CurrentSilentConfig.Tweaks.DisableFaxService.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableSmartScreen.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableSmartScreen.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableSmartScreen.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableSmartScreen.Value)
+                {
                     OptimizeHelper.DisableSmartScreen();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableSmartScreen();
                 }
                 OptionsHelper.CurrentOptions.DisableSmartScreen = CurrentSilentConfig.Tweaks.DisableSmartScreen.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableStickyKeys.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableStickyKeys.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableStickyKeys.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableStickyKeys.Value)
+                {
                     OptimizeHelper.DisableStickyKeys();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableStickyKeys();
                 }
                 OptionsHelper.CurrentOptions.DisableStickyKeys = CurrentSilentConfig.Tweaks.DisableStickyKeys.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableHibernation.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableHibernation.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableHibernation.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableHibernation.Value)
+                {
                     Utilities.DisableHibernation();
                 }
-                else {
+                else
+                {
                     Utilities.EnableHibernation();
                 }
                 OptionsHelper.CurrentOptions.DisableHibernation = CurrentSilentConfig.Tweaks.DisableHibernation.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableSMB1.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableSMB1.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableSMB1.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableSMB1.Value)
+                {
                     OptimizeHelper.DisableSMB("1");
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableSMB("1");
                 }
                 OptionsHelper.CurrentOptions.DisableSMB1 = CurrentSilentConfig.Tweaks.DisableSMB1.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableSMB2.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableSMB2.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableSMB2.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableSMB2.Value)
+                {
                     OptimizeHelper.DisableSMB("2");
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableSMB("2");
                 }
                 OptionsHelper.CurrentOptions.DisableSMB2 = CurrentSilentConfig.Tweaks.DisableSMB2.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableNTFSTimeStamp.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableNTFSTimeStamp.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableNTFSTimeStamp.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableNTFSTimeStamp.Value)
+                {
                     OptimizeHelper.DisableNTFSTimeStamp();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableNTFSTimeStamp();
                 }
                 OptionsHelper.CurrentOptions.DisableNTFSTimeStamp = CurrentSilentConfig.Tweaks.DisableNTFSTimeStamp.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableSearch.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableSearch.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableSearch.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableSearch.Value)
+                {
                     OptimizeHelper.DisableSearch();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableSearch();
                 }
                 OptionsHelper.CurrentOptions.DisableSearch = CurrentSilentConfig.Tweaks.DisableSearch.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableChromeTelemetry.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableChromeTelemetry.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableChromeTelemetry.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableChromeTelemetry.Value)
+                {
                     OptimizeHelper.DisableChromeTelemetry();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableChromeTelemetry();
                 }
                 OptionsHelper.CurrentOptions.DisableChromeTelemetry = CurrentSilentConfig.Tweaks.DisableChromeTelemetry.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableFirefoxTemeletry.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableFirefoxTemeletry.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableFirefoxTemeletry.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableFirefoxTemeletry.Value)
+                {
                     OptimizeHelper.DisableFirefoxTelemetry();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableFirefoxTelemetry();
                 }
                 OptionsHelper.CurrentOptions.DisableFirefoxTemeletry = CurrentSilentConfig.Tweaks.DisableFirefoxTemeletry.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableVisualStudioTelemetry.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableVisualStudioTelemetry.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableVisualStudioTelemetry.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableVisualStudioTelemetry.Value)
+                {
                     OptimizeHelper.DisableVisualStudioTelemetry();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableVisualStudioTelemetry();
                 }
                 OptionsHelper.CurrentOptions.DisableVisualStudioTelemetry = CurrentSilentConfig.Tweaks.DisableVisualStudioTelemetry.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableNVIDIATelemetry.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableNVIDIATelemetry.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableNVIDIATelemetry.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableNVIDIATelemetry.Value)
+                {
                     OptimizeHelper.DisableNvidiaTelemetry();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableNvidiaTelemetry();
                 }
                 OptionsHelper.CurrentOptions.DisableNVIDIATelemetry = CurrentSilentConfig.Tweaks.DisableNVIDIATelemetry.Value;
             }
+
+            if (CurrentSilentConfig.Tweaks.RemoveMenusDelay.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.RemoveMenusDelay.Value)
+                {
+                    OptimizeHelper.RemoveMenusDelay();
+                }
+                else
+                {
+                    OptimizeHelper.RestoreMenusDelay();
+                }
+                OptionsHelper.CurrentOptions.RemoveMenusDelay = CurrentSilentConfig.Tweaks.RemoveMenusDelay.Value;
+            }
+
+            if (CurrentSilentConfig.Tweaks.ShowAllTrayIcons.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.ShowAllTrayIcons.Value)
+                {
+                    OptimizeHelper.ShowAllTrayIcons();
+                }
+                else
+                {
+                    OptimizeHelper.HideTrayIcons();
+                }
+                OptionsHelper.CurrentOptions.ShowAllTrayIcons = CurrentSilentConfig.Tweaks.ShowAllTrayIcons.Value;
+            }
+
+            if (CurrentSilentConfig.Tweaks.EnableUtcTime.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.EnableUtcTime.Value)
+                {
+                    OptimizeHelper.EnableUTCTime();
+                }
+                else
+                {
+                    OptimizeHelper.DisableUTCTime();
+                }
+                OptionsHelper.CurrentOptions.EnableUtcTime = CurrentSilentConfig.Tweaks.EnableUtcTime.Value;
+            }
         }
         #endregion
 
         #region Windows 8 Tweaks
-        internal static void ProcessTweaksWindows8() {
-            if (CurrentSilentConfig.Tweaks.DisableOneDrive.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableOneDrive.Value) {
+        internal static void ProcessTweaksWindows8()
+        {
+            if (CurrentSilentConfig.Tweaks.DisableOneDrive.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableOneDrive.Value)
+                {
                     OptimizeHelper.DisableOneDrive();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableOneDrive();
                 }
                 OptionsHelper.CurrentOptions.DisableOneDrive = CurrentSilentConfig.Tweaks.DisableOneDrive.Value;
@@ -568,346 +750,502 @@ namespace Optimizer {
         #endregion
 
         #region Windows 10 Tweaks
-        internal static void ProcessTweaksWindows10() {
-            if (CurrentSilentConfig.Tweaks.EnableGamingMode.HasValue) {
-                if (CurrentSilentConfig.Tweaks.EnableGamingMode.Value) {
+        internal static void ProcessTweaksWindows10()
+        {
+            if (CurrentSilentConfig.Tweaks.EnableGamingMode.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.EnableGamingMode.Value)
+                {
                     OptimizeHelper.EnableGamingMode();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.DisableGamingMode();
                 }
                 OptionsHelper.CurrentOptions.EnableGamingMode = CurrentSilentConfig.Tweaks.EnableGamingMode.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.EnableLegacyVolumeSlider.HasValue) {
-                if (CurrentSilentConfig.Tweaks.EnableLegacyVolumeSlider.Value) {
+            if (CurrentSilentConfig.Tweaks.EnableLegacyVolumeSlider.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.EnableLegacyVolumeSlider.Value)
+                {
                     OptimizeHelper.EnableLegacyVolumeSlider();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.DisableLegacyVolumeSlider();
                 }
                 OptionsHelper.CurrentOptions.EnableLegacyVolumeSlider = CurrentSilentConfig.Tweaks.EnableLegacyVolumeSlider.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableQuickAccessHistory.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableQuickAccessHistory.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableQuickAccessHistory.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableQuickAccessHistory.Value)
+                {
                     OptimizeHelper.DisableQuickAccessHistory();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableQuickAccessHistory();
                 }
                 OptionsHelper.CurrentOptions.DisableQuickAccessHistory = CurrentSilentConfig.Tweaks.DisableQuickAccessHistory.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableStartMenuAds.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableStartMenuAds.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableStartMenuAds.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableStartMenuAds.Value)
+                {
                     OptimizeHelper.DisableStartMenuAds();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableStartMenuAds();
                 }
                 OptionsHelper.CurrentOptions.DisableStartMenuAds = CurrentSilentConfig.Tweaks.DisableStartMenuAds.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.UninstallOneDrive.HasValue) {
-                if (CurrentSilentConfig.Tweaks.UninstallOneDrive.Value) {
+            if (CurrentSilentConfig.Tweaks.UninstallOneDrive.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.UninstallOneDrive.Value)
+                {
                     OptimizeHelper.UninstallOneDrive();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.InstallOneDrive();
                 }
                 OptionsHelper.CurrentOptions.UninstallOneDrive = CurrentSilentConfig.Tweaks.UninstallOneDrive.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableMyPeople.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableMyPeople.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableMyPeople.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableMyPeople.Value)
+                {
                     OptimizeHelper.DisableMyPeople();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableMyPeople();
                 }
                 OptionsHelper.CurrentOptions.DisableMyPeople = CurrentSilentConfig.Tweaks.DisableMyPeople.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.EnableLongPaths.HasValue) {
-                if (CurrentSilentConfig.Tweaks.EnableLongPaths.Value) {
+            if (CurrentSilentConfig.Tweaks.EnableLongPaths.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.EnableLongPaths.Value)
+                {
                     OptimizeHelper.EnableLongPaths();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.DisableLongPaths();
                 }
                 OptionsHelper.CurrentOptions.EnableLongPaths = CurrentSilentConfig.Tweaks.EnableLongPaths.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableAutomaticUpdates.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableAutomaticUpdates.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableAutomaticUpdates.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableAutomaticUpdates.Value)
+                {
                     OptimizeHelper.DisableAutomaticUpdates();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableAutomaticUpdates();
                 }
                 OptionsHelper.CurrentOptions.DisableAutomaticUpdates = CurrentSilentConfig.Tweaks.DisableAutomaticUpdates.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.ExcludeDrivers.HasValue) {
-                if (CurrentSilentConfig.Tweaks.ExcludeDrivers.Value) {
+            if (CurrentSilentConfig.Tweaks.ExcludeDrivers.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.ExcludeDrivers.Value)
+                {
                     OptimizeHelper.ExcludeDrivers();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.IncludeDrivers();
                 }
                 OptionsHelper.CurrentOptions.ExcludeDrivers = CurrentSilentConfig.Tweaks.ExcludeDrivers.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableTelemetryServices.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableTelemetryServices.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableTelemetryServices.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableTelemetryServices.Value)
+                {
                     OptimizeHelper.DisableTelemetryServices();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableTelemetryServices();
                 }
                 OptionsHelper.CurrentOptions.DisableTelemetryServices = CurrentSilentConfig.Tweaks.DisableTelemetryServices.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisablePrivacyOptions.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisablePrivacyOptions.Value) {
+            if (CurrentSilentConfig.Tweaks.DisablePrivacyOptions.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisablePrivacyOptions.Value)
+                {
                     OptimizeHelper.EnhancePrivacy();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.CompromisePrivacy();
                 }
                 OptionsHelper.CurrentOptions.DisablePrivacyOptions = CurrentSilentConfig.Tweaks.DisablePrivacyOptions.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableCortana.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableCortana.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableCortana.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableCortana.Value)
+                {
                     OptimizeHelper.DisableCortana();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableCortana();
                 }
                 OptionsHelper.CurrentOptions.DisableCortana = CurrentSilentConfig.Tweaks.DisableCortana.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableSensorServices.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableSensorServices.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableSensorServices.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableSensorServices.Value)
+                {
                     OptimizeHelper.DisableSensorServices();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableSensorServices();
                 }
                 OptionsHelper.CurrentOptions.DisableSensorServices = CurrentSilentConfig.Tweaks.DisableSensorServices.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableWindowsInk.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableWindowsInk.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableWindowsInk.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableWindowsInk.Value)
+                {
                     OptimizeHelper.DisableWindowsInk();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableWindowsInk();
                 }
                 OptionsHelper.CurrentOptions.DisableWindowsInk = CurrentSilentConfig.Tweaks.DisableWindowsInk.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableSpellingTyping.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableSpellingTyping.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableSpellingTyping.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableSpellingTyping.Value)
+                {
                     OptimizeHelper.DisableSpellingAndTypingFeatures();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableSpellingAndTypingFeatures();
                 }
                 OptionsHelper.CurrentOptions.DisableSpellingTyping = CurrentSilentConfig.Tweaks.DisableSpellingTyping.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableXboxLive.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableXboxLive.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableXboxLive.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableXboxLive.Value)
+                {
                     OptimizeHelper.DisableXboxLive();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableXboxLive();
                 }
                 OptionsHelper.CurrentOptions.DisableXboxLive = CurrentSilentConfig.Tweaks.DisableXboxLive.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableGameBar.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableGameBar.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableGameBar.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableGameBar.Value)
+                {
                     OptimizeHelper.DisableGameBar();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableGameBar();
                 }
                 OptionsHelper.CurrentOptions.DisableGameBar = CurrentSilentConfig.Tweaks.DisableGameBar.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableInsiderService.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableInsiderService.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableInsiderService.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableInsiderService.Value)
+                {
                     OptimizeHelper.DisableInsiderService();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableInsiderService();
                 }
                 OptionsHelper.CurrentOptions.DisableInsiderService = CurrentSilentConfig.Tweaks.DisableInsiderService.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableStoreUpdates.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableStoreUpdates.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableStoreUpdates.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableStoreUpdates.Value)
+                {
                     OptimizeHelper.DisableStoreUpdates();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableStoreUpdates();
                 }
                 OptionsHelper.CurrentOptions.DisableStoreUpdates = CurrentSilentConfig.Tweaks.DisableStoreUpdates.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableCloudClipboard.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableCloudClipboard.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableCloudClipboard.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableCloudClipboard.Value)
+                {
                     OptimizeHelper.DisableCloudClipboard();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableCloudClipboard();
                 }
                 OptionsHelper.CurrentOptions.DisableCloudClipboard = CurrentSilentConfig.Tweaks.DisableCloudClipboard.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.RemoveCastToDevice.HasValue) {
-                if (CurrentSilentConfig.Tweaks.RemoveCastToDevice.Value) {
+            if (CurrentSilentConfig.Tweaks.RemoveCastToDevice.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.RemoveCastToDevice.Value)
+                {
                     OptimizeHelper.RemoveCastToDevice();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.AddCastToDevice();
                 }
                 OptionsHelper.CurrentOptions.RemoveCastToDevice = CurrentSilentConfig.Tweaks.RemoveCastToDevice.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableEdgeTelemetry.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableEdgeTelemetry.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableEdgeTelemetry.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableEdgeTelemetry.Value)
+                {
                     OptimizeHelper.DisableEdgeTelemetry();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableEdgeTelemetry();
                 }
                 OptionsHelper.CurrentOptions.DisableEdgeTelemetry = CurrentSilentConfig.Tweaks.DisableEdgeTelemetry.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableEdgeDiscoverBar.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableEdgeDiscoverBar.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableEdgeDiscoverBar.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableEdgeDiscoverBar.Value)
+                {
                     OptimizeHelper.DisableEdgeDiscoverBar();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableEdgeDiscoverBar();
                 }
                 OptionsHelper.CurrentOptions.DisableEdgeDiscoverBar = CurrentSilentConfig.Tweaks.DisableEdgeDiscoverBar.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.RestoreClassicPhotoViewer.HasValue) {
-                if (CurrentSilentConfig.Tweaks.RestoreClassicPhotoViewer.Value) {
+            if (CurrentSilentConfig.Tweaks.RestoreClassicPhotoViewer.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.RestoreClassicPhotoViewer.Value)
+                {
                     OptimizeHelper.RestoreClassicPhotoViewer();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.DisableClassicPhotoViewer();
                 }
                 OptionsHelper.CurrentOptions.RestoreClassicPhotoViewer = CurrentSilentConfig.Tweaks.RestoreClassicPhotoViewer.Value;
             }
+
+            if (CurrentSilentConfig.Tweaks.DisableNewsInterests.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableNewsInterests.Value)
+                {
+                    OptimizeHelper.DisableNewsInterests();
+                }
+                else
+                {
+                    OptimizeHelper.EnableNewsInterests();
+                }
+                OptionsHelper.CurrentOptions.DisableNewsInterests = CurrentSilentConfig.Tweaks.DisableNewsInterests.Value;
+            }
+
+            if (CurrentSilentConfig.Tweaks.HideTaskbarSearch.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.HideTaskbarSearch.Value)
+                {
+                    OptimizeHelper.HideTaskbarSearch();
+                }
+                else
+                {
+                    OptimizeHelper.ShowTaskbarSearch();
+                }
+                OptionsHelper.CurrentOptions.HideTaskbarSearch = CurrentSilentConfig.Tweaks.HideTaskbarSearch.Value;
+            }
+
+            if (CurrentSilentConfig.Tweaks.HideTaskbarWeather.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.HideTaskbarWeather.Value)
+                {
+                    OptimizeHelper.HideTaskbarWeather();
+                }
+                else
+                {
+                    OptimizeHelper.ShowTaskbarWeather();
+                }
+                OptionsHelper.CurrentOptions.HideTaskbarWeather = CurrentSilentConfig.Tweaks.HideTaskbarWeather.Value;
+            }
+
+            if (CurrentSilentConfig.Tweaks.DisableModernStandby.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableModernStandby.Value)
+                {
+                    OptimizeHelper.DisableModernStandby();
+                }
+                else
+                {
+                    OptimizeHelper.EnableModernStandby();
+                }
+                OptionsHelper.CurrentOptions.DisableModernStandby = CurrentSilentConfig.Tweaks.DisableModernStandby.Value;
+            }
         }
         #endregion
 
         #region Windows 11 Tweaks
-        internal static void ProcessTweaksWindows11() {
-            if (CurrentSilentConfig.Tweaks.TaskbarToLeft.HasValue) {
-                if (CurrentSilentConfig.Tweaks.TaskbarToLeft.Value) {
+        internal static void ProcessTweaksWindows11()
+        {
+            if (CurrentSilentConfig.Tweaks.TaskbarToLeft.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.TaskbarToLeft.Value)
+                {
                     OptimizeHelper.AlignTaskbarToLeft();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.AlignTaskbarToCenter();
                 }
                 OptionsHelper.CurrentOptions.TaskbarToLeft = CurrentSilentConfig.Tweaks.TaskbarToLeft.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableStickers.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableStickers.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableStickers.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableStickers.Value)
+                {
                     OptimizeHelper.DisableStickers();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableStickers();
                 }
                 OptionsHelper.CurrentOptions.DisableStickers = CurrentSilentConfig.Tweaks.DisableStickers.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.CompactMode.HasValue) {
-                if (CurrentSilentConfig.Tweaks.CompactMode.Value) {
+            if (CurrentSilentConfig.Tweaks.CompactMode.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.CompactMode.Value)
+                {
                     OptimizeHelper.EnableFilesCompactMode();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.DisableFilesCompactMode();
                 }
                 OptionsHelper.CurrentOptions.CompactMode = CurrentSilentConfig.Tweaks.CompactMode.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableSnapAssist.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableSnapAssist.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableSnapAssist.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableSnapAssist.Value)
+                {
                     OptimizeHelper.DisableSnapAssist();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableSnapAssist();
                 }
                 OptionsHelper.CurrentOptions.DisableSnapAssist = CurrentSilentConfig.Tweaks.DisableSnapAssist.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableWidgets.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableWidgets.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableWidgets.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableWidgets.Value)
+                {
                     OptimizeHelper.DisableWidgets();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableWidgets();
                 }
                 OptionsHelper.CurrentOptions.DisableWidgets = CurrentSilentConfig.Tweaks.DisableWidgets.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableChat.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableChat.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableChat.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableChat.Value)
+                {
                     OptimizeHelper.DisableChat();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableChat();
                 }
                 OptionsHelper.CurrentOptions.DisableChat = CurrentSilentConfig.Tweaks.DisableChat.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableVirtualizationBasedTechnology.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableVirtualizationBasedTechnology.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableVirtualizationBasedTechnology.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableVirtualizationBasedTechnology.Value)
+                {
                     OptimizeHelper.DisableVirtualizationBasedSecurity();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableVirtualizationBasedSecurity();
                 }
                 OptionsHelper.CurrentOptions.DisableVBS = CurrentSilentConfig.Tweaks.DisableVirtualizationBasedTechnology.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.ClassicMenu.HasValue) {
-                if (CurrentSilentConfig.Tweaks.ClassicMenu.Value) {
+            if (CurrentSilentConfig.Tweaks.ClassicMenu.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.ClassicMenu.Value)
+                {
                     OptimizeHelper.DisableShowMoreOptions();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableShowMoreOptions();
                 }
                 OptionsHelper.CurrentOptions.ClassicMenu = CurrentSilentConfig.Tweaks.ClassicMenu.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableTPMCheck.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableTPMCheck.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableTPMCheck.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableTPMCheck.Value)
+                {
                     OptimizeHelper.DisableTPMCheck();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableTPMCheck();
                 }
                 OptionsHelper.CurrentOptions.DisableTPMCheck = CurrentSilentConfig.Tweaks.DisableTPMCheck.Value;
             }
 
-            if (CurrentSilentConfig.Tweaks.DisableCoPilotAI.HasValue) {
-                if (CurrentSilentConfig.Tweaks.DisableCoPilotAI.Value) {
+            if (CurrentSilentConfig.Tweaks.DisableCoPilotAI.HasValue)
+            {
+                if (CurrentSilentConfig.Tweaks.DisableCoPilotAI.Value)
+                {
                     OptimizeHelper.DisableCoPilotAI();
                 }
-                else {
+                else
+                {
                     OptimizeHelper.EnableCoPilotAI();
                 }
                 OptionsHelper.CurrentOptions.DisableCoPilotAI = CurrentSilentConfig.Tweaks.DisableCoPilotAI.Value;

+ 60 - 30
Optimizer/StartupHelper.cs

@@ -4,8 +4,10 @@ using System.Collections.Generic;
 using System.IO;
 using System.Linq;
 
-namespace Optimizer {
-    internal static class StartupHelper {
+namespace Optimizer
+{
+    internal static class StartupHelper
+    {
         internal static readonly string LocalMachineRun = "Software\\Microsoft\\Windows\\CurrentVersion\\Run";
         internal static readonly string LocalMachineRunOnce = "Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce";
         internal static readonly string LocalMachineRunWoW = "Software\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Run";
@@ -16,50 +18,65 @@ namespace Optimizer {
         internal static readonly string LocalMachineStartupFolder = CleanHelper.ProgramData + "\\Microsoft\\Windows\\Start Menu\\Programs\\Startup";
         internal static readonly string CurrentUserStartupFolder = CleanHelper.ProfileAppDataRoaming + "\\Microsoft\\Windows\\Start Menu\\Programs\\Startup";
 
-        private static void GetRegistryStartupItemsHelper(ref List<StartupItem> list, StartupItemLocation location, StartupItemType type) {
+        private static void GetRegistryStartupItemsHelper(ref List<StartupItem> list, StartupItemLocation location, StartupItemType type)
+        {
             string keyPath = string.Empty;
             RegistryKey hive = null;
 
-            if (location == StartupItemLocation.HKLM) {
+            if (location == StartupItemLocation.HKLM)
+            {
                 hive = Registry.LocalMachine;
 
-                if (type == StartupItemType.Run) {
+                if (type == StartupItemType.Run)
+                {
                     keyPath = LocalMachineRun;
                 }
-                else if (type == StartupItemType.RunOnce) {
+                else if (type == StartupItemType.RunOnce)
+                {
                     keyPath = LocalMachineRunOnce;
                 }
             }
-            else if (location == StartupItemLocation.HKLMWoW) {
+            else if (location == StartupItemLocation.HKLMWoW)
+            {
                 hive = Registry.LocalMachine;
 
-                if (type == StartupItemType.Run) {
+                if (type == StartupItemType.Run)
+                {
                     keyPath = LocalMachineRunWoW;
                 }
-                else if (type == StartupItemType.RunOnce) {
+                else if (type == StartupItemType.RunOnce)
+                {
                     keyPath = LocalMachineRunOnceWow;
                 }
             }
-            else if (location == StartupItemLocation.HKCU) {
+            else if (location == StartupItemLocation.HKCU)
+            {
                 hive = Registry.CurrentUser;
 
-                if (type == StartupItemType.Run) {
+                if (type == StartupItemType.Run)
+                {
                     keyPath = CurrentUserRun;
                 }
-                else if (type == StartupItemType.RunOnce) {
+                else if (type == StartupItemType.RunOnce)
+                {
                     keyPath = CurrentUserRunOnce;
                 }
             }
 
-            if (hive != null) {
-                try {
+            if (hive != null)
+            {
+                try
+                {
                     RegistryKey key = hive.OpenSubKey(keyPath, true);
 
-                    if (key != null) {
+                    if (key != null)
+                    {
                         string[] valueNames = key.GetValueNames();
 
-                        foreach (string x in valueNames) {
-                            try {
+                        foreach (string x in valueNames)
+                        {
+                            try
+                            {
                                 RegistryStartupItem item = new RegistryStartupItem();
                                 item.Name = x;
                                 item.FileLocation = key.GetValue(x).ToString();
@@ -69,21 +86,26 @@ namespace Optimizer {
 
                                 list.Add(item);
                             }
-                            catch (Exception ex) {
+                            catch (Exception ex)
+                            {
                                 Logger.LogError("Utilities.GetRegistryStartupItemsHelper", ex.Message, ex.StackTrace);
                             }
                         }
                     }
                 }
-                catch (Exception ex) {
+                catch (Exception ex)
+                {
                     Logger.LogError("Utilities.GetRegistryStartupItemsHelper", ex.Message, ex.StackTrace);
                 }
             }
         }
 
-        private static void GetFolderStartupItemsHelper(ref List<StartupItem> list, IEnumerable<string> files, IEnumerable<string> shortcuts, StartupItemLocation folderOrigin) {
-            foreach (string file in files) {
-                try {
+        private static void GetFolderStartupItemsHelper(ref List<StartupItem> list, IEnumerable<string> files, IEnumerable<string> shortcuts, StartupItemLocation folderOrigin)
+        {
+            foreach (string file in files)
+            {
+                try
+                {
                     FolderStartupItem item = new FolderStartupItem();
                     item.Name = Path.GetFileNameWithoutExtension(file);
                     item.FileLocation = file;
@@ -92,13 +114,16 @@ namespace Optimizer {
 
                     list.Add(item);
                 }
-                catch (Exception ex) {
+                catch (Exception ex)
+                {
                     Logger.LogError("Utilities.GetFolderStartupItemsHelper", ex.Message, ex.StackTrace);
                 }
             }
 
-            foreach (string shortcut in shortcuts) {
-                try {
+            foreach (string shortcut in shortcuts)
+            {
+                try
+                {
                     FolderStartupItem item = new FolderStartupItem();
                     item.Name = Path.GetFileNameWithoutExtension(shortcut);
                     item.FileLocation = Utilities.GetShortcutTargetFile(shortcut);
@@ -107,13 +132,15 @@ namespace Optimizer {
 
                     list.Add(item);
                 }
-                catch (Exception ex) {
+                catch (Exception ex)
+                {
                     Logger.LogError("Utilities.GetFolderStartupItemsHelper", ex.Message, ex.StackTrace);
                 }
             }
         }
 
-        internal static List<StartupItem> GetStartupItems() {
+        internal static List<StartupItem> GetStartupItems()
+        {
             List<StartupItem> startupItems = new List<StartupItem>();
 
             GetRegistryStartupItemsHelper(ref startupItems, StartupItemLocation.HKLM, StartupItemType.Run);
@@ -122,12 +149,14 @@ namespace Optimizer {
             GetRegistryStartupItemsHelper(ref startupItems, StartupItemLocation.HKCU, StartupItemType.Run);
             GetRegistryStartupItemsHelper(ref startupItems, StartupItemLocation.HKCU, StartupItemType.RunOnce);
 
-            if (Environment.Is64BitOperatingSystem) {
+            if (Environment.Is64BitOperatingSystem)
+            {
                 GetRegistryStartupItemsHelper(ref startupItems, StartupItemLocation.HKLMWoW, StartupItemType.Run);
                 GetRegistryStartupItemsHelper(ref startupItems, StartupItemLocation.HKLMWoW, StartupItemType.RunOnce);
             }
 
-            if (Directory.Exists(CurrentUserStartupFolder)) {
+            if (Directory.Exists(CurrentUserStartupFolder))
+            {
                 IEnumerable<string> currentUserFiles = Directory.EnumerateFiles(CurrentUserStartupFolder, "*.*", SearchOption.AllDirectories)
                     .Where(s => s.EndsWith(".exe") || s.EndsWith(".bat") || s.EndsWith(".cmd"));
 
@@ -136,7 +165,8 @@ namespace Optimizer {
                 GetFolderStartupItemsHelper(ref startupItems, currentUserFiles, currentUserShortcuts, StartupItemLocation.CUStartupFolder);
             }
 
-            if (Directory.Exists(LocalMachineStartupFolder)) {
+            if (Directory.Exists(LocalMachineStartupFolder))
+            {
                 IEnumerable<string> localMachineFiles = Directory.EnumerateFiles(LocalMachineStartupFolder, "*.*", SearchOption.AllDirectories)
                     .Where(s => s.EndsWith(".exe") || s.EndsWith(".bat") || s.EndsWith(".cmd"));
 

+ 1 - 1
Optimizer/TelemetryHelper.cs

@@ -14,7 +14,7 @@
 
 //        internal static HttpClient TelemetryClient;
 
-//        internal const string TELEMETRY_API_URL = "https://optimizer-telemetry-handler.azurewebsites.net/telemetry.php";
+//        internal const string TELEMETRY_API_URL = "";
 //        internal const string TELEMETRY_KEY = @"{OPTIMIZER-0EFC7B8A-D1FC-467F-B4B1-0117C643FE19-TELEMETRY}";
 
 //        internal static async void EnableTelemetryService()

+ 24 - 12
Optimizer/TokenPrivilegeHelper.cs

@@ -2,12 +2,15 @@
 using System.Runtime.InteropServices;
 using System.Security;
 
-namespace Optimizer {
+namespace Optimizer
+{
     /*
      *  Allows clients to obtain a Windows token privilege for a well-defined scope simply by "using" an instance of this class.
      */
-    sealed class TokenPrivilegeHelper : IDisposable {
-        private enum PrivilegeAction : uint {
+    sealed class TokenPrivilegeHelper : IDisposable
+    {
+        private enum PrivilegeAction : uint
+        {
             Disable = 0x0,
             Enable = 0x2
         }
@@ -18,25 +21,29 @@ namespace Optimizer {
 
         private readonly string privilegeName;
 
-        private TokenPrivilegeHelper(string privilegeName) {
+        private TokenPrivilegeHelper(string privilegeName)
+        {
             this.privilegeName = privilegeName;
             Apply(PrivilegeAction.Enable);
         }
 
-        private void Apply(PrivilegeAction action) {
+        private void Apply(PrivilegeAction action)
+        {
             OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, out IntPtr tokenHandle);
             LookupPrivilegeValue(null, privilegeName, out Luid luid);
             var tokenPrivilege = new TokenPrivileges(luid, (uint)action);
             UpdateTokenPrivileges(tokenHandle, tokenPrivilege);
         }
 
-        private void UpdateTokenPrivileges(IntPtr tokenHandle, TokenPrivileges privilegeInfo) {
+        private void UpdateTokenPrivileges(IntPtr tokenHandle, TokenPrivileges privilegeInfo)
+        {
             bool successful = AdjustTokenPrivileges(tokenHandle, false, ref privilegeInfo, 0, IntPtr.Zero, IntPtr.Zero);
             if (!successful || Marshal.GetLastWin32Error() == ERROR_NOT_ALL_ASSIGNED)
                 throw new SecurityException($"Can't adjust token privilege {privilegeName}");
         }
 
-        public void Dispose() {
+        public void Dispose()
+        {
             Apply(PrivilegeAction.Disable);
         }
 
@@ -44,9 +51,11 @@ namespace Optimizer {
         private const int ERROR_NOT_ALL_ASSIGNED = 1300;
 
         [StructLayout(LayoutKind.Sequential)]
-        private struct TokenPrivileges {
+        private struct TokenPrivileges
+        {
             // We can use this struct only with one privilege since CLR doesn't support marshalling dynamic-sized arrays
-            public TokenPrivileges(Luid luid, uint attributes) {
+            public TokenPrivileges(Luid luid, uint attributes)
+            {
                 Count = 1;
                 Privileges = new[] {
                     new LuidAndAttributes(luid, attributes)
@@ -59,8 +68,10 @@ namespace Optimizer {
         }
 
         [StructLayout(LayoutKind.Sequential)]
-        private readonly struct LuidAndAttributes {
-            public LuidAndAttributes(Luid luid, uint attributes) {
+        private readonly struct LuidAndAttributes
+        {
+            public LuidAndAttributes(Luid luid, uint attributes)
+            {
                 Luid = luid;
                 Attributes = attributes;
             }
@@ -70,7 +81,8 @@ namespace Optimizer {
         }
 
         [StructLayout(LayoutKind.Sequential)]
-        private readonly struct Luid {
+        private readonly struct Luid
+        {
             private readonly uint LowPart;
             private readonly int HighPart;
         }

+ 30 - 15
Optimizer/UWPHelper.cs

@@ -2,36 +2,47 @@
 using System.Collections.ObjectModel;
 using System.Management.Automation;
 
-namespace Optimizer {
-    internal static class UWPHelper {
-        internal static List<KeyValuePair<string, string>> GetUWPApps(bool showAll) {
+namespace Optimizer
+{
+    internal static class UWPHelper
+    {
+        internal static List<KeyValuePair<string, string>> GetUWPApps(bool showAll)
+        {
             List<KeyValuePair<string, string>> modernApps = new List<KeyValuePair<string, string>>();
-            if (Utilities.CurrentWindowsVersion == WindowsVersion.Windows8) {
+            if (Utilities.CurrentWindowsVersion == WindowsVersion.Windows8)
+            {
                 showAll = true;
             }
 
-            using (PowerShell script = PowerShell.Create()) {
-                if (showAll) {
+            using (PowerShell script = PowerShell.Create())
+            {
+                if (showAll)
+                {
                     script.AddScript("Get-AppxPackage | Select Name,InstallLocation");
                 }
-                else {
+                else
+                {
                     script.AddScript(@"Get-AppxPackage | Where {$_.NonRemovable -like ""False""} | Select  Name,InstallLocation");
                 }
 
                 string[] tmp;
                 Collection<PSObject> psResult;
-                try {
+                try
+                {
                     psResult = script.Invoke();
                 }
-                catch {
+                catch
+                {
                     return modernApps;
                 }
 
                 if (psResult == null) return modernApps;
 
-                foreach (PSObject x in psResult) {
+                foreach (PSObject x in psResult)
+                {
                     tmp = x.ToString().Replace("@", string.Empty).Replace("{", string.Empty).Replace("}", string.Empty).Replace("Name=", string.Empty).Replace("InstallLocation=", string.Empty).Trim().Split(';');
-                    if (!modernApps.Exists(i => i.Key == tmp[0])) {
+                    if (!modernApps.Exists(i => i.Key == tmp[0]))
+                    {
                         modernApps.Add(new KeyValuePair<string, string>(tmp[0], tmp[1]));
                     }
                 }
@@ -40,8 +51,10 @@ namespace Optimizer {
             return modernApps;
         }
 
-        internal static bool UninstallUWPApp(string appName) {
-            using (PowerShell script = PowerShell.Create()) {
+        internal static bool UninstallUWPApp(string appName)
+        {
+            using (PowerShell script = PowerShell.Create())
+            {
                 script.AddScript(string.Format("Get-AppxPackage -AllUsers '{0}' | Remove-AppxPackage", appName));
                 script.Invoke();
                 return script.Streams.Error.Count > 0;
@@ -51,10 +64,12 @@ namespace Optimizer {
             }
         }
 
-        internal static bool RestoreAllUWPApps() {
+        internal static bool RestoreAllUWPApps()
+        {
             string cmd = "Get-AppxPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register \"$($_.InstallLocation)\\AppXManifest.xml\"}";
 
-            using (PowerShell script = PowerShell.Create()) {
+            using (PowerShell script = PowerShell.Create())
+            {
                 script.AddScript(cmd);
                 script.Invoke();
                 return script.Streams.Error.Count > 0;

+ 321 - 157
Optimizer/Utilities.cs

@@ -12,8 +12,10 @@ using System.Threading;
 using System.Threading.Tasks;
 using System.Windows.Forms;
 
-namespace Optimizer {
-    internal static class Utilities {
+namespace Optimizer
+{
+    internal static class Utilities
+    {
         // DEPRECATED
         //internal readonly static string DefaultEdgeDownloadFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Downloads");
 
@@ -24,19 +26,24 @@ namespace Optimizer {
 
         internal delegate void SetControlPropertyThreadSafeDelegate(Control control, string propertyName, object propertyValue);
 
-        internal static void SetControlPropertyThreadSafe(Control control, string propertyName, object propertyValue) {
-            if (control.InvokeRequired) {
+        internal static void SetControlPropertyThreadSafe(Control control, string propertyName, object propertyValue)
+        {
+            if (control.InvokeRequired)
+            {
                 control.Invoke(new SetControlPropertyThreadSafeDelegate(SetControlPropertyThreadSafe), new object[] { control, propertyName, propertyValue });
             }
-            else {
+            else
+            {
                 control.GetType().InvokeMember(propertyName, BindingFlags.SetProperty, null, control, new object[] { propertyValue });
             }
         }
 
-        internal static IEnumerable<Control> GetSelfAndChildrenRecursive(Control parent) {
+        internal static IEnumerable<Control> GetSelfAndChildrenRecursive(Control parent)
+        {
             List<Control> controls = new List<Control>();
 
-            foreach (Control child in parent.Controls) {
+            foreach (Control child in parent.Controls)
+            {
                 controls.AddRange(GetSelfAndChildrenRecursive(child));
             }
 
@@ -44,7 +51,8 @@ namespace Optimizer {
             return controls;
         }
 
-        internal static Color ToGrayScale(this Color originalColor) {
+        internal static Color ToGrayScale(this Color originalColor)
+        {
             if (originalColor.Equals(Color.Transparent))
                 return originalColor;
 
@@ -52,49 +60,63 @@ namespace Optimizer {
             return Color.FromArgb(grayScale, grayScale, grayScale);
         }
 
-        internal static string GetWindowsDetails() {
+        internal static string GetWindowsDetails()
+        {
             string bitness = Environment.Is64BitOperatingSystem ? "64-bit" : "32-bit";
-            if (CurrentWindowsVersion == WindowsVersion.Windows10 || CurrentWindowsVersion == WindowsVersion.Windows11) {
+            if (CurrentWindowsVersion == WindowsVersion.Windows10 || CurrentWindowsVersion == WindowsVersion.Windows11)
+            {
                 return string.Format("{0} - {1} ({2})", GetOS(), GetWindows10Build(), bitness);
             }
-            else {
+            else
+            {
                 return string.Format("{0} - ({1})", GetOS(), bitness);
             }
         }
 
-        internal static string GetWindows10Build() {
+        internal static string GetWindows10Build()
+        {
             return (string)Registry.GetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", "DisplayVersion", "");
         }
 
-        internal static string GetOS() {
+        internal static string GetOS()
+        {
             productName = (string)Registry.GetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", "ProductName", "");
 
-            if (productName.Contains("Windows 7")) {
+            if (productName.Contains("Windows 7"))
+            {
                 CurrentWindowsVersion = WindowsVersion.Windows7;
             }
-            if ((productName.Contains("Windows 8")) || (productName.Contains("Windows 8.1"))) {
+            if ((productName.Contains("Windows 8")) || (productName.Contains("Windows 8.1")))
+            {
                 CurrentWindowsVersion = WindowsVersion.Windows8;
             }
-            if (productName.Contains("Windows 10")) {
+            if (productName.Contains("Windows 10"))
+            {
                 buildNumber = (string)Registry.GetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", "CurrentBuild", "");
 
-                if (Convert.ToInt32(buildNumber) >= 22000) {
+                if (Convert.ToInt32(buildNumber) >= 22000)
+                {
                     productName = productName.Replace("Windows 10", "Windows 11");
                     CurrentWindowsVersion = WindowsVersion.Windows11;
                 }
-                else {
+                else
+                {
                     CurrentWindowsVersion = WindowsVersion.Windows10;
                 }
             }
 
-            if (Program.UNSAFE_MODE) {
-                if (productName.Contains("Windows Server 2008")) {
+            if (Program.UNSAFE_MODE)
+            {
+                if (productName.Contains("Windows Server 2008"))
+                {
                     CurrentWindowsVersion = WindowsVersion.Windows7;
                 }
-                if (productName.Contains("Windows Server 2012")) {
+                if (productName.Contains("Windows Server 2012"))
+                {
                     CurrentWindowsVersion = WindowsVersion.Windows8;
                 }
-                if (productName.Contains("Windows Server 2016") || productName.Contains("Windows Server 2019") || productName.Contains("Windows Server 2022")) {
+                if (productName.Contains("Windows Server 2016") || productName.Contains("Windows Server 2019") || productName.Contains("Windows Server 2022"))
+                {
                     CurrentWindowsVersion = WindowsVersion.Windows10;
                 }
             }
@@ -102,31 +124,38 @@ namespace Optimizer {
             return productName;
         }
 
-        internal static string GetBitness() {
+        internal static string GetBitness()
+        {
             string bitness;
 
-            if (Environment.Is64BitOperatingSystem) {
+            if (Environment.Is64BitOperatingSystem)
+            {
                 bitness = "You are working with 64-bit";
             }
-            else {
+            else
+            {
                 bitness = "You are working with 32-bit";
             }
 
             return bitness;
         }
 
-        internal static bool IsAdmin() {
+        internal static bool IsAdmin()
+        {
             return new WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator);
         }
 
-        internal static bool IsCompatible() {
+        internal static bool IsCompatible()
+        {
             bool legit;
             string os = GetOS();
 
-            if ((os.Contains("XP")) || (os.Contains("Vista")) || os.Contains("Server 2003")) {
+            if ((os.Contains("XP")) || (os.Contains("Vista")) || os.Contains("Server 2003"))
+            {
                 legit = false;
             }
-            else {
+            else
+            {
                 legit = true;
             }
             return legit;
@@ -156,9 +185,12 @@ namespace Optimizer {
         //    Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge", "DownloadDirectory", path, RegistryValueKind.String);
         //}
 
-        internal static void RunBatchFile(string batchFile) {
-            try {
-                using (Process p = new Process()) {
+        internal static void RunBatchFile(string batchFile)
+        {
+            try
+            {
+                using (Process p = new Process())
+                {
                     p.StartInfo.CreateNoWindow = true;
                     p.StartInfo.FileName = batchFile;
                     p.StartInfo.UseShellExecute = false;
@@ -168,16 +200,19 @@ namespace Optimizer {
                     p.Close();
                 }
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("Utilities.RunBatchFile", ex.Message, ex.StackTrace);
             }
         }
 
-        internal static void ImportRegistryScript(string scriptFile) {
+        internal static void ImportRegistryScript(string scriptFile)
+        {
             string path = "\"" + scriptFile + "\"";
 
             Process p = new Process();
-            try {
+            try
+            {
                 p.StartInfo.FileName = "regedit.exe";
                 p.StartInfo.UseShellExecute = false;
 
@@ -185,135 +220,171 @@ namespace Optimizer {
 
                 p.WaitForExit();
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 p.Dispose();
                 Logger.LogError("Utilities.ImportRegistryScript", ex.Message, ex.StackTrace);
             }
-            finally {
+            finally
+            {
                 p.Dispose();
             }
         }
 
-        internal static void Reboot() {
+        internal static void Reboot()
+        {
             OptionsHelper.SaveSettings();
             Process.Start("shutdown.exe", "/r /t 0");
         }
 
-        internal static void DisableHibernation() {
+        internal static void DisableHibernation()
+        {
             Utilities.RunCommand("powercfg -h off");
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power", "HibernateEnabled", "0", RegistryValueKind.DWord);
         }
 
-        internal static void EnableHibernation() {
+        internal static void EnableHibernation()
+        {
             Utilities.TryDeleteRegistryValue(true, @"SYSTEM\CurrentControlSet\Control\Power", "HibernateEnabled");
             Utilities.RunCommand("powercfg -h on");
         }
 
-        internal static void ActivateMainForm() {
+        internal static void ActivateMainForm()
+        {
             Program._MainForm.Activate();
         }
 
-        internal static bool ServiceExists(string serviceName) {
+        internal static bool ServiceExists(string serviceName)
+        {
             return Array.Exists(ServiceController.GetServices(), (serviceController => serviceController.ServiceName.Equals(serviceName)));
         }
 
-        internal static void StopService(string serviceName) {
-            if (ServiceExists(serviceName)) {
+        internal static void StopService(string serviceName)
+        {
+            if (ServiceExists(serviceName))
+            {
                 ServiceController sc = new ServiceController(serviceName);
-                if (sc.CanStop) {
+                if (sc.CanStop)
+                {
                     sc.Stop();
                 }
             }
         }
 
-        internal static void StartService(string serviceName) {
-            if (ServiceExists(serviceName)) {
+        internal static void StartService(string serviceName)
+        {
+            if (ServiceExists(serviceName))
+            {
                 ServiceController sc = new ServiceController(serviceName);
 
-                try {
+                try
+                {
                     sc.Start();
                 }
-                catch (Exception ex) {
+                catch (Exception ex)
+                {
                     Logger.LogError("Utilities.StartService", ex.Message, ex.StackTrace);
                 }
             }
         }
 
-        internal static void EnableFirewall() {
+        internal static void EnableFirewall()
+        {
             RunCommand("netsh advfirewall set currentprofile state on");
         }
 
-        internal static void EnableCommandPrompt() {
-            using (RegistryKey key = Registry.CurrentUser.CreateSubKey("Software\\Policies\\Microsoft\\Windows\\System")) {
+        internal static void EnableCommandPrompt()
+        {
+            using (RegistryKey key = Registry.CurrentUser.CreateSubKey("Software\\Policies\\Microsoft\\Windows\\System"))
+            {
                 key.SetValue("DisableCMD", 0, RegistryValueKind.DWord);
             }
         }
 
-        internal static void EnableControlPanel() {
-            using (RegistryKey key = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer")) {
+        internal static void EnableControlPanel()
+        {
+            using (RegistryKey key = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer"))
+            {
                 key.SetValue("NoControlPanel", 0, RegistryValueKind.DWord);
             }
         }
 
-        internal static void EnableFolderOptions() {
-            using (RegistryKey key = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer")) {
+        internal static void EnableFolderOptions()
+        {
+            using (RegistryKey key = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer"))
+            {
                 key.SetValue("NoFolderOptions", 0, RegistryValueKind.DWord);
             }
         }
 
-        internal static void EnableRunDialog() {
-            using (RegistryKey key = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer")) {
+        internal static void EnableRunDialog()
+        {
+            using (RegistryKey key = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer"))
+            {
                 key.SetValue("NoRun", 0, RegistryValueKind.DWord);
             }
         }
 
-        internal static void EnableContextMenu() {
-            using (RegistryKey key = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer")) {
+        internal static void EnableContextMenu()
+        {
+            using (RegistryKey key = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer"))
+            {
                 key.SetValue("NoViewContextMenu", 0, RegistryValueKind.DWord);
             }
         }
 
-        internal static void EnableTaskManager() {
-            using (RegistryKey key = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System")) {
+        internal static void EnableTaskManager()
+        {
+            using (RegistryKey key = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System"))
+            {
                 key.SetValue("DisableTaskMgr", 0, RegistryValueKind.DWord);
             }
         }
 
-        internal static void EnableRegistryEditor() {
-            using (RegistryKey key = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System")) {
+        internal static void EnableRegistryEditor()
+        {
+            using (RegistryKey key = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System"))
+            {
                 key.SetValue("DisableRegistryTools", 0, RegistryValueKind.DWord);
             }
         }
 
-        internal static void RunCommand(string command) {
+        internal static void RunCommand(string command)
+        {
             if (string.IsNullOrEmpty(command)) return;
 
-            using (Process p = new Process()) {
+            using (Process p = new Process())
+            {
                 p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
                 p.StartInfo.FileName = "cmd.exe";
                 p.StartInfo.Arguments = "/C " + command;
                 p.StartInfo.CreateNoWindow = true;
 
-                try {
+                try
+                {
                     p.Start();
                     p.WaitForExit();
                     p.Close();
                 }
-                catch (Exception ex) {
+                catch (Exception ex)
+                {
                     Logger.LogError("Utilities.RunCommand", ex.Message, ex.StackTrace);
                 }
             }
         }
 
-        internal static void FindFile(string fileName) {
+        internal static void FindFile(string fileName)
+        {
             if (File.Exists(fileName)) Process.Start("explorer.exe", $"/select, \"{fileName}\"");
         }
 
-        internal static void FindFolder(string folder) {
+        internal static void FindFolder(string folder)
+        {
             if (Directory.Exists(folder)) RunCommand($"explorer.exe \"{folder}\"");
         }
 
-        internal static string GetShortcutTargetFile(string shortcutFilename) {
+        internal static string GetShortcutTargetFile(string shortcutFilename)
+        {
             string pathOnly = Path.GetDirectoryName(shortcutFilename);
             string filenameOnly = Path.GetFileName(shortcutFilename);
 
@@ -321,7 +392,8 @@ namespace Optimizer {
             Shell32.Folder folder = shell.NameSpace(pathOnly);
             Shell32.FolderItem folderItem = folder.ParseName(filenameOnly);
 
-            if (folderItem != null) {
+            if (folderItem != null)
+            {
                 Shell32.ShellLinkObject link = (Shell32.ShellLinkObject)folderItem.GetLink;
                 return link.Path;
             }
@@ -329,17 +401,22 @@ namespace Optimizer {
             return string.Empty;
         }
 
-        internal static void RestartExplorer() {
+        internal static void RestartExplorer()
+        {
             const string explorer = "explorer.exe";
             string explorerPath = string.Format("{0}\\{1}", Environment.GetEnvironmentVariable("WINDIR"), explorer);
 
-            foreach (Process process in Process.GetProcesses()) {
-                try {
-                    if (string.Compare(process.MainModule.FileName, explorerPath, StringComparison.OrdinalIgnoreCase) == 0) {
+            foreach (Process process in Process.GetProcesses())
+            {
+                try
+                {
+                    if (string.Compare(process.MainModule.FileName, explorerPath, StringComparison.OrdinalIgnoreCase) == 0)
+                    {
                         process.Kill();
                     }
                 }
-                catch (Exception ex) {
+                catch (Exception ex)
+                {
                     Logger.LogError("Utilities.RestartExplorer", ex.Message, ex.StackTrace);
                 }
             }
@@ -348,27 +425,36 @@ namespace Optimizer {
             Process.Start(explorer);
         }
 
-        internal static void FindKeyInRegistry(string key) {
-            try {
+        internal static void FindKeyInRegistry(string key)
+        {
+            try
+            {
                 Registry.SetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit", "LastKey", key);
                 Process.Start("regedit");
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("Utilities.FindKeyInRegistry", ex.Message, ex.StackTrace);
             }
         }
 
-        internal static void Repair(bool withoutRestart = false) {
-            try {
+        internal static void Repair(bool withoutRestart = false)
+        {
+            try
+            {
                 Directory.Delete(CoreHelper.CoreFolder, true);
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("Utilities.ResetConfiguration", ex.Message, ex.StackTrace);
             }
-            finally {
-                if (!withoutRestart) {
+            finally
+            {
+                if (!withoutRestart)
+                {
                     // BYPASS SINGLE-INSTANCE MECHANISM
-                    if (Program.MUTEX != null) {
+                    if (Program.MUTEX != null)
+                    {
                         Program.MUTEX.ReleaseMutex();
                         Program.MUTEX.Dispose();
                         Program.MUTEX = null;
@@ -379,7 +465,8 @@ namespace Optimizer {
             }
         }
 
-        internal static Task RunAsync(this Process process) {
+        internal static Task RunAsync(this Process process)
+        {
             var tcs = new TaskCompletionSource<object>();
             process.EnableRaisingEvents = true;
             process.Exited += (s, e) => tcs.TrySetResult(null);
@@ -388,39 +475,50 @@ namespace Optimizer {
             return tcs.Task;
         }
 
-        internal static string SanitizeFileFolderName(string fileName) {
+        internal static string SanitizeFileFolderName(string fileName)
+        {
             char[] invalids = Path.GetInvalidFileNameChars();
             return string.Join("_", fileName.Split(invalids, StringSplitOptions.RemoveEmptyEntries)).TrimEnd('.');
         }
 
         // attempt to enable Local Group Policy Editor on Windows 10 Home editions
-        internal static void EnableGPEDitor() {
+        internal static void EnableGPEDitor()
+        {
             Utilities.RunBatchFile(CoreHelper.ScriptsFolder + "GPEditEnablerInHome.bat");
         }
 
-        internal static void TryDeleteRegistryValue(bool localMachine, string path, string valueName) {
-            try {
+        internal static void TryDeleteRegistryValue(bool localMachine, string path, string valueName)
+        {
+            try
+            {
                 if (localMachine) Registry.LocalMachine.OpenSubKey(path, true).DeleteValue(valueName, false);
                 if (!localMachine) Registry.CurrentUser.OpenSubKey(path, true).DeleteValue(valueName, false);
             }
             catch { }
         }
 
-        internal static void TryDeleteRegistryValueDefaultUsers(string path, string valueName) {
-            try {
+        internal static void TryDeleteRegistryValueDefaultUsers(string path, string valueName)
+        {
+            try
+            {
                 Registry.Users.OpenSubKey(path, true).DeleteValue(valueName, false);
             }
             catch { }
         }
 
-        internal static void DisableProtectedService(string serviceName) {
-            using (TokenPrivilegeHelper.TakeOwnership) {
-                using (RegistryKey allServicesKey = Registry.LocalMachine.OpenSubKeyWritable(@"SYSTEM\CurrentControlSet\Services")) {
+        internal static void DisableProtectedService(string serviceName)
+        {
+            using (TokenPrivilegeHelper.TakeOwnership)
+            {
+                using (RegistryKey allServicesKey = Registry.LocalMachine.OpenSubKeyWritable(@"SYSTEM\CurrentControlSet\Services"))
+                {
                     allServicesKey.GrantFullControlOnSubKey(serviceName);
-                    using (RegistryKey serviceKey = allServicesKey.OpenSubKeyWritable(serviceName)) {
+                    using (RegistryKey serviceKey = allServicesKey.OpenSubKeyWritable(serviceName))
+                    {
                         if (serviceKey == null) return;
 
-                        foreach (string subkeyName in serviceKey.GetSubKeyNames()) {
+                        foreach (string subkeyName in serviceKey.GetSubKeyNames())
+                        {
                             serviceKey.TakeOwnershipOnSubKey(subkeyName);
                             serviceKey.GrantFullControlOnSubKey(subkeyName);
                         }
@@ -455,14 +553,19 @@ namespace Optimizer {
         //    }
         //}
 
-        internal static void EnableProtectedService(string serviceName) {
-            using (TokenPrivilegeHelper.TakeOwnership) {
-                using (RegistryKey allServicesKey = Registry.LocalMachine.OpenSubKeyWritable(@"SYSTEM\CurrentControlSet\Services")) {
+        internal static void EnableProtectedService(string serviceName)
+        {
+            using (TokenPrivilegeHelper.TakeOwnership)
+            {
+                using (RegistryKey allServicesKey = Registry.LocalMachine.OpenSubKeyWritable(@"SYSTEM\CurrentControlSet\Services"))
+                {
                     allServicesKey.GrantFullControlOnSubKey(serviceName);
-                    using (RegistryKey serviceKey = allServicesKey.OpenSubKeyWritable(serviceName)) {
+                    using (RegistryKey serviceKey = allServicesKey.OpenSubKeyWritable(serviceName))
+                    {
                         if (serviceKey == null) return;
 
-                        foreach (string subkeyName in serviceKey.GetSubKeyNames()) {
+                        foreach (string subkeyName in serviceKey.GetSubKeyNames())
+                        {
                             serviceKey.TakeOwnershipOnSubKey(subkeyName);
                             serviceKey.GrantFullControlOnSubKey(subkeyName);
                         }
@@ -472,7 +575,8 @@ namespace Optimizer {
             }
         }
 
-        public static RegistryKey OpenSubKeyWritable(this RegistryKey registryKey, string subkeyName, RegistryRights? rights = null) {
+        public static RegistryKey OpenSubKeyWritable(this RegistryKey registryKey, string subkeyName, RegistryRights? rights = null)
+        {
             RegistryKey subKey;
 
             if (rights == null)
@@ -480,7 +584,8 @@ namespace Optimizer {
             else
                 subKey = registryKey.OpenSubKey(subkeyName, RegistryKeyPermissionCheck.ReadWriteSubTree, rights.Value);
 
-            if (subKey == null) {
+            if (subKey == null)
+            {
                 Logger.LogError("Utilities.OpenSubKeyWritable", $"Subkey {subkeyName} not found.", "-");
             }
 
@@ -490,10 +595,12 @@ namespace Optimizer {
         internal static SecurityIdentifier RetrieveCurrentUserIdentifier()
             => WindowsIdentity.GetCurrent().User ?? throw new Exception("Unable to retrieve current user SID.");
 
-        internal static void GrantFullControlOnSubKey(this RegistryKey registryKey, string subkeyName) {
+        internal static void GrantFullControlOnSubKey(this RegistryKey registryKey, string subkeyName)
+        {
             using (RegistryKey subKey = registryKey.OpenSubKeyWritable(subkeyName,
                 RegistryRights.TakeOwnership | RegistryRights.ChangePermissions
-            )) {
+            ))
+            {
                 RegistrySecurity accessRules = subKey.GetAccessControl();
                 SecurityIdentifier currentUser = RetrieveCurrentUserIdentifier();
                 accessRules.SetOwner(currentUser);
@@ -510,23 +617,29 @@ namespace Optimizer {
             }
         }
 
-        internal static void TakeOwnershipOnSubKey(this RegistryKey registryKey, string subkeyName) {
-            using (RegistryKey subKey = registryKey.OpenSubKeyWritable(subkeyName, RegistryRights.TakeOwnership)) {
+        internal static void TakeOwnershipOnSubKey(this RegistryKey registryKey, string subkeyName)
+        {
+            using (RegistryKey subKey = registryKey.OpenSubKeyWritable(subkeyName, RegistryRights.TakeOwnership))
+            {
                 RegistrySecurity accessRules = subKey.GetAccessControl();
                 accessRules.SetOwner(RetrieveCurrentUserIdentifier());
                 subKey.SetAccessControl(accessRules);
             }
         }
 
-        internal static string GetNETFramework() {
+        internal static string GetNETFramework()
+        {
             string subkey = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\";
             int netRelease;
 
-            using (RegistryKey ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(subkey)) {
-                if (ndpKey != null && ndpKey.GetValue("Release") != null) {
+            using (RegistryKey ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(subkey))
+            {
+                if (ndpKey != null && ndpKey.GetValue("Release") != null)
+                {
                     netRelease = (int)ndpKey.GetValue("Release");
                 }
-                else {
+                else
+                {
                     return "4.0";
                 }
             }
@@ -555,101 +668,130 @@ namespace Optimizer {
             return "4.0";
         }
 
-        internal static void SearchWith(string term, bool ddg) {
-            try {
+        internal static void SearchWith(string term, bool ddg)
+        {
+            try
+            {
                 if (ddg) Process.Start(string.Format("https://duckduckgo.com/?q={0}", term));
                 if (!ddg) Process.Start(string.Format("https://www.google.com/search?q={0}", term));
             }
             catch { }
         }
 
-        internal static void EnableLoginVerbose() {
-            try {
+        internal static void EnableLoginVerbose()
+        {
+            try
+            {
                 Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "verbosestatus", 1, RegistryValueKind.DWord);
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("Utilities.EnableLoginVerbose", ex.Message, ex.StackTrace);
             }
         }
 
-        internal static void DisableLoginVerbose() {
+        internal static void DisableLoginVerbose()
+        {
             Utilities.TryDeleteRegistryValue(true, @"SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "verbosestatus");
         }
 
         // [!!!]
-        internal static void UnlockAllCores() {
-            try {
+        internal static void UnlockAllCores()
+        {
+            try
+            {
                 Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\0cc5b647-c1df-4637-891a-dec35c318583", "ValueMax", 0, RegistryValueKind.DWord);
                 Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\0cc5b647-c1df-4637-891a-dec35c318583", "ValueMin", 0, RegistryValueKind.DWord);
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("Utilities.UnlockAllCores", ex.Message, ex.StackTrace);
             }
         }
 
         // value = RAM in GB * 1024 * 1024
-        internal static void DisableSvcHostProcessSplitting(int ramInGb) {
-            try {
+        internal static void DisableSvcHostProcessSplitting(int ramInGb)
+        {
+            try
+            {
                 ramInGb = ramInGb * 1024 * 1024;
                 Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control", "SvcHostSplitThresholdInKB", ramInGb, RegistryValueKind.DWord);
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("Utilities.DisableSvcHostProcessSplitting", ex.Message, ex.StackTrace);
             }
         }
 
         // reset the value to default
-        internal static void EnableSvcHostProcessSplitting() {
-            try {
+        internal static void EnableSvcHostProcessSplitting()
+        {
+            try
+            {
                 Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control", "SvcHostSplitThresholdInKB", 380000, RegistryValueKind.DWord);
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("Utilities.EnableSvcHostProcessSplitting", ex.Message, ex.StackTrace);
             }
         }
 
-        internal static void DisableHPET() {
+        internal static void DisableHPET()
+        {
             Utilities.RunCommand("bcdedit /deletevalue useplatformclock");
             Thread.Sleep(500);
             Utilities.RunCommand("bcdedit /set disabledynamictick yes");
         }
 
-        internal static void EnableHPET() {
+        internal static void EnableHPET()
+        {
             Utilities.RunCommand("bcdedit /set useplatformclock true");
             Thread.Sleep(500);
             Utilities.RunCommand("bcdedit /set disabledynamictick no");
         }
 
-        internal static void RegisterAutoStart() {
-            try {
-                using (RegistryKey k = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true)) {
+        internal static void RegisterAutoStart()
+        {
+            try
+            {
+                using (RegistryKey k = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true))
+                {
                     k.SetValue("Optimizer", Assembly.GetEntryAssembly().Location);
                 }
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("Utilities.AddToStartup", ex.Message, ex.StackTrace);
             }
         }
 
-        internal static void UnregisterAutoStart() {
-            try {
-                using (RegistryKey k = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true)) {
+        internal static void UnregisterAutoStart()
+        {
+            try
+            {
+                using (RegistryKey k = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true))
+                {
                     k.DeleteValue("Optimizer", false);
                 }
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("Utilities.DeleteFromStartup", ex.Message, ex.StackTrace);
             }
         }
 
-        internal static void AllowProcessToRun(string pName) {
-            try {
-                using (RegistryKey ifeo = Registry.LocalMachine.OpenSubKeyWritable(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion", RegistryRights.FullControl)) {
+        internal static void AllowProcessToRun(string pName)
+        {
+            try
+            {
+                using (RegistryKey ifeo = Registry.LocalMachine.OpenSubKeyWritable(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion", RegistryRights.FullControl))
+                {
                     if (ifeo == null) return;
 
                     ifeo.GrantFullControlOnSubKey("Image File Execution Options");
 
-                    using (RegistryKey k = ifeo.OpenSubKeyWritable("Image File Execution Options", RegistryRights.FullControl)) {
+                    using (RegistryKey k = ifeo.OpenSubKeyWritable("Image File Execution Options", RegistryRights.FullControl))
+                    {
                         if (k == null) return;
 
                         k.GrantFullControlOnSubKey(pName);
@@ -657,25 +799,31 @@ namespace Optimizer {
                     }
                 }
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("Utilities.AllowProcessToRun", ex.Message, ex.StackTrace);
             }
         }
 
-        internal static void PreventProcessFromRunning(string pName) {
-            try {
-                using (RegistryKey ifeo = Registry.LocalMachine.OpenSubKeyWritable(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion", RegistryRights.FullControl)) {
+        internal static void PreventProcessFromRunning(string pName)
+        {
+            try
+            {
+                using (RegistryKey ifeo = Registry.LocalMachine.OpenSubKeyWritable(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion", RegistryRights.FullControl))
+                {
                     if (ifeo == null) return;
 
                     ifeo.GrantFullControlOnSubKey("Image File Execution Options");
 
-                    using (RegistryKey k = ifeo.OpenSubKeyWritable("Image File Execution Options", RegistryRights.FullControl)) {
+                    using (RegistryKey k = ifeo.OpenSubKeyWritable("Image File Execution Options", RegistryRights.FullControl))
+                    {
                         if (k == null) return;
 
                         k.CreateSubKey(pName);
                         k.GrantFullControlOnSubKey(pName);
 
-                        using (RegistryKey f = k.OpenSubKeyWritable(pName, RegistryRights.FullControl)) {
+                        using (RegistryKey f = k.OpenSubKeyWritable(pName, RegistryRights.FullControl))
+                        {
                             if (f == null) return;
 
                             f.SetValue("Debugger", @"%windir%\System32\taskkill.exe");
@@ -683,28 +831,36 @@ namespace Optimizer {
                     }
                 }
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("Utilities.PreventProcessFromRunning", ex.Message, ex.StackTrace);
             }
         }
 
-        internal static string GetUserDownloadsFolder() {
-            try {
+        internal static string GetUserDownloadsFolder()
+        {
+            try
+            {
                 return Registry.GetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders", "{374DE290-123F-4565-9164-39C4925E467B}", string.Empty).ToString();
             }
-            catch (Exception ex) {
+            catch (Exception ex)
+            {
                 Logger.LogError("Utilities.GetUserDownloadsFolder", ex.Message, ex.StackTrace);
                 return string.Empty;
             }
         }
 
-        internal static void ReinforceCurrentTweaks() {
+        internal static void ReinforceCurrentTweaks()
+        {
             SilentConfig silentConfig = new SilentConfig();
             Tweaks silentConfigTweaks = new Tweaks();
             silentConfig.Tweaks = silentConfigTweaks;
 
             #region Windows General
             silentConfig.Tweaks.EnablePerformanceTweaks = OptionsHelper.CurrentOptions.EnablePerformanceTweaks ? true : (bool?)null;
+            silentConfig.Tweaks.EnableUtcTime = OptionsHelper.CurrentOptions.EnableUtcTime ? true : (bool?)null;
+            silentConfig.Tweaks.ShowAllTrayIcons = OptionsHelper.CurrentOptions.ShowAllTrayIcons ? true : (bool?)null;
+            silentConfig.Tweaks.RemoveMenusDelay = OptionsHelper.CurrentOptions.RemoveMenusDelay ? true : (bool?)null;
             silentConfig.Tweaks.DisableNetworkThrottling = OptionsHelper.CurrentOptions.DisableNetworkThrottling ? true : (bool?)null;
             silentConfig.Tweaks.DisableWindowsDefender = OptionsHelper.CurrentOptions.DisableWindowsDefender ? true : (bool?)null;
             silentConfig.Tweaks.DisableSystemRestore = OptionsHelper.CurrentOptions.DisableSystemRestore ? true : (bool?)null;
@@ -759,6 +915,10 @@ namespace Optimizer {
             silentConfig.Tweaks.DisableEdgeDiscoverBar = OptionsHelper.CurrentOptions.DisableEdgeDiscoverBar ? true : (bool?)null;
             silentConfig.Tweaks.DisableEdgeTelemetry = OptionsHelper.CurrentOptions.DisableEdgeTelemetry ? true : (bool?)null;
             silentConfig.Tweaks.RestoreClassicPhotoViewer = OptionsHelper.CurrentOptions.RestoreClassicPhotoViewer ? true : (bool?)null;
+            silentConfig.Tweaks.DisableNewsInterests = OptionsHelper.CurrentOptions.DisableNewsInterests ? true : (bool?)null;
+            silentConfig.Tweaks.HideTaskbarSearch = OptionsHelper.CurrentOptions.HideTaskbarSearch ? true : (bool?)null;
+            silentConfig.Tweaks.HideTaskbarWeather = OptionsHelper.CurrentOptions.HideTaskbarWeather ? true : (bool?)null;
+            silentConfig.Tweaks.DisableModernStandby = OptionsHelper.CurrentOptions.DisableModernStandby ? true : (bool?)null;
             #endregion
             #region Windows 11
             silentConfig.Tweaks.TaskbarToLeft = OptionsHelper.CurrentOptions.TaskbarToLeft ? true : (bool?)null;
@@ -773,18 +933,22 @@ namespace Optimizer {
 
             SilentOps.CurrentSilentConfig = silentConfig;
 
-            if (CurrentWindowsVersion == WindowsVersion.Windows7) {
+            if (CurrentWindowsVersion == WindowsVersion.Windows7)
+            {
                 SilentOps.ProcessTweaksGeneral();
             }
-            if (CurrentWindowsVersion == WindowsVersion.Windows8) {
+            if (CurrentWindowsVersion == WindowsVersion.Windows8)
+            {
                 SilentOps.ProcessTweaksGeneral();
                 SilentOps.ProcessTweaksWindows8();
             }
-            if (CurrentWindowsVersion == WindowsVersion.Windows10) {
+            if (CurrentWindowsVersion == WindowsVersion.Windows10)
+            {
                 SilentOps.ProcessTweaksGeneral();
                 SilentOps.ProcessTweaksWindows10();
             }
-            if (CurrentWindowsVersion == WindowsVersion.Windows11) {
+            if (CurrentWindowsVersion == WindowsVersion.Windows11)
+            {
                 SilentOps.ProcessTweaksGeneral();
                 SilentOps.ProcessTweaksWindows10();
                 SilentOps.ProcessTweaksWindows11();

+ 6 - 4
README.md

@@ -3,7 +3,7 @@
 </p>
 
 <p align="center">
-	<a href="https://github.com/hellzerg/optimizer/releases/download/16.4/Optimizer-16.4.exe" target="_blank">
+	<a href="https://github.com/hellzerg/optimizer/releases/download/16.5/Optimizer-16.5.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">
@@ -27,7 +27,9 @@ Welcome to Optimizer, an advanced configuration utility designed to enhance your
 - Disable Office telemetry (works with Office 2016 or newer)
 - Stop automatic Windows 10/11 updates
 - Download multiple useful apps quickly
-- Disable CoPilot AI in Windows 11
+- Disable CoPilot AI in Windows 11 & Edge
+- Enable UTC time globally
+- Advanced tweaks like disabling HPET, OneDrive, etc.
 - Uninstall UWP apps
 - Clean system drive and browser profiles
 - Fix common registry issues
@@ -105,8 +107,8 @@ Learn about our security measures in the [Security Policy](https://github.com/he
 <h2> 📊 Details</h2> 
 </center>
 
-- Latest version: 16.4 (Released: December 29, 2023)
-- SHA256: F4775567CA9941B4FB3224D97B0741AE669EEDFCB0D8B3C71106B21BDB1AEE28
+- Latest version: 16.5 (Released: May 03, 2024)
+- SHA256: 26C64C2FAFCD264B8130462FF6E40A6498EC6937FE95D5E83964388AE9597C4D
 
 <center>
 <h2> ☕ Buy me a delicious espresso</h2>

+ 8 - 1
templates/template-windows10.json

@@ -124,6 +124,13 @@
         "DisableSearch": null,
         "DisableEdgeDiscoverBar": null,
         "DisableEdgeTelemetry": null,
-        "RestoreClassicPhotoViewer": null
+        "RestoreClassicPhotoViewer": null,
+        "EnableUtcTime": null,
+        "ShowAllTrayIcons": null,
+        "RemoveMenusDelay": null,
+        "DisableModernStandby": null,
+        "HideTaskbarWeather": null,
+        "HideTaskbarSearch": null,
+        "DisableNewsInterests": null
     }
 }

+ 8 - 1
templates/template-windows11.json

@@ -135,6 +135,13 @@
         "DisableEdgeDiscoverBar": null,
         "DisableEdgeTelemetry": null,
         "DisableCoPilotAI": null,
-        "RestoreClassicPhotoViewer": null
+        "RestoreClassicPhotoViewer": null,
+        "EnableUtcTime": null,
+        "ShowAllTrayIcons": null,
+        "RemoveMenusDelay": null,
+        "DisableModernStandby": null,
+        "HideTaskbarWeather": null,
+        "HideTaskbarSearch": null,
+        "DisableNewsInterests": null
     }
 }

+ 4 - 1
templates/template-windows7.json

@@ -95,6 +95,9 @@
         "DisableFirefoxTemeletry": null,
         "DisableChromeTelemetry": null,
         "DisableNVIDIATelemetry": null,
-        "DisableSearch": null
+        "DisableSearch": null,
+        "EnableUtcTime": null,
+        "ShowAllTrayIcons": null,
+        "RemoveMenusDelay": null
     }
 }

+ 3 - 0
templates/template-windows8.json

@@ -96,6 +96,9 @@
         "DisableChromeTelemetry": null,
         "DisableNVIDIATelemetry": null,
         "DisableSearch": null,
+        "EnableUtcTime": null,
+        "ShowAllTrayIcons": null,
+        "RemoveMenusDelay": null,
         "DisableOneDrive": null
     }
 }

+ 1 - 1
version.txt

@@ -1 +1 @@
-16.4
+16.5

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.