瀏覽代碼

added disable compatibility assistant

deadmoon 7 年之前
父節點
當前提交
8371f401b8
共有 5 個文件被更改,包括 203 次插入141 次删除
  1. 3 0
      CHANGELOG.md
  2. 171 141
      Optimizer/MainForm.Designer.cs
  3. 15 0
      Optimizer/MainForm.cs
  4. 12 0
      Optimizer/Optimize.cs
  5. 2 0
      Optimizer/Options.cs

+ 3 - 0
CHANGELOG.md

@@ -2,6 +2,9 @@
 
 All notable changes to this project will be documented in this file.
 
+## [UNRELEASED] [3.9]
+- Added: Disable Program Compatibility Assistant Service
+
 ## [3.8] - 2017-12-31
 - Windows 7 crashing fixed
 

文件差異過大導致無法顯示
+ 171 - 141
Optimizer/MainForm.Designer.cs


+ 15 - 0
Optimizer/MainForm.cs

@@ -75,6 +75,7 @@ namespace Optimizer
             toggleSwitch31.Click += new EventHandler(toggleSwitch31_Click);
             toggleSwitch18.Click += new EventHandler(toggleSwitch18_Click);
             toggleSwitch19.Click += new EventHandler(toggleSwitch19_Click);
+            toggleSwitch32.Click += new EventHandler(toggleSwitch32_Click);
         }
 
         private void LoadSettings()
@@ -304,6 +305,7 @@ namespace Optimizer
             toggleSwitch10.Checked = Options.CurrentOptions.DisableSuperfetch;
             toggleSwitch11.Checked = Options.CurrentOptions.DisableTelemetryTasks;
             toggleSwitch12.Checked = Options.CurrentOptions.DisableOffice2016Telemetry;
+            toggleSwitch32.Checked = Options.CurrentOptions.DisableCompatibilityAssistant;
         }
 
         private void LoadWindowsVIIIToggleStates()
@@ -1686,5 +1688,18 @@ namespace Optimizer
             }
             Options.CurrentOptions.DisableOneDrive = !toggleSwitch31.Checked;
         }
+
+        private void toggleSwitch32_Click(object sender, EventArgs e)
+        {
+            if (!toggleSwitch32.Checked)
+            {
+                Optimize.DisableCompatibilityAssistant();
+            }
+            else
+            {
+                Optimize.EnableCompatibilityAssistant();
+            }
+            Options.CurrentOptions.DisableCompatibilityAssistant = !toggleSwitch32.Checked;
+        }
     }
 }

+ 12 - 0
Optimizer/Optimize.cs

@@ -236,6 +236,18 @@ namespace Optimizer
             Utilities.StartService("SysMain");
         }
 
+        internal static void EnableCompatibilityAssistant()
+        {
+            Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PcaSvc", "Start", "2", RegistryValueKind.DWord);
+            Utilities.StartService("PcaSvc");
+        }
+
+        internal static void DisableCompatibilityAssistant()
+        {
+            Utilities.StopService("PcaSvc");
+            Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PcaSvc", "Start", "4", RegistryValueKind.DWord);
+        }
+
         internal static void DisableSystemRestore()
         {
             try

+ 2 - 0
Optimizer/Options.cs

@@ -26,6 +26,7 @@ namespace Optimizer
         public bool DisableSuperfetch { get; set; }
         public bool DisableTelemetryTasks { get; set; }
         public bool DisableOffice2016Telemetry { get; set; }
+        public bool DisableCompatibilityAssistant { get; set; }
 
         public bool EnableLegacyVolumeSlider { get; set; }
         public bool EnableTaskbarColor { get; set; }
@@ -156,6 +157,7 @@ namespace Optimizer
                 CurrentOptions.DisableSuperfetch = false;
                 CurrentOptions.DisableTelemetryTasks = false;
                 CurrentOptions.DisableOffice2016Telemetry = false;
+                CurrentOptions.DisableCompatibilityAssistant = false;
 
                 CurrentOptions.EnableLegacyVolumeSlider = false;
                 CurrentOptions.EnableTaskbarColor = false;

部分文件因文件數量過多而無法顯示