SilentOps.cs 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032
  1. using Newtonsoft.Json;
  2. using System;
  3. using System.IO;
  4. using System.Linq;
  5. namespace Optimizer
  6. {
  7. internal static class SilentOps
  8. {
  9. internal static SilentConfig CurrentSilentConfig;
  10. internal static SilentConfig GetSilentConfig(string path)
  11. {
  12. try
  13. {
  14. CurrentSilentConfig = JsonConvert.DeserializeObject<SilentConfig>(File.ReadAllText(path));
  15. }
  16. catch (Exception ex)
  17. {
  18. ErrorLogger.LogError("SilentOps.GetSilentConfig", ex.Message, ex.StackTrace);
  19. CurrentSilentConfig = null;
  20. }
  21. return CurrentSilentConfig;
  22. }
  23. internal static void ProcessAllActions()
  24. {
  25. if (Utilities.CurrentWindowsVersion == WindowsVersion.Windows7)
  26. {
  27. ProcessTweaksGeneral();
  28. }
  29. if (Utilities.CurrentWindowsVersion == WindowsVersion.Windows8)
  30. {
  31. ProcessTweaksGeneral();
  32. ProcessTweaksWindows8();
  33. }
  34. if (Utilities.CurrentWindowsVersion == WindowsVersion.Windows10)
  35. {
  36. ProcessTweaksGeneral();
  37. ProcessTweaksWindows10();
  38. }
  39. if (Utilities.CurrentWindowsVersion == WindowsVersion.Windows11)
  40. {
  41. ProcessTweaksGeneral();
  42. ProcessTweaksWindows11();
  43. }
  44. ProcessHosts();
  45. ProcessPinger();
  46. ProcessProcessControl();
  47. ProcessIntegrator();
  48. ProcessAdvanced();
  49. ProcessRegistryFix();
  50. ProcessCleaner();
  51. ProcessPostAction();
  52. }
  53. internal static bool ProcessWindowsVersionCompatibility()
  54. {
  55. return CurrentSilentConfig.WindowsVersion == ((int)Utilities.CurrentWindowsVersion);
  56. }
  57. internal static void ProcessPostAction()
  58. {
  59. if (CurrentSilentConfig.PostAction.Restart.HasValue &&
  60. CurrentSilentConfig.PostAction.Restart.Value == true)
  61. {
  62. string restartType = CurrentSilentConfig.PostAction.RestartType;
  63. if (!string.IsNullOrEmpty(restartType))
  64. {
  65. if (restartType == RestartType.Normal.ToString())
  66. {
  67. Program.RestartInNormalMode();
  68. }
  69. if (restartType == RestartType.SafeMode.ToString())
  70. {
  71. Program.RestartInSafeMode();
  72. }
  73. if (restartType == RestartType.DisableDefender.ToString())
  74. {
  75. Program.SetRunOnceDisableDefender();
  76. }
  77. if (restartType == RestartType.EnableDefender.ToString())
  78. {
  79. Program.SetRunOnceEnableDefender();
  80. }
  81. }
  82. }
  83. }
  84. internal static void ProcessCleaner()
  85. {
  86. try
  87. {
  88. if (CurrentSilentConfig.Cleaner.TempFiles.HasValue && CurrentSilentConfig.Cleaner.TempFiles.Value) CleanHelper.PreviewTemp();
  89. if (CurrentSilentConfig.Cleaner.BsodDumps.HasValue && CurrentSilentConfig.Cleaner.BsodDumps.Value) CleanHelper.PreviewMinidumps();
  90. if (CurrentSilentConfig.Cleaner.ErrorReports.HasValue && CurrentSilentConfig.Cleaner.ErrorReports.Value) CleanHelper.PreviewErrorReports();
  91. if (CurrentSilentConfig.Cleaner.InternetExplorer.HasValue && CurrentSilentConfig.Cleaner.InternetExplorer.Value) CleanHelper.PreviewInternetExplorerCache();
  92. bool chromeCache = (CurrentSilentConfig.Cleaner.GoogleChrome.Cache.HasValue) ? CurrentSilentConfig.Cleaner.GoogleChrome.Cache.Value : false;
  93. bool chromeCookies = (CurrentSilentConfig.Cleaner.GoogleChrome.Cookies.HasValue) ? CurrentSilentConfig.Cleaner.GoogleChrome.Cookies.Value : false;
  94. bool chromeHistory = (CurrentSilentConfig.Cleaner.GoogleChrome.History.HasValue) ? CurrentSilentConfig.Cleaner.GoogleChrome.History.Value : false;
  95. bool chromeSession = (CurrentSilentConfig.Cleaner.GoogleChrome.Session.HasValue) ? CurrentSilentConfig.Cleaner.GoogleChrome.Session.Value : false;
  96. bool chromePasswords = (CurrentSilentConfig.Cleaner.GoogleChrome.Passwords.HasValue) ? CurrentSilentConfig.Cleaner.GoogleChrome.Passwords.Value : false;
  97. bool ffCache = (CurrentSilentConfig.Cleaner.MozillaFirefox.Cache.HasValue) ? CurrentSilentConfig.Cleaner.MozillaFirefox.Cache.Value : false;
  98. bool ffCookies = (CurrentSilentConfig.Cleaner.MozillaFirefox.Cookies.HasValue) ? CurrentSilentConfig.Cleaner.MozillaFirefox.Cookies.Value : false;
  99. bool ffHistory = (CurrentSilentConfig.Cleaner.MozillaFirefox.History.HasValue) ? CurrentSilentConfig.Cleaner.MozillaFirefox.History.Value : false;
  100. bool braveCache = (CurrentSilentConfig.Cleaner.BraveBrowser.Cache.HasValue) ? CurrentSilentConfig.Cleaner.BraveBrowser.Cache.Value : false;
  101. bool braveCookies = (CurrentSilentConfig.Cleaner.BraveBrowser.Cookies.HasValue) ? CurrentSilentConfig.Cleaner.BraveBrowser.Cookies.Value : false;
  102. bool braveHistory = (CurrentSilentConfig.Cleaner.BraveBrowser.History.HasValue) ? CurrentSilentConfig.Cleaner.BraveBrowser.History.Value : false;
  103. bool braveSession = (CurrentSilentConfig.Cleaner.BraveBrowser.Session.HasValue) ? CurrentSilentConfig.Cleaner.BraveBrowser.Session.Value : false;
  104. bool bravePasswords = (CurrentSilentConfig.Cleaner.BraveBrowser.Passwords.HasValue) ? CurrentSilentConfig.Cleaner.BraveBrowser.Passwords.Value : false;
  105. bool edgeCache = (CurrentSilentConfig.Cleaner.MicrosoftEdge.Cache.HasValue) ? CurrentSilentConfig.Cleaner.MicrosoftEdge.Cache.Value : false;
  106. bool edgeCookies = (CurrentSilentConfig.Cleaner.MicrosoftEdge.Cookies.HasValue) ? CurrentSilentConfig.Cleaner.MicrosoftEdge.Cookies.Value : false;
  107. bool edgeHistory = (CurrentSilentConfig.Cleaner.MicrosoftEdge.History.HasValue) ? CurrentSilentConfig.Cleaner.MicrosoftEdge.History.Value : false;
  108. bool edgeSession = (CurrentSilentConfig.Cleaner.MicrosoftEdge.Session.HasValue) ? CurrentSilentConfig.Cleaner.MicrosoftEdge.Session.Value : false;
  109. CleanHelper.PreviewChromeClean(chromeCache, chromeCookies, chromeHistory, chromeSession, chromePasswords);
  110. CleanHelper.PreviewFireFoxClean(ffCache, ffCookies, ffHistory);
  111. CleanHelper.PreviewEdgeClean(edgeCache, edgeCookies, edgeHistory, edgeSession);
  112. CleanHelper.PreviewBraveClean(braveCache, braveCookies, braveHistory, braveSession, bravePasswords);
  113. CleanHelper.Clean();
  114. if (CurrentSilentConfig.Cleaner.RecycleBin.HasValue && CurrentSilentConfig.Cleaner.RecycleBin.Value) CleanHelper.EmptyRecycleBin();
  115. }
  116. catch (Exception ex)
  117. {
  118. ErrorLogger.LogError("MainForm.CleanPC", ex.Message, ex.StackTrace);
  119. }
  120. }
  121. internal static void ProcessHosts()
  122. {
  123. var addList = CurrentSilentConfig.HostsEditor.Add.Where(x => !string.IsNullOrEmpty(x.Domain) && !string.IsNullOrEmpty(x.IpAddress));
  124. var blockList = CurrentSilentConfig.HostsEditor.Block.Where(x => !string.IsNullOrEmpty(x));
  125. foreach (AddHostsEntry x in addList)
  126. {
  127. HostsHelper.AddEntry(HostsHelper.SanitizeEntry(x.IpAddress) + " " + HostsHelper.SanitizeEntry(x.Domain), x.Comment);
  128. }
  129. foreach (string x in blockList)
  130. {
  131. HostsHelper.AddEntry("0.0.0.0 " + HostsHelper.SanitizeEntry(x));
  132. }
  133. }
  134. internal static void ProcessPinger()
  135. {
  136. string dns = CurrentSilentConfig.Pinger.SetDns;
  137. if (!string.IsNullOrEmpty(dns) && PingerHelper.DNSOptions.Contains(dns))
  138. {
  139. if (dns == "Automatic")
  140. {
  141. PingerHelper.ResetDefaultDNSForAllNICs();
  142. }
  143. if (dns == "Cloudflare")
  144. {
  145. PingerHelper.SetDNSForAllNICs(PingerHelper.CloudflareDNSv4, PingerHelper.CloudflareDNSv6);
  146. }
  147. if (dns == "OpenDNS")
  148. {
  149. PingerHelper.SetDNSForAllNICs(PingerHelper.OpenDNSv4, PingerHelper.OpenDNSv6);
  150. }
  151. if (dns == "Quad9")
  152. {
  153. PingerHelper.SetDNSForAllNICs(PingerHelper.Quad9DNSv4, PingerHelper.Quad9DNSv6);
  154. }
  155. if (dns == "Google")
  156. {
  157. PingerHelper.SetDNSForAllNICs(PingerHelper.GoogleDNSv4, PingerHelper.GoogleDNSv6);
  158. }
  159. if (dns == "AlternateDNS")
  160. {
  161. PingerHelper.SetDNSForAllNICs(PingerHelper.AlternateDNSv4, PingerHelper.AlternateDNSv6);
  162. }
  163. if (dns == "Adguard")
  164. {
  165. PingerHelper.SetDNSForAllNICs(PingerHelper.AdguardDNSv4, PingerHelper.AdguardDNSv6);
  166. }
  167. if (dns == "CleanBrowsing")
  168. {
  169. PingerHelper.SetDNSForAllNICs(PingerHelper.CleanBrowsingDNSv4, PingerHelper.CleanBrowsingDNSv6);
  170. }
  171. if (dns == "CleanBrowsing (adult filter)")
  172. {
  173. PingerHelper.SetDNSForAllNICs(PingerHelper.CleanBrowsingAdultDNSv4, PingerHelper.CleanBrowsingAdultDNSv6);
  174. }
  175. }
  176. if (CurrentSilentConfig.Pinger.FlushDnsCache.HasValue &&
  177. CurrentSilentConfig.Pinger.FlushDnsCache.Value == true)
  178. {
  179. PingerHelper.FlushDNSCache();
  180. }
  181. }
  182. internal static void ProcessProcessControl()
  183. {
  184. var allowList = CurrentSilentConfig.ProcessControl.Allow.Where(x => !string.IsNullOrEmpty(x));
  185. var blockList = CurrentSilentConfig.ProcessControl.Prevent.Where(x => !string.IsNullOrEmpty(x));
  186. foreach (string x in allowList)
  187. {
  188. Utilities.AllowProcessToRun(x);
  189. }
  190. foreach (string x in blockList)
  191. {
  192. Utilities.PreventProcessFromRunning(x);
  193. }
  194. }
  195. internal static void ProcessRegistryFix()
  196. {
  197. if (CurrentSilentConfig.RegistryFix.TaskManager.HasValue &&
  198. CurrentSilentConfig.RegistryFix.TaskManager.Value == true)
  199. {
  200. Utilities.EnableTaskManager();
  201. }
  202. if (CurrentSilentConfig.RegistryFix.CommandPrompt.HasValue &&
  203. CurrentSilentConfig.RegistryFix.CommandPrompt.Value == true)
  204. {
  205. Utilities.EnableCommandPrompt();
  206. }
  207. if (CurrentSilentConfig.RegistryFix.ControlPanel.HasValue &&
  208. CurrentSilentConfig.RegistryFix.ControlPanel.Value == true)
  209. {
  210. Utilities.EnableControlPanel();
  211. }
  212. if (CurrentSilentConfig.RegistryFix.FolderOptions.HasValue &&
  213. CurrentSilentConfig.RegistryFix.FolderOptions.Value == true)
  214. {
  215. Utilities.EnableFolderOptions();
  216. }
  217. if (CurrentSilentConfig.RegistryFix.RunDialog.HasValue &&
  218. CurrentSilentConfig.RegistryFix.RunDialog.Value == true)
  219. {
  220. Utilities.EnableRunDialog();
  221. }
  222. if (CurrentSilentConfig.RegistryFix.RightClickMenu.HasValue &&
  223. CurrentSilentConfig.RegistryFix.RightClickMenu.Value == true)
  224. {
  225. Utilities.EnableContextMenu();
  226. }
  227. if (CurrentSilentConfig.RegistryFix.WindowsFirewall.HasValue &&
  228. CurrentSilentConfig.RegistryFix.WindowsFirewall.Value == true)
  229. {
  230. Utilities.EnableFirewall();
  231. }
  232. if (CurrentSilentConfig.RegistryFix.RegistryEditor.HasValue &&
  233. CurrentSilentConfig.RegistryFix.RegistryEditor.Value == true)
  234. {
  235. Utilities.EnableRegistryEditor();
  236. }
  237. }
  238. internal static void ProcessIntegrator()
  239. {
  240. if (CurrentSilentConfig.Integrator.OpenWithCmd.HasValue)
  241. {
  242. if (CurrentSilentConfig.Integrator.OpenWithCmd.Value)
  243. {
  244. IntegratorHelper.InstallOpenWithCMD();
  245. }
  246. else
  247. {
  248. IntegratorHelper.DeleteOpenWithCMD();
  249. }
  250. }
  251. if (CurrentSilentConfig.Integrator.TakeOwnership.HasValue)
  252. {
  253. IntegratorHelper.InstallTakeOwnership(!CurrentSilentConfig.Integrator.TakeOwnership.Value);
  254. }
  255. }
  256. internal static void ProcessAdvanced()
  257. {
  258. if (CurrentSilentConfig.UnlockAllCores.HasValue &&
  259. CurrentSilentConfig.UnlockAllCores.Value == true)
  260. {
  261. Utilities.UnlockAllCores();
  262. }
  263. if (CurrentSilentConfig.SvchostProcessSplitting.Disable.HasValue)
  264. {
  265. if (CurrentSilentConfig.SvchostProcessSplitting.Disable.Value &&
  266. CurrentSilentConfig.SvchostProcessSplitting.Ram.HasValue &&
  267. CurrentSilentConfig.SvchostProcessSplitting.Ram > 0)
  268. {
  269. Utilities.DisableSvcHostProcessSplitting(CurrentSilentConfig.SvchostProcessSplitting.Ram.Value);
  270. }
  271. else
  272. {
  273. Utilities.EnableSvcHostProcessSplitting();
  274. }
  275. }
  276. }
  277. // TODO: Map all values to settings.json for consistency
  278. #region General Tweaks
  279. internal static void ProcessTweaksGeneral()
  280. {
  281. if (CurrentSilentConfig.Tweaks.EnablePerformanceTweaks.HasValue)
  282. {
  283. if (CurrentSilentConfig.Tweaks.EnablePerformanceTweaks.Value)
  284. {
  285. OptimizeHelper.EnablePerformanceTweaks();
  286. }
  287. else
  288. {
  289. OptimizeHelper.DisablePerformanceTweaks();
  290. }
  291. Options.CurrentOptions.EnablePerformanceTweaks = CurrentSilentConfig.Tweaks.EnablePerformanceTweaks.Value;
  292. }
  293. if (CurrentSilentConfig.Tweaks.DisableNetworkThrottling.HasValue)
  294. {
  295. if (CurrentSilentConfig.Tweaks.DisableNetworkThrottling.Value)
  296. {
  297. OptimizeHelper.DisableNetworkThrottling();
  298. }
  299. else
  300. {
  301. OptimizeHelper.EnableNetworkThrottling();
  302. }
  303. Options.CurrentOptions.DisableNetworkThrottling = CurrentSilentConfig.Tweaks.DisableNetworkThrottling.Value;
  304. }
  305. if (CurrentSilentConfig.Tweaks.DisableWindowsDefender.HasValue)
  306. {
  307. if (CurrentSilentConfig.Tweaks.DisableWindowsDefender.Value)
  308. {
  309. OptimizeHelper.DisableDefender();
  310. }
  311. else
  312. {
  313. OptimizeHelper.EnableDefender();
  314. }
  315. }
  316. if (CurrentSilentConfig.Tweaks.DisableSystemRestore.HasValue)
  317. {
  318. if (CurrentSilentConfig.Tweaks.DisableSystemRestore.Value)
  319. {
  320. OptimizeHelper.DisableSystemRestore();
  321. }
  322. else
  323. {
  324. OptimizeHelper.EnableSystemRestore();
  325. }
  326. }
  327. if (CurrentSilentConfig.Tweaks.DisablePrintService.HasValue)
  328. {
  329. if (CurrentSilentConfig.Tweaks.DisablePrintService.Value)
  330. {
  331. OptimizeHelper.DisablePrintService();
  332. }
  333. else
  334. {
  335. OptimizeHelper.EnablePrintService();
  336. }
  337. }
  338. if (CurrentSilentConfig.Tweaks.DisableMediaPlayerSharing.HasValue)
  339. {
  340. if (CurrentSilentConfig.Tweaks.DisableMediaPlayerSharing.Value)
  341. {
  342. OptimizeHelper.DisableMediaPlayerSharing();
  343. }
  344. else
  345. {
  346. OptimizeHelper.EnableMediaPlayerSharing();
  347. }
  348. }
  349. if (CurrentSilentConfig.Tweaks.DisableErrorReporting.HasValue)
  350. {
  351. if (CurrentSilentConfig.Tweaks.DisableErrorReporting.Value)
  352. {
  353. OptimizeHelper.DisableErrorReporting();
  354. }
  355. else
  356. {
  357. OptimizeHelper.EnableErrorReporting();
  358. }
  359. }
  360. if (CurrentSilentConfig.Tweaks.DisableHomeGroup.HasValue)
  361. {
  362. if (CurrentSilentConfig.Tweaks.DisableHomeGroup.Value)
  363. {
  364. OptimizeHelper.DisableHomeGroup();
  365. }
  366. else
  367. {
  368. OptimizeHelper.EnableHomeGroup();
  369. }
  370. }
  371. if (CurrentSilentConfig.Tweaks.DisableSuperfetch.HasValue)
  372. {
  373. if (CurrentSilentConfig.Tweaks.DisableSuperfetch.Value)
  374. {
  375. OptimizeHelper.DisableSuperfetch();
  376. }
  377. else
  378. {
  379. OptimizeHelper.EnableSuperfetch();
  380. }
  381. }
  382. if (CurrentSilentConfig.Tweaks.DisableTelemetryTasks.HasValue)
  383. {
  384. if (CurrentSilentConfig.Tweaks.DisableTelemetryTasks.Value)
  385. {
  386. OptimizeHelper.DisableTelemetryTasks();
  387. }
  388. else
  389. {
  390. OptimizeHelper.EnableTelemetryTasks();
  391. }
  392. }
  393. if (CurrentSilentConfig.Tweaks.DisableOffice2016Telemetry.HasValue)
  394. {
  395. if (CurrentSilentConfig.Tweaks.DisableOffice2016Telemetry.Value)
  396. {
  397. OptimizeHelper.DisableOffice2016Telemetry();
  398. }
  399. else
  400. {
  401. OptimizeHelper.EnableOffice2016Telemetry();
  402. }
  403. }
  404. if (CurrentSilentConfig.Tweaks.DisableCompatibilityAssistant.HasValue)
  405. {
  406. if (CurrentSilentConfig.Tweaks.DisableCompatibilityAssistant.Value)
  407. {
  408. OptimizeHelper.DisableCompatibilityAssistant();
  409. }
  410. else
  411. {
  412. OptimizeHelper.EnableCompatibilityAssistant();
  413. }
  414. }
  415. if (CurrentSilentConfig.Tweaks.DisableFaxService.HasValue)
  416. {
  417. if (CurrentSilentConfig.Tweaks.DisableFaxService.Value)
  418. {
  419. OptimizeHelper.DisableFaxService();
  420. }
  421. else
  422. {
  423. OptimizeHelper.EnableFaxService();
  424. }
  425. }
  426. if (CurrentSilentConfig.Tweaks.DisableSmartScreen.HasValue)
  427. {
  428. if (CurrentSilentConfig.Tweaks.DisableSmartScreen.Value)
  429. {
  430. OptimizeHelper.DisableSmartScreen();
  431. }
  432. else
  433. {
  434. OptimizeHelper.EnableSmartScreen();
  435. }
  436. }
  437. if (CurrentSilentConfig.Tweaks.DisableStickyKeys.HasValue)
  438. {
  439. if (CurrentSilentConfig.Tweaks.DisableStickyKeys.Value)
  440. {
  441. OptimizeHelper.DisableStickyKeys();
  442. }
  443. else
  444. {
  445. OptimizeHelper.EnableStickyKeys();
  446. }
  447. }
  448. if (CurrentSilentConfig.Tweaks.DisableHibernation.HasValue)
  449. {
  450. if (CurrentSilentConfig.Tweaks.DisableHibernation.Value)
  451. {
  452. Utilities.DisableHibernation();
  453. }
  454. else
  455. {
  456. Utilities.EnableHibernation();
  457. }
  458. }
  459. if (CurrentSilentConfig.Tweaks.DisableSMB1.HasValue)
  460. {
  461. if (CurrentSilentConfig.Tweaks.DisableSMB1.Value)
  462. {
  463. OptimizeHelper.DisableSMB("1");
  464. }
  465. else
  466. {
  467. OptimizeHelper.EnableSMB("1");
  468. }
  469. }
  470. if (CurrentSilentConfig.Tweaks.DisableSMB2.HasValue)
  471. {
  472. if (CurrentSilentConfig.Tweaks.DisableSMB2.Value)
  473. {
  474. OptimizeHelper.DisableSMB("2");
  475. }
  476. else
  477. {
  478. OptimizeHelper.EnableSMB("2");
  479. }
  480. }
  481. if (CurrentSilentConfig.Tweaks.DisableNTFSTimeStamp.HasValue)
  482. {
  483. if (CurrentSilentConfig.Tweaks.DisableNTFSTimeStamp.Value)
  484. {
  485. OptimizeHelper.DisableNTFSTimeStamp();
  486. }
  487. else
  488. {
  489. OptimizeHelper.EnableNTFSTimeStamp();
  490. }
  491. }
  492. if (CurrentSilentConfig.Tweaks.DisableSearch.HasValue)
  493. {
  494. if (CurrentSilentConfig.Tweaks.DisableSearch.Value)
  495. {
  496. OptimizeHelper.DisableSearch();
  497. }
  498. else
  499. {
  500. OptimizeHelper.EnableSearch();
  501. }
  502. }
  503. if (CurrentSilentConfig.Tweaks.DisableChromeTelemetry.HasValue)
  504. {
  505. if (CurrentSilentConfig.Tweaks.DisableChromeTelemetry.Value)
  506. {
  507. OptimizeHelper.DisableChromeTelemetry();
  508. }
  509. else
  510. {
  511. OptimizeHelper.EnableChromeTelemetry();
  512. }
  513. }
  514. if (CurrentSilentConfig.Tweaks.DisableFirefoxTemeletry.HasValue)
  515. {
  516. if (CurrentSilentConfig.Tweaks.DisableFirefoxTemeletry.Value)
  517. {
  518. OptimizeHelper.DisableFirefoxTelemetry();
  519. }
  520. else
  521. {
  522. OptimizeHelper.EnableFirefoxTelemetry();
  523. }
  524. }
  525. if (CurrentSilentConfig.Tweaks.DisableVisualStudioTelemetry.HasValue)
  526. {
  527. if (CurrentSilentConfig.Tweaks.DisableVisualStudioTelemetry.Value)
  528. {
  529. OptimizeHelper.DisableVisualStudioTelemetry();
  530. }
  531. else
  532. {
  533. OptimizeHelper.EnableVisualStudioTelemetry();
  534. }
  535. }
  536. if (CurrentSilentConfig.Tweaks.DisableNVIDIATelemetry.HasValue)
  537. {
  538. if (CurrentSilentConfig.Tweaks.DisableNVIDIATelemetry.Value)
  539. {
  540. OptimizeHelper.DisableNvidiaTelemetry();
  541. }
  542. else
  543. {
  544. OptimizeHelper.EnableNvidiaTelemetry();
  545. }
  546. }
  547. if (CurrentSilentConfig.Tweaks.DisableHPET.HasValue)
  548. {
  549. if (CurrentSilentConfig.Tweaks.DisableHPET.Value)
  550. {
  551. Utilities.DisableHPET();
  552. }
  553. else
  554. {
  555. Utilities.EnableHPET();
  556. }
  557. }
  558. if (CurrentSilentConfig.Tweaks.EnableLoginVerbose.HasValue)
  559. {
  560. if (CurrentSilentConfig.Tweaks.EnableLoginVerbose.Value)
  561. {
  562. Utilities.EnableLoginVerbose();
  563. }
  564. else
  565. {
  566. Utilities.DisableLoginVerbose();
  567. }
  568. }
  569. }
  570. #endregion
  571. #region Windows 8 Tweaks
  572. internal static void ProcessTweaksWindows8()
  573. {
  574. if (CurrentSilentConfig.Tweaks.DisableOneDrive.HasValue)
  575. {
  576. if (CurrentSilentConfig.Tweaks.DisableOneDrive.Value)
  577. {
  578. OptimizeHelper.DisableOneDrive();
  579. }
  580. else
  581. {
  582. OptimizeHelper.EnableOneDrive();
  583. }
  584. }
  585. }
  586. #endregion
  587. #region Windows 10 Tweaks
  588. internal static void ProcessTweaksWindows10()
  589. {
  590. if (CurrentSilentConfig.Tweaks.EnableGamingMode.HasValue)
  591. {
  592. if (CurrentSilentConfig.Tweaks.EnableGamingMode.Value)
  593. {
  594. OptimizeHelper.EnableGamingMode();
  595. }
  596. else
  597. {
  598. OptimizeHelper.DisableGamingMode();
  599. }
  600. }
  601. if (CurrentSilentConfig.Tweaks.EnableLegacyVolumeSlider.HasValue)
  602. {
  603. if (CurrentSilentConfig.Tweaks.EnableLegacyVolumeSlider.Value)
  604. {
  605. OptimizeHelper.EnableLegacyVolumeSlider();
  606. }
  607. else
  608. {
  609. OptimizeHelper.DisableLegacyVolumeSlider();
  610. }
  611. }
  612. if (CurrentSilentConfig.Tweaks.DisableQuickAccessHistory.HasValue)
  613. {
  614. if (CurrentSilentConfig.Tweaks.DisableQuickAccessHistory.Value)
  615. {
  616. OptimizeHelper.DisableQuickAccessHistory();
  617. }
  618. else
  619. {
  620. OptimizeHelper.EnableQuickAccessHistory();
  621. }
  622. }
  623. if (CurrentSilentConfig.Tweaks.DisableStartMenuAds.HasValue)
  624. {
  625. if (CurrentSilentConfig.Tweaks.DisableStartMenuAds.Value)
  626. {
  627. OptimizeHelper.DisableStartMenuAds();
  628. }
  629. else
  630. {
  631. OptimizeHelper.EnableStartMenuAds();
  632. }
  633. }
  634. if (CurrentSilentConfig.Tweaks.UninstallOneDrive.HasValue)
  635. {
  636. if (CurrentSilentConfig.Tweaks.UninstallOneDrive.Value)
  637. {
  638. OptimizeHelper.UninstallOneDrive();
  639. }
  640. else
  641. {
  642. OptimizeHelper.InstallOneDrive();
  643. }
  644. }
  645. if (CurrentSilentConfig.Tweaks.DisableMyPeople.HasValue)
  646. {
  647. if (CurrentSilentConfig.Tweaks.DisableMyPeople.Value)
  648. {
  649. OptimizeHelper.DisableMyPeople();
  650. }
  651. else
  652. {
  653. OptimizeHelper.EnableMyPeople();
  654. }
  655. }
  656. if (CurrentSilentConfig.Tweaks.EnableLongPaths.HasValue)
  657. {
  658. if (CurrentSilentConfig.Tweaks.EnableLongPaths.Value)
  659. {
  660. OptimizeHelper.EnableLongPaths();
  661. }
  662. else
  663. {
  664. OptimizeHelper.DisableLongPaths();
  665. }
  666. }
  667. if (CurrentSilentConfig.Tweaks.DisableAutomaticUpdates.HasValue)
  668. {
  669. if (CurrentSilentConfig.Tweaks.DisableAutomaticUpdates.Value)
  670. {
  671. OptimizeHelper.DisableAutomaticUpdates();
  672. }
  673. else
  674. {
  675. OptimizeHelper.EnableAutomaticUpdates();
  676. }
  677. }
  678. if (CurrentSilentConfig.Tweaks.ExcludeDrivers.HasValue)
  679. {
  680. if (CurrentSilentConfig.Tweaks.ExcludeDrivers.Value)
  681. {
  682. OptimizeHelper.ExcludeDrivers();
  683. }
  684. else
  685. {
  686. OptimizeHelper.IncludeDrivers();
  687. }
  688. }
  689. if (CurrentSilentConfig.Tweaks.DisableTelemetryServices.HasValue)
  690. {
  691. if (CurrentSilentConfig.Tweaks.DisableTelemetryServices.Value)
  692. {
  693. OptimizeHelper.DisableTelemetryServices();
  694. }
  695. else
  696. {
  697. OptimizeHelper.EnableTelemetryServices();
  698. }
  699. }
  700. if (CurrentSilentConfig.Tweaks.DisablePrivacyOptions.HasValue)
  701. {
  702. if (CurrentSilentConfig.Tweaks.DisablePrivacyOptions.Value)
  703. {
  704. OptimizeHelper.EnhancePrivacy();
  705. }
  706. else
  707. {
  708. OptimizeHelper.CompromisePrivacy();
  709. }
  710. }
  711. if (CurrentSilentConfig.Tweaks.DisableCortana.HasValue)
  712. {
  713. if (CurrentSilentConfig.Tweaks.DisableCortana.Value)
  714. {
  715. OptimizeHelper.DisableCortana();
  716. }
  717. else
  718. {
  719. OptimizeHelper.EnableCortana();
  720. }
  721. }
  722. if (CurrentSilentConfig.Tweaks.DisableSensorServices.HasValue)
  723. {
  724. if (CurrentSilentConfig.Tweaks.DisableSensorServices.Value)
  725. {
  726. OptimizeHelper.DisableSensorServices();
  727. }
  728. else
  729. {
  730. OptimizeHelper.EnableSensorServices();
  731. }
  732. }
  733. if (CurrentSilentConfig.Tweaks.DisableWindowsInk.HasValue)
  734. {
  735. if (CurrentSilentConfig.Tweaks.DisableWindowsInk.Value)
  736. {
  737. OptimizeHelper.DisableWindowsInk();
  738. }
  739. else
  740. {
  741. OptimizeHelper.EnableWindowsInk();
  742. }
  743. }
  744. if (CurrentSilentConfig.Tweaks.DisableSpellingTyping.HasValue)
  745. {
  746. if (CurrentSilentConfig.Tweaks.DisableSpellingTyping.Value)
  747. {
  748. OptimizeHelper.DisableSpellingAndTypingFeatures();
  749. }
  750. else
  751. {
  752. OptimizeHelper.EnableSpellingAndTypingFeatures();
  753. }
  754. }
  755. if (CurrentSilentConfig.Tweaks.DisableXboxLive.HasValue)
  756. {
  757. if (CurrentSilentConfig.Tweaks.DisableXboxLive.Value)
  758. {
  759. OptimizeHelper.DisableXboxLive();
  760. }
  761. else
  762. {
  763. OptimizeHelper.EnableXboxLive();
  764. }
  765. }
  766. if (CurrentSilentConfig.Tweaks.DisableGameBar.HasValue)
  767. {
  768. if (CurrentSilentConfig.Tweaks.DisableGameBar.Value)
  769. {
  770. OptimizeHelper.DisableGameBar();
  771. }
  772. else
  773. {
  774. OptimizeHelper.EnableGameBar();
  775. }
  776. }
  777. if (CurrentSilentConfig.Tweaks.DisableInsiderService.HasValue)
  778. {
  779. if (CurrentSilentConfig.Tweaks.DisableInsiderService.Value)
  780. {
  781. OptimizeHelper.DisableInsiderService();
  782. }
  783. else
  784. {
  785. OptimizeHelper.EnableInsiderService();
  786. }
  787. }
  788. if (CurrentSilentConfig.Tweaks.DisableStoreUpdates.HasValue)
  789. {
  790. if (CurrentSilentConfig.Tweaks.DisableStoreUpdates.Value)
  791. {
  792. OptimizeHelper.DisableStoreUpdates();
  793. }
  794. else
  795. {
  796. OptimizeHelper.EnableStoreUpdates();
  797. }
  798. }
  799. if (CurrentSilentConfig.Tweaks.DisableCloudClipboard.HasValue)
  800. {
  801. if (CurrentSilentConfig.Tweaks.DisableCloudClipboard.Value)
  802. {
  803. OptimizeHelper.DisableCloudClipboard();
  804. }
  805. else
  806. {
  807. OptimizeHelper.EnableCloudClipboard();
  808. }
  809. }
  810. if (CurrentSilentConfig.Tweaks.RemoveCastToDevice.HasValue)
  811. {
  812. if (CurrentSilentConfig.Tweaks.RemoveCastToDevice.Value)
  813. {
  814. OptimizeHelper.RemoveCastToDevice();
  815. }
  816. else
  817. {
  818. OptimizeHelper.AddCastToDevice();
  819. }
  820. }
  821. if (CurrentSilentConfig.Tweaks.DisableEdgeTelemetry.HasValue)
  822. {
  823. if (CurrentSilentConfig.Tweaks.DisableEdgeTelemetry.Value)
  824. {
  825. OptimizeHelper.DisableEdgeTelemetry();
  826. }
  827. else
  828. {
  829. OptimizeHelper.EnableEdgeTelemetry();
  830. }
  831. }
  832. if (CurrentSilentConfig.Tweaks.DisableEdgeDiscoverBar.HasValue)
  833. {
  834. if (CurrentSilentConfig.Tweaks.DisableEdgeDiscoverBar.Value)
  835. {
  836. OptimizeHelper.DisableEdgeDiscoverBar();
  837. }
  838. else
  839. {
  840. OptimizeHelper.EnableEdgeDiscoverBar();
  841. }
  842. }
  843. }
  844. #endregion
  845. #region Windows 11 Tweaks
  846. internal static void ProcessTweaksWindows11()
  847. {
  848. if (CurrentSilentConfig.Tweaks.TaskbarToLeft.HasValue)
  849. {
  850. if (CurrentSilentConfig.Tweaks.TaskbarToLeft.Value)
  851. {
  852. OptimizeHelper.AlignTaskbarToLeft();
  853. }
  854. else
  855. {
  856. OptimizeHelper.AlignTaskbarToCenter();
  857. }
  858. }
  859. if (CurrentSilentConfig.Tweaks.DisableStickers.HasValue)
  860. {
  861. if (CurrentSilentConfig.Tweaks.DisableStickers.Value)
  862. {
  863. OptimizeHelper.DisableStickers();
  864. }
  865. else
  866. {
  867. OptimizeHelper.EnableStickers();
  868. }
  869. }
  870. if (CurrentSilentConfig.Tweaks.CompactMode.HasValue)
  871. {
  872. if (CurrentSilentConfig.Tweaks.CompactMode.Value)
  873. {
  874. OptimizeHelper.EnableFilesCompactMode();
  875. }
  876. else
  877. {
  878. OptimizeHelper.DisableFilesCompactMode();
  879. }
  880. }
  881. if (CurrentSilentConfig.Tweaks.DisableSnapAssist.HasValue)
  882. {
  883. if (CurrentSilentConfig.Tweaks.DisableSnapAssist.Value)
  884. {
  885. OptimizeHelper.DisableSnapAssist();
  886. }
  887. else
  888. {
  889. OptimizeHelper.EnableSnapAssist();
  890. }
  891. }
  892. if (CurrentSilentConfig.Tweaks.DisableWidgets.HasValue)
  893. {
  894. if (CurrentSilentConfig.Tweaks.DisableWidgets.Value)
  895. {
  896. OptimizeHelper.DisableWidgets();
  897. }
  898. else
  899. {
  900. OptimizeHelper.EnableWidgets();
  901. }
  902. }
  903. if (CurrentSilentConfig.Tweaks.DisableChat.HasValue)
  904. {
  905. if (CurrentSilentConfig.Tweaks.DisableChat.Value)
  906. {
  907. OptimizeHelper.DisableChat();
  908. }
  909. else
  910. {
  911. OptimizeHelper.EnableChat();
  912. }
  913. }
  914. if (CurrentSilentConfig.Tweaks.DisableVBS.HasValue)
  915. {
  916. if (CurrentSilentConfig.Tweaks.DisableVBS.Value)
  917. {
  918. OptimizeHelper.DisableVirtualizationBasedSecurity();
  919. }
  920. else
  921. {
  922. OptimizeHelper.EnableVirtualizationBasedSecurity();
  923. }
  924. }
  925. if (CurrentSilentConfig.Tweaks.ClassicMenu.HasValue)
  926. {
  927. if (CurrentSilentConfig.Tweaks.ClassicMenu.Value)
  928. {
  929. OptimizeHelper.DisableShowMoreOptions();
  930. }
  931. else
  932. {
  933. OptimizeHelper.EnableShowMoreOptions();
  934. }
  935. }
  936. if (CurrentSilentConfig.Tweaks.DisableTPMCheck.HasValue)
  937. {
  938. if (CurrentSilentConfig.Tweaks.DisableTPMCheck.Value)
  939. {
  940. OptimizeHelper.DisableTPMCheck();
  941. }
  942. else
  943. {
  944. OptimizeHelper.EnableTPMCheck();
  945. }
  946. }
  947. }
  948. #endregion
  949. }
  950. }