MainForm.cs 66 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Windows.Forms;
  7. using System.IO;
  8. using System.Reflection;
  9. using System.Diagnostics;
  10. using System.Net;
  11. namespace Optimizer
  12. {
  13. public partial class MainForm : Form
  14. {
  15. ListViewColumnSorter _columnSorter;
  16. List<StartupItem> _startUpItems = new List<StartupItem>();
  17. List<string> _hostsEntries = new List<string>();
  18. List<string> _customCommands = new List<string>();
  19. List<string> _desktopItems = new List<string>();
  20. List<string> _modernApps = new List<string>();
  21. DesktopItemType _desktopItemType = DesktopItemType.Program;
  22. DesktopTypePosition _desktopItemPosition = DesktopTypePosition.Top;
  23. readonly string _latestVersionLink = "https://raw.githubusercontent.com/hellzerg/optimizer/master/version.txt";
  24. readonly string _changelogLink = "https://github.com/hellzerg/optimizer/blob/master/CHANGELOG.md";
  25. readonly string _noNewVersionMessage = "You already have the latest version!";
  26. readonly string _betaVersionMessage = "You are using an experimental version!";
  27. readonly string _blockedIP = "0.0.0.0";
  28. readonly string _restartMessage = "Restart to apply changes?";
  29. readonly string _removeStartupItemsMessage = "Are you sure you want to delete all startup items?";
  30. readonly string _removeHostsEntriesMessage = "Are you sure you want to delete all hosts entries?";
  31. readonly string _removeDesktopItemsMessage = "Are you sure you want to delete all desktop items?";
  32. readonly string _removeModernAppsMessage = "Are you sure you want to uninstall the following app(s)?";
  33. readonly string _errorModernAppsMessage = "The following app(s) couldn't be uninstalled:\n";
  34. readonly string _resetMessage = "Are you sure you want to reset configuration?\n\nThis will reset all your preferences, including any icons you extracted or downloaded using Integrator, but will not touch anything on your computer!";
  35. private string NewVersionMessage(string latestVersion)
  36. {
  37. return string.Format("There is a new version available!\n\nLatest version: {0}\nCurrent version: {1}\n\nDo you want to download it now?", latestVersion, Program.GetCurrentVersionTostring());
  38. }
  39. private string NewDownloadLink(string latestVersion)
  40. {
  41. return string.Format("https://github.com/hellzerg/optimizer/releases/download/{0}/Optimizer-{0}.exe", latestVersion);
  42. }
  43. private void CheckForUpdate()
  44. {
  45. WebClient client = new WebClient
  46. {
  47. Encoding = Encoding.UTF8
  48. };
  49. string latestVersion = string.Empty;
  50. try
  51. {
  52. latestVersion = client.DownloadString(_latestVersionLink);
  53. }
  54. catch (Exception ex)
  55. {
  56. MessageBox.Show(ex.Message, "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
  57. }
  58. if (!string.IsNullOrEmpty(latestVersion))
  59. {
  60. if (float.Parse(latestVersion) > Program.GetCurrentVersion())
  61. {
  62. if (MessageBox.Show(NewVersionMessage(latestVersion), "Update available", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
  63. {
  64. // PATCHING PROCESS
  65. try
  66. {
  67. Assembly currentAssembly = Assembly.GetEntryAssembly();
  68. if (currentAssembly == null)
  69. {
  70. currentAssembly = Assembly.GetCallingAssembly();
  71. }
  72. string appFolder = Path.GetDirectoryName(currentAssembly.Location);
  73. string appName = Path.GetFileNameWithoutExtension(currentAssembly.Location);
  74. string appExtension = Path.GetExtension(currentAssembly.Location);
  75. string archiveFile = Path.Combine(appFolder, appName + "_old" + appExtension);
  76. string appFile = Path.Combine(appFolder, appName + appExtension);
  77. string tempFile = Path.Combine(appFolder, appName + "_tmp" + appExtension);
  78. // DOWNLOAD NEW VERSION
  79. client.DownloadFile(NewDownloadLink(latestVersion), tempFile);
  80. // DELETE PREVIOUS BACK-UP
  81. if (File.Exists(archiveFile))
  82. {
  83. File.Delete(archiveFile);
  84. }
  85. // MAKE BACK-UP
  86. File.Move(appFile, archiveFile);
  87. // PATCH
  88. File.Move(tempFile, appFile);
  89. Application.Restart();
  90. }
  91. catch (Exception ex)
  92. {
  93. MessageBox.Show(ex.Message);
  94. }
  95. }
  96. }
  97. else if (float.Parse(latestVersion) == Program.GetCurrentVersion())
  98. {
  99. MessageBox.Show(_noNewVersionMessage, "No update available", MessageBoxButtons.OK, MessageBoxIcon.Information);
  100. }
  101. else
  102. {
  103. MessageBox.Show(_betaVersionMessage, "No update available", MessageBoxButtons.OK, MessageBoxIcon.Information);
  104. }
  105. }
  106. }
  107. private void EnableToggleEvents()
  108. {
  109. toggleSwitch12.Click += new EventHandler(toggleSwitch12_Click);
  110. toggleSwitch11.Click += new EventHandler(toggleSwitch11_Click);
  111. toggleSwitch10.Click += new EventHandler(toggleSwitch10_Click);
  112. toggleSwitch9.Click += new EventHandler(toggleSwitch9_Click);
  113. toggleSwitch8.Click += new EventHandler(toggleSwitch8_Click);
  114. toggleSwitch7.Click += new EventHandler(toggleSwitch7_Click);
  115. toggleSwitch6.Click += new EventHandler(toggleSwitch6_Click);
  116. toggleSwitch5.Click += new EventHandler(toggleSwitch5_Click);
  117. toggleSwitch4.Click += new EventHandler(toggleSwitch4_Click);
  118. toggleSwitch1.Click += new EventHandler(toggleSwitch1_Click);
  119. toggleSwitch3.Click += new EventHandler(toggleSwitch3_Click);
  120. toggleSwitch2.Click += new EventHandler(toggleSwitch2_Click);
  121. toggleSwitch27.Click += new EventHandler(toggleSwitch27_Click);
  122. toggleSwitch28.Click += new EventHandler(toggleSwitch28_Click);
  123. toggleSwitch29.Click += new EventHandler(toggleSwitch29_Click);
  124. toggleSwitch30.Click += new EventHandler(toggleSwitch30_Click);
  125. toggleSwitch22.Click += new EventHandler(toggleSwitch22_Click);
  126. toggleSwitch20.Click += new EventHandler(toggleSwitch20_Click);
  127. toggleSwitch21.Click += new EventHandler(toggleSwitch21_Click);
  128. toggleSwitch23.Click += new EventHandler(toggleSwitch23_Click);
  129. toggleSwitch24.Click += new EventHandler(toggleSwitch24_Click);
  130. toggleSwitch25.Click += new EventHandler(toggleSwitch25_Click);
  131. toggleSwitch26.Click += new EventHandler(toggleSwitch26_Click);
  132. toggleSwitch17.Click += new EventHandler(toggleSwitch17_Click);
  133. toggleSwitch16.Click += new EventHandler(toggleSwitch16_Click);
  134. toggleSwitch15.Click += new EventHandler(toggleSwitch15_Click);
  135. toggleSwitch14.Click += new EventHandler(toggleSwitch14_Click);
  136. toggleSwitch13.Click += new EventHandler(toggleSwitch13_Click);
  137. toggleSwitch31.Click += new EventHandler(toggleSwitch31_Click);
  138. toggleSwitch18.Click += new EventHandler(toggleSwitch18_Click);
  139. toggleSwitch19.Click += new EventHandler(toggleSwitch19_Click);
  140. toggleSwitch32.Click += new EventHandler(toggleSwitch32_Click);
  141. toggleSwitch33.Click += new EventHandler(ToggleSwitch33_Click);
  142. toggleSwitch34.Click += new EventHandler(ToggleSwitch34_Click);
  143. toggleSwitch35.Click += new EventHandler(ToggleSwitch35_Click);
  144. toggleSwitch36.Click += new EventHandler(ToggleSwitch36_Click);
  145. toggleSwitch37.Click += new EventHandler(ToggleSwitch37_Click);
  146. toggleSwitch38.Click += new EventHandler(ToggleSwitch38_Click);
  147. toggleSwitch39.Click += new EventHandler(ToggleSwitch39_Click);
  148. }
  149. private void ToggleSwitch39_Click(object sender, EventArgs e)
  150. {
  151. if (!toggleSwitch39.Checked)
  152. {
  153. Optimize.EnableLongPaths();
  154. }
  155. else
  156. {
  157. Optimize.DisableLongPaths();
  158. }
  159. Options.CurrentOptions.EnableLongPaths = !toggleSwitch39.Checked;
  160. }
  161. private void ToggleSwitch38_Click(object sender, EventArgs e)
  162. {
  163. if (!toggleSwitch38.Checked)
  164. {
  165. Optimize.DisableStickyKeys();
  166. }
  167. else
  168. {
  169. Optimize.EnableStickyKeys();
  170. }
  171. Options.CurrentOptions.DisableStickyKeys = !toggleSwitch38.Checked;
  172. }
  173. private void ToggleSwitch37_Click(object sender, EventArgs e)
  174. {
  175. if (!toggleSwitch37.Checked)
  176. {
  177. Optimize.DisableCloudClipboard();
  178. }
  179. else
  180. {
  181. Optimize.EnableCloudClipboard();
  182. }
  183. Options.CurrentOptions.DisableCloudClipboard = !toggleSwitch37.Checked;
  184. }
  185. private void ToggleSwitch36_Click(object sender, EventArgs e)
  186. {
  187. if (!toggleSwitch36.Checked)
  188. {
  189. Optimize.DisableSmartScreen();
  190. }
  191. else
  192. {
  193. Optimize.EnableSmartScreen();
  194. }
  195. Options.CurrentOptions.DisableSmartScreen = !toggleSwitch36.Checked;
  196. }
  197. private void ToggleSwitch35_Click(object sender, EventArgs e)
  198. {
  199. if (!toggleSwitch35.Checked)
  200. {
  201. Optimize.DisableForcedFeatureUpdates();
  202. }
  203. else
  204. {
  205. Optimize.EnableForcedFeatureUpdates();
  206. }
  207. Options.CurrentOptions.DisableFeatureUpdates = !toggleSwitch35.Checked;
  208. }
  209. private void ToggleSwitch34_Click(object sender, EventArgs e)
  210. {
  211. if (!toggleSwitch34.Checked)
  212. {
  213. Optimize.DisableInsiderService();
  214. }
  215. else
  216. {
  217. Optimize.EnableInsiderService();
  218. }
  219. Options.CurrentOptions.DisableInsiderService = !toggleSwitch34.Checked;
  220. }
  221. private void ToggleSwitch33_Click(object sender, EventArgs e)
  222. {
  223. if (!toggleSwitch33.Checked)
  224. {
  225. Optimize.DisableFaxService();
  226. }
  227. else
  228. {
  229. Optimize.EnableFaxService();
  230. }
  231. Options.CurrentOptions.DisableFaxService = !toggleSwitch33.Checked;
  232. }
  233. private void LoadSettings()
  234. {
  235. switch (Options.CurrentOptions.Color)
  236. {
  237. case Theme.Caramel:
  238. radioCaramel.Checked = true;
  239. break;
  240. case Theme.Lime:
  241. radioLime.Checked = true;
  242. break;
  243. case Theme.Magma:
  244. radioMagma.Checked = true;
  245. break;
  246. case Theme.Minimal:
  247. radioMinimal.Checked = true;
  248. break;
  249. case Theme.Ocean:
  250. radioOcean.Checked = true;
  251. break;
  252. case Theme.Zerg:
  253. radioZerg.Checked = true;
  254. break;
  255. }
  256. }
  257. public MainForm()
  258. {
  259. InitializeComponent();
  260. EnableToggleEvents();
  261. CheckForIllegalCrossThreadCalls = false;
  262. Options.ApplyTheme(this);
  263. ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
  264. if (Utilities.CurrentWindowsVersion == WindowsVersion.Unsupported)
  265. {
  266. tabCollection.TabPages.Remove(universalTab);
  267. tabCollection.TabPages.Remove(windowsVIIITab);
  268. tabCollection.TabPages.Remove(windowsXTab);
  269. tabCollection.TabPages.Remove(modernAppsTab);
  270. }
  271. if (Utilities.CurrentWindowsVersion == WindowsVersion.Windows7)
  272. {
  273. LoadUniversalToggleStates();
  274. tabCollection.TabPages.Remove(windowsVIIITab);
  275. tabCollection.TabPages.Remove(windowsXTab);
  276. tabCollection.TabPages.Remove(modernAppsTab);
  277. }
  278. if (Utilities.CurrentWindowsVersion == WindowsVersion.Windows8)
  279. {
  280. LoadUniversalToggleStates();
  281. LoadWindowsVIIIToggleStates();
  282. tabCollection.TabPages.Remove(windowsXTab);
  283. GetModernApps();
  284. }
  285. if (Utilities.CurrentWindowsVersion == WindowsVersion.Windows10)
  286. {
  287. LoadUniversalToggleStates();
  288. LoadWindowsXToggleStates();
  289. tabCollection.TabPages.Remove(windowsVIIITab);
  290. GetModernApps();
  291. }
  292. _columnSorter = new ListViewColumnSorter();
  293. listStartupItems.ListViewItemSorter = _columnSorter;
  294. integratorTimer.Start();
  295. runDialogTime.Start();
  296. GetStartupItems();
  297. GetHostsEntries();
  298. GetDesktopItems();
  299. GetCustomCommands();
  300. LoadSettings();
  301. radioProgram.Checked = true;
  302. radioTop.Checked = true;
  303. txtVersion.Text = "Version: " + Program.GetCurrentVersionTostring();
  304. Program.MainForm = this;
  305. txtOS.Text = "Microsoft " + Utilities.GetOS();
  306. txtBitness.Text = Utilities.GetBitness();
  307. }
  308. private void CleanPC()
  309. {
  310. try
  311. {
  312. if (checkTemp.Checked)
  313. {
  314. CleanHelper.CleanTemporaries();
  315. }
  316. if (checkUTorrent.Checked)
  317. {
  318. CleanHelper.CleanUTorrent();
  319. }
  320. if (checkFileZilla.Checked)
  321. {
  322. CleanHelper.CleanFileZilla();
  323. }
  324. if (checkMiniDumps.Checked)
  325. {
  326. CleanHelper.CleanMiniDumps();
  327. }
  328. if (checkPrefetch.Checked)
  329. {
  330. CleanHelper.CleanPrefetch();
  331. }
  332. if (checkMediaCache.Checked)
  333. {
  334. CleanHelper.CleanMediaPlayersCache();
  335. }
  336. if (checkLogs.Checked)
  337. {
  338. CleanHelper.CleanLogs();
  339. }
  340. if (checkErrorReports.Checked)
  341. {
  342. CleanHelper.CleanErrorReports();
  343. }
  344. if (checkBin.Checked)
  345. {
  346. CleanHelper.EmptyRecycleBin();
  347. }
  348. }
  349. catch { }
  350. finally
  351. {
  352. CleaningAnimation(false);
  353. }
  354. }
  355. private void CleaningAnimation(bool start)
  356. {
  357. if (start)
  358. {
  359. Utilities.SetControlPropertyThreadSafe(cleaningpanel, "Visible", true);
  360. Utilities.SetControlPropertyThreadSafe(progress2, "Visible", true);
  361. Utilities.SetControlPropertyThreadSafe(progress2, "Style", ProgressBarStyle.Marquee);
  362. Utilities.SetControlPropertyThreadSafe(progress2, "MarqueeAnimationSpeed", 1);
  363. Utilities.SetControlPropertyThreadSafe(label4, "Visible", true);
  364. Utilities.SetControlPropertyThreadSafe(button20, "Enabled", false);
  365. Utilities.SetControlPropertyThreadSafe(panel1, "Enabled", false);
  366. }
  367. else
  368. {
  369. Utilities.SetControlPropertyThreadSafe(cleaningpanel, "Visible", false);
  370. Utilities.SetControlPropertyThreadSafe(progress2, "Visible", false);
  371. Utilities.SetControlPropertyThreadSafe(progress2, "Value", 0);
  372. Utilities.SetControlPropertyThreadSafe(progress2, "Style", ProgressBarStyle.Blocks);
  373. Utilities.SetControlPropertyThreadSafe(progress2, "MarqueeAnimationSpeed", 1);
  374. Utilities.SetControlPropertyThreadSafe(label4, "Visible", false);
  375. Utilities.SetControlPropertyThreadSafe(button20, "Enabled", true);
  376. Utilities.SetControlPropertyThreadSafe(panel1, "Enabled", true);
  377. }
  378. }
  379. private bool FixRegistry()
  380. {
  381. bool changeDetected = false;
  382. try
  383. {
  384. if (checkFirewall.Checked)
  385. {
  386. Utilities.EnableFirewall();
  387. changeDetected = true;
  388. }
  389. if (checkCommandPrompt.Checked)
  390. {
  391. Utilities.EnableCommandPrompt();
  392. changeDetected = true;
  393. }
  394. if (checkControlPanel.Checked)
  395. {
  396. Utilities.EnableControlPanel();
  397. changeDetected = true;
  398. }
  399. if (checkFolderOptions.Checked)
  400. {
  401. Utilities.EnableFolderOptions();
  402. changeDetected = true;
  403. }
  404. if (checkRunDialog.Checked)
  405. {
  406. Utilities.EnableRunDialog();
  407. changeDetected = true;
  408. }
  409. if (checkContextMenu.Checked)
  410. {
  411. Utilities.EnableContextMenu();
  412. changeDetected = true;
  413. }
  414. if (checkTaskManager.Checked)
  415. {
  416. Utilities.EnableTaskManager();
  417. changeDetected = true;
  418. }
  419. if (checkRegistryEditor.Checked)
  420. {
  421. Utilities.EnableRegistryEditor();
  422. changeDetected = true;
  423. }
  424. }
  425. catch { }
  426. return changeDetected;
  427. }
  428. private void LoadUniversalToggleStates()
  429. {
  430. toggleSwitch1.Checked = Options.CurrentOptions.EnablePerformanceTweaks;
  431. toggleSwitch2.Checked = Options.CurrentOptions.DisableNetworkThrottling;
  432. toggleSwitch3.Checked = Options.CurrentOptions.DisableWindowsDefender;
  433. toggleSwitch4.Checked = Options.CurrentOptions.DisableSystemRestore;
  434. toggleSwitch5.Checked = Options.CurrentOptions.DisablePrintService;
  435. toggleSwitch6.Checked = Options.CurrentOptions.DisableMediaPlayerSharing;
  436. toggleSwitch7.Checked = Options.CurrentOptions.BlockSkypeAds;
  437. toggleSwitch8.Checked = Options.CurrentOptions.DisableErrorReporting;
  438. toggleSwitch9.Checked = Options.CurrentOptions.DisableHomeGroup;
  439. toggleSwitch10.Checked = Options.CurrentOptions.DisableSuperfetch;
  440. toggleSwitch11.Checked = Options.CurrentOptions.DisableTelemetryTasks;
  441. toggleSwitch12.Checked = Options.CurrentOptions.DisableOffice2016Telemetry;
  442. toggleSwitch32.Checked = Options.CurrentOptions.DisableCompatibilityAssistant;
  443. toggleSwitch33.Checked = Options.CurrentOptions.DisableFaxService;
  444. toggleSwitch36.Checked = Options.CurrentOptions.DisableSmartScreen;
  445. toggleSwitch38.Checked = Options.CurrentOptions.DisableStickyKeys;
  446. }
  447. private void LoadWindowsVIIIToggleStates()
  448. {
  449. toggleSwitch31.Checked = Options.CurrentOptions.DisableOneDrive;
  450. }
  451. private void LoadWindowsXToggleStates()
  452. {
  453. toggleSwitch13.Checked = Options.CurrentOptions.EnableLegacyVolumeSlider;
  454. toggleSwitch14.Checked = Options.CurrentOptions.UninstallOneDrive;
  455. toggleSwitch15.Checked = Options.CurrentOptions.DisableGameBar;
  456. toggleSwitch16.Checked = Options.CurrentOptions.DisableCortana;
  457. toggleSwitch17.Checked = Options.CurrentOptions.DisableXboxLive;
  458. toggleSwitch18.Checked = Options.CurrentOptions.DisableQuickAccessHistory;
  459. toggleSwitch19.Checked = Options.CurrentOptions.EnableTaskbarColor;
  460. toggleSwitch20.Checked = Options.CurrentOptions.DisableSensorServices;
  461. toggleSwitch21.Checked = Options.CurrentOptions.DisablePrivacyOptions;
  462. toggleSwitch22.Checked = Options.CurrentOptions.DisableSilentAppInstall;
  463. toggleSwitch23.Checked = Options.CurrentOptions.DisableTelemetryServices;
  464. toggleSwitch24.Checked = Options.CurrentOptions.DisableAutomaticUpdates;
  465. toggleSwitch25.Checked = Options.CurrentOptions.DisableMyPeople;
  466. toggleSwitch26.Checked = Options.CurrentOptions.DisableStartMenuAds;
  467. toggleSwitch27.Checked = Options.CurrentOptions.EnableDarkTheme;
  468. toggleSwitch28.Checked = Options.CurrentOptions.DisableSpellingTyping;
  469. toggleSwitch29.Checked = Options.CurrentOptions.DisableWindowsInk;
  470. toggleSwitch30.Checked = Options.CurrentOptions.ExcludeDrivers;
  471. toggleSwitch34.Checked = Options.CurrentOptions.DisableInsiderService;
  472. toggleSwitch35.Checked = Options.CurrentOptions.DisableFeatureUpdates;
  473. toggleSwitch37.Checked = Options.CurrentOptions.DisableCloudClipboard;
  474. toggleSwitch39.Checked = Options.CurrentOptions.EnableLongPaths;
  475. }
  476. private void Main_Load(object sender, EventArgs e)
  477. {
  478. }
  479. private void GetDesktopItems()
  480. {
  481. _desktopItems = Integrator.GetDesktopItems();
  482. listDesktopItems.Items.Clear();
  483. for (int i = 0; i < _desktopItems.Count; i++)
  484. {
  485. if (!string.IsNullOrEmpty(_desktopItems[i]))
  486. {
  487. listDesktopItems.Items.Add(_desktopItems[i]);
  488. }
  489. }
  490. }
  491. private void GetHostsEntries()
  492. {
  493. _hostsEntries = HostsHelper.GetHostsEntries();
  494. listHostEntries.Items.Clear();
  495. for (int i = 0; i < _hostsEntries.Count; i++)
  496. {
  497. if (!string.IsNullOrEmpty(_hostsEntries[i]))
  498. {
  499. listHostEntries.Items.Add(_hostsEntries[i]);
  500. }
  501. }
  502. chkReadOnly.Checked = HostsHelper.GetReadOnly();
  503. button47.Enabled = !chkReadOnly.Checked;
  504. button46.Enabled = !chkReadOnly.Checked;
  505. button42.Enabled = !chkReadOnly.Checked;
  506. button41.Enabled = !chkReadOnly.Checked;
  507. linkLabel4.Enabled = !chkReadOnly.Checked;
  508. chkBlock.Enabled = !chkReadOnly.Checked;
  509. txtDomain.Enabled = !chkReadOnly.Checked;
  510. txtIP.Enabled = !chkReadOnly.Checked;
  511. }
  512. private void GetStartupItems()
  513. {
  514. _startUpItems = Utilities.GetStartupItems();
  515. listStartupItems.Items.Clear();
  516. for (int i = 0; i < _startUpItems.Count; i++)
  517. {
  518. ListViewItem list = new ListViewItem(_startUpItems[i].Name);
  519. list.SubItems.Add(_startUpItems[i].FileLocation);
  520. list.SubItems.Add(_startUpItems[i].ToString());
  521. listStartupItems.Items.Add(list);
  522. }
  523. }
  524. private void GetModernApps()
  525. {
  526. button74.Enabled = false;
  527. button75.Enabled = false;
  528. listModernApps.Enabled = false;
  529. listModernApps.Items.Clear();
  530. _modernApps = Utilities.GetModernApps();
  531. foreach (string x in _modernApps)
  532. {
  533. listModernApps.Items.Add(x);
  534. }
  535. button74.Enabled = true;
  536. button75.Enabled = true;
  537. listModernApps.Enabled = true;
  538. }
  539. private async void UninstallModernApps()
  540. {
  541. string selectedApps = string.Empty;
  542. if (listModernApps.CheckedItems.Count > 0)
  543. {
  544. foreach (string x in listModernApps.CheckedItems)
  545. {
  546. if (string.IsNullOrEmpty(selectedApps))
  547. {
  548. selectedApps = x;
  549. }
  550. else
  551. {
  552. selectedApps += Environment.NewLine + x;
  553. }
  554. }
  555. if (MessageBox.Show(_removeModernAppsMessage + "\n\n" + selectedApps, "Optimizer", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
  556. {
  557. button74.Enabled = false;
  558. button75.Enabled = false;
  559. listModernApps.Enabled = false;
  560. bool errorOccured = false;
  561. string failedApps = string.Empty;
  562. foreach (string app in listModernApps.CheckedItems)
  563. {
  564. await Task.Run(() => errorOccured = Utilities.UninstallModernApp(app));
  565. if (errorOccured)
  566. {
  567. failedApps += Environment.NewLine + app;
  568. }
  569. }
  570. if (!string.IsNullOrEmpty(failedApps))
  571. {
  572. MessageBox.Show(_errorModernAppsMessage + failedApps, "Optimizer", MessageBoxButtons.OK, MessageBoxIcon.Information);
  573. }
  574. GetModernApps();
  575. }
  576. }
  577. }
  578. private void GetCustomCommands()
  579. {
  580. _customCommands = Integrator.GetCustomCommands();
  581. listCustomCommands.Items.Clear();
  582. foreach (string s in _customCommands)
  583. {
  584. listCustomCommands.Items.Add(s);
  585. }
  586. }
  587. private void Main_FormClosing(object sender, EventArgs e)
  588. {
  589. Options.SaveSettings();
  590. }
  591. private void button39_Click(object sender, EventArgs e)
  592. {
  593. HelperForm f = new HelperForm(this, MessageType.Restart, _restartMessage);
  594. f.ShowDialog();
  595. }
  596. private void button43_Click(object sender, EventArgs e)
  597. {
  598. HelperForm f = new HelperForm(this, MessageType.Restart, _restartMessage);
  599. f.ShowDialog();
  600. }
  601. private void button44_Click(object sender, EventArgs e)
  602. {
  603. HelperForm f = new HelperForm(this, MessageType.Restart, _restartMessage);
  604. f.ShowDialog();
  605. }
  606. private void button45_Click(object sender, EventArgs e)
  607. {
  608. HelperForm f = new HelperForm(this, MessageType.Restart, _restartMessage);
  609. f.ShowDialog();
  610. }
  611. private void button18_Click(object sender, EventArgs e)
  612. {
  613. EdgeForm f = new EdgeForm();
  614. f.ShowDialog();
  615. }
  616. private void checkSelectAll_CheckedChanged(object sender, EventArgs e)
  617. {
  618. checkTemp.Checked = checkSelectAll.Checked;
  619. checkUTorrent.Checked = checkSelectAll.Checked;
  620. checkFileZilla.Checked = checkSelectAll.Checked;
  621. checkMiniDumps.Checked = checkSelectAll.Checked;
  622. checkPrefetch.Checked = checkSelectAll.Checked;
  623. checkMediaCache.Checked = checkSelectAll.Checked;
  624. checkLogs.Checked = checkSelectAll.Checked;
  625. checkBin.Checked = checkSelectAll.Checked;
  626. checkErrorReports.Checked = checkSelectAll.Checked;
  627. }
  628. private void button20_Click(object sender, EventArgs e)
  629. {
  630. CleaningAnimation(true);
  631. Task t = new Task(() => CleanPC());
  632. t.Start();
  633. }
  634. private void button32_Click(object sender, EventArgs e)
  635. {
  636. if (listStartupItems.SelectedItems.Count == 1)
  637. {
  638. _startUpItems[listStartupItems.SelectedIndices[0]].Remove();
  639. GetStartupItems();
  640. }
  641. }
  642. internal void RemoveAllStartupItems()
  643. {
  644. foreach (ListViewItem i in listStartupItems.Items)
  645. {
  646. _startUpItems[i.Index].Remove();
  647. }
  648. GetStartupItems();
  649. }
  650. private void button22_Click(object sender, EventArgs e)
  651. {
  652. if (listStartupItems.Items.Count > 0)
  653. {
  654. HelperForm r = new HelperForm(this, MessageType.Startup, _removeStartupItemsMessage);
  655. r.ShowDialog(this);
  656. }
  657. }
  658. private void button31_Click(object sender, EventArgs e)
  659. {
  660. if (listStartupItems.SelectedItems.Count == 1)
  661. {
  662. _startUpItems[listStartupItems.SelectedIndices[0]].LocateFile();
  663. }
  664. }
  665. private void checkEnableAll_CheckedChanged(object sender, EventArgs e)
  666. {
  667. checkTaskManager.Checked = checkEnableAll.Checked;
  668. checkCommandPrompt.Checked = checkEnableAll.Checked;
  669. checkControlPanel.Checked = checkEnableAll.Checked;
  670. checkFolderOptions.Checked = checkEnableAll.Checked;
  671. checkRunDialog.Checked = checkEnableAll.Checked;
  672. checkContextMenu.Checked = checkEnableAll.Checked;
  673. checkFirewall.Checked = checkEnableAll.Checked;
  674. checkRegistryEditor.Checked = checkEnableAll.Checked;
  675. }
  676. private void button33_Click(object sender, EventArgs e)
  677. {
  678. bool flag = FixRegistry();
  679. if (flag)
  680. {
  681. panel2.Enabled = false;
  682. button33.Enabled = false;
  683. if (checkRestartExplorer.Checked)
  684. {
  685. Utilities.RestartExplorer();
  686. }
  687. panel2.Enabled = true;
  688. button33.Enabled = true;
  689. }
  690. }
  691. private void pictureBox1_Click(object sender, EventArgs e)
  692. {
  693. AboutForm f = new AboutForm();
  694. f.ShowDialog(this);
  695. }
  696. private void button37_Click(object sender, EventArgs e)
  697. {
  698. GetStartupItems();
  699. }
  700. private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
  701. {
  702. HostsHelper.LocateHosts();
  703. }
  704. private void linkLabel3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
  705. {
  706. HostsEditorForm f = new HostsEditorForm();
  707. f.ShowDialog(this);
  708. GetHostsEntries();
  709. }
  710. private void linkLabel4_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
  711. {
  712. HostsHelper.RestoreDefaultHosts();
  713. GetHostsEntries();
  714. }
  715. private void button47_Click(object sender, EventArgs e)
  716. {
  717. if ((txtIP.Text != string.Empty) && (txtDomain.Text != string.Empty))
  718. {
  719. string ip = txtIP.Text.Trim();
  720. string domain = txtDomain.Text.Trim();
  721. string recommendedDomain = string.Empty;
  722. if (!domain.StartsWith("www."))
  723. {
  724. recommendedDomain = "www." + domain;
  725. }
  726. else
  727. {
  728. recommendedDomain = domain.Replace("www.", string.Empty);
  729. }
  730. HostsHelper.AddEntry(HostsHelper.SanitizeEntry(ip) + " " + HostsHelper.SanitizeEntry(domain));
  731. if (!string.IsNullOrEmpty(recommendedDomain))
  732. {
  733. HostsHelper.AddEntry(HostsHelper.SanitizeEntry(ip) + " " + HostsHelper.SanitizeEntry(recommendedDomain));
  734. }
  735. GetHostsEntries();
  736. txtIP.Clear();
  737. txtDomain.Clear();
  738. chkBlock.Checked = false;
  739. }
  740. }
  741. private void button41_Click(object sender, EventArgs e)
  742. {
  743. GetHostsEntries();
  744. }
  745. private void button42_Click(object sender, EventArgs e)
  746. {
  747. if (listHostEntries.SelectedItems.Count == 1)
  748. {
  749. HostsHelper.RemoveEntry(listHostEntries.SelectedItem.ToString().Replace(" : ", " "));
  750. GetHostsEntries();
  751. }
  752. }
  753. private void button46_Click(object sender, EventArgs e)
  754. {
  755. if (listHostEntries.Items.Count > 0)
  756. {
  757. HelperForm r = new HelperForm(this, MessageType.Hosts, _removeHostsEntriesMessage);
  758. r.ShowDialog(this);
  759. }
  760. }
  761. internal void RemoveAllHostsEntries()
  762. {
  763. List<string> collection = new List<string>();
  764. foreach (string item in listHostEntries.Items)
  765. {
  766. collection.Add(item.Replace(" : ", " "));
  767. }
  768. HostsHelper.RemoveAllEntries(collection);
  769. GetHostsEntries();
  770. }
  771. private void aio_SelectedIndexChanged(object sender, EventArgs e)
  772. {
  773. if (tabCollection.SelectedTab == hostsEditorTab)
  774. {
  775. txtIP.Focus();
  776. }
  777. }
  778. private void button48_Click(object sender, EventArgs e)
  779. {
  780. defineCommandDialog.ShowDialog();
  781. }
  782. private void button50_Click(object sender, EventArgs e)
  783. {
  784. if ((txtRunFile.Text != string.Empty) && (txtRunKeyword.Text != string.Empty))
  785. {
  786. Integrator.CreateCustomCommand(txtRunFile.Text, txtRunKeyword.Text);
  787. txtRunFile.Clear();
  788. txtRunKeyword.Clear();
  789. GetCustomCommands();
  790. }
  791. }
  792. private void DefineCmd_FileOk(object sender, CancelEventArgs e)
  793. {
  794. txtRunFile.Text = defineCommandDialog.FileName;
  795. txtRunKeyword.Text = Path.GetFileNameWithoutExtension(txtRunFile.Text).ToLower();
  796. }
  797. private void button58_Click(object sender, EventArgs e)
  798. {
  799. InfoForm r = new InfoForm(Integrator.powerinfo);
  800. r.ShowDialog(this);
  801. }
  802. private void button56_Click(object sender, EventArgs e)
  803. {
  804. InfoForm r = new InfoForm(Integrator.systemtoolsinfo);
  805. r.ShowDialog(this);
  806. }
  807. private void button52_Click(object sender, EventArgs e)
  808. {
  809. InfoForm r = new InfoForm(Integrator.windowsappsinfo);
  810. r.ShowDialog(this);
  811. }
  812. private void button49_Click(object sender, EventArgs e)
  813. {
  814. InfoForm r = new InfoForm(Integrator.systemshortcutsinfo);
  815. r.ShowDialog(this);
  816. }
  817. private void button55_Click(object sender, EventArgs e)
  818. {
  819. InfoForm r = new InfoForm(Integrator.desktopshortcutsinfo);
  820. r.ShowDialog(this);
  821. }
  822. private void button59_Click(object sender, EventArgs e)
  823. {
  824. Utilities.ImportRegistryScript(Required.ReadyMadeMenusFolder + "\\PowerMenu.reg");
  825. GetDesktopItems();
  826. }
  827. private void button53_Click(object sender, EventArgs e)
  828. {
  829. Utilities.ImportRegistryScript(Required.ReadyMadeMenusFolder + "\\SystemTools.reg");
  830. GetDesktopItems();
  831. }
  832. private void button54_Click(object sender, EventArgs e)
  833. {
  834. Utilities.ImportRegistryScript(Required.ReadyMadeMenusFolder + "\\WindowsApps.reg");
  835. GetDesktopItems();
  836. }
  837. private void button51_Click(object sender, EventArgs e)
  838. {
  839. Utilities.ImportRegistryScript(Required.ReadyMadeMenusFolder + "\\SystemShortcuts.reg");
  840. GetDesktopItems();
  841. }
  842. private void button57_Click(object sender, EventArgs e)
  843. {
  844. Utilities.ImportRegistryScript(Required.ReadyMadeMenusFolder + "\\DesktopShortcuts.reg");
  845. GetDesktopItems();
  846. }
  847. private void button60_Click(object sender, EventArgs e)
  848. {
  849. GetDesktopItems();
  850. }
  851. private void button61_Click(object sender, EventArgs e)
  852. {
  853. if (listDesktopItems.SelectedItems.Count == 1)
  854. {
  855. Integrator.RemoveItem(listDesktopItems.SelectedItem.ToString());
  856. GetDesktopItems();
  857. }
  858. }
  859. internal void RemoveAllDesktopItems()
  860. {
  861. List<string> collection = new List<string>();
  862. foreach (string item in listDesktopItems.Items)
  863. {
  864. collection.Add(item);
  865. }
  866. Integrator.RemoveAllItems(collection);
  867. GetDesktopItems();
  868. }
  869. private void button62_Click(object sender, EventArgs e)
  870. {
  871. if (listDesktopItems.Items.Count > 0)
  872. {
  873. HelperForm r = new HelperForm(this, MessageType.Integrator, _removeDesktopItemsMessage);
  874. r.ShowDialog(this);
  875. }
  876. }
  877. private void radioProgram_CheckedChanged(object sender, EventArgs e)
  878. {
  879. if (radioProgram.Checked)
  880. {
  881. btnBrowseItem.Enabled = true;
  882. txtItem.Clear();
  883. checkDefaultIcon.Checked = true;
  884. txtIcon.Enabled = false;
  885. btnBrowseIcon.Enabled = false;
  886. itemtoaddgroup.Text = "Program to add:";
  887. checkDefaultIcon.Visible = true;
  888. checkDefaultIcon.Text = "Use program's icon";
  889. txtItemName.Clear();
  890. txtItem.ReadOnly = true;
  891. txtIcon.ReadOnly = true;
  892. _desktopItemType = DesktopItemType.Program;
  893. }
  894. }
  895. private void radioFolder_CheckedChanged(object sender, EventArgs e)
  896. {
  897. if (radioFolder.Checked)
  898. {
  899. checkDefaultIcon.Checked = true;
  900. btnBrowseItem.Enabled = true;
  901. txtItem.Clear();
  902. itemtoaddgroup.Text = "Folder to add:";
  903. checkDefaultIcon.Text = "Use default folder icon";
  904. txtItemName.Clear();
  905. txtItem.ReadOnly = true;
  906. txtIcon.ReadOnly = true;
  907. _desktopItemType = DesktopItemType.Folder;
  908. }
  909. }
  910. private void radioLink_CheckedChanged(object sender, EventArgs e)
  911. {
  912. if (radioLink.Checked)
  913. {
  914. checkDefaultIcon.Checked = true;
  915. checkDefaultIcon.Text = "Download website icon (favicon)";
  916. btnBrowseItem.Enabled = false;
  917. itemtoaddgroup.Text = "Web address to add:";
  918. checkDefaultIcon.Visible = true;
  919. txtItem.Text = "http://";
  920. txtItemName.Clear();
  921. txtItem.ReadOnly = false;
  922. txtIcon.ReadOnly = true;
  923. _desktopItemType = DesktopItemType.Link;
  924. }
  925. }
  926. private void radioFile_CheckedChanged(object sender, EventArgs e)
  927. {
  928. if (radioFile.Checked)
  929. {
  930. checkDefaultIcon.Checked = true;
  931. checkDefaultIcon.Text = "No icon";
  932. btnBrowseItem.Enabled = true;
  933. itemtoaddgroup.Text = "File to add:";
  934. checkDefaultIcon.Visible = true;
  935. txtItem.Clear();
  936. txtItemName.Clear();
  937. txtItem.ReadOnly = true;
  938. txtIcon.ReadOnly = true;
  939. _desktopItemType = DesktopItemType.File;
  940. }
  941. }
  942. private void radioCommand_CheckedChanged(object sender, EventArgs e)
  943. {
  944. if (radioCommand.Checked)
  945. {
  946. btnBrowseItem.Enabled = false;
  947. txtItem.Clear();
  948. checkDefaultIcon.Checked = true;
  949. txtIcon.Enabled = false;
  950. btnBrowseIcon.Enabled = false;
  951. itemtoaddgroup.Text = "Command to add:";
  952. checkDefaultIcon.Visible = true;
  953. checkDefaultIcon.Text = "No icon";
  954. txtItemName.Clear();
  955. txtItem.ReadOnly = false;
  956. txtIcon.ReadOnly = true;
  957. _desktopItemType = DesktopItemType.Command;
  958. }
  959. }
  960. private void checkDefaultIcon_CheckedChanged(object sender, EventArgs e)
  961. {
  962. if (checkDefaultIcon.Checked)
  963. {
  964. txtIcon.Clear();
  965. txtIcon.Enabled = false;
  966. btnBrowseIcon.Enabled = false;
  967. }
  968. else
  969. {
  970. txtIcon.Clear();
  971. txtIcon.Enabled = true;
  972. btnBrowseIcon.Enabled = true;
  973. }
  974. }
  975. private void btnBrowseItem_Click(object sender, EventArgs e)
  976. {
  977. switch (_desktopItemType)
  978. {
  979. case DesktopItemType.Program:
  980. defineProgramDialog.ShowDialog();
  981. break;
  982. case DesktopItemType.Folder:
  983. defineFolderDialog.ShowDialog();
  984. txtItem.Text = defineFolderDialog.SelectedPath;
  985. int i = defineFolderDialog.SelectedPath.LastIndexOf("\\");
  986. txtItemName.Text = defineFolderDialog.SelectedPath.Remove(0, i + 1);
  987. break;
  988. case DesktopItemType.File:
  989. defineFileDialog.ShowDialog();
  990. break;
  991. }
  992. }
  993. private void DefineProgramDialog_FileOk(object sender, CancelEventArgs e)
  994. {
  995. txtItem.Text = defineProgramDialog.FileName;
  996. txtItemName.Text = defineProgramDialog.SafeFileName.Replace(".exe", string.Empty);
  997. }
  998. private void DefineFileDialog_FileOk(object sender, CancelEventArgs e)
  999. {
  1000. txtItem.Text = defineFileDialog.FileName;
  1001. txtItemName.Text = defineFileDialog.SafeFileName;
  1002. }
  1003. private void btnBrowseIcon_Click(object sender, EventArgs e)
  1004. {
  1005. switch (_desktopItemType)
  1006. {
  1007. case DesktopItemType.Program:
  1008. DefineProgramIconDialog.ShowDialog();
  1009. break;
  1010. case DesktopItemType.Folder:
  1011. DefineFolderIconDialog.ShowDialog();
  1012. break;
  1013. case DesktopItemType.Link:
  1014. DefineURLIconDialog.ShowDialog();
  1015. break;
  1016. case DesktopItemType.File:
  1017. DefineFileIconDialog.ShowDialog();
  1018. break;
  1019. case DesktopItemType.Command:
  1020. DefineCommandIconDialog.ShowDialog();
  1021. break;
  1022. }
  1023. }
  1024. private void DefineProgramIconDialog_FileOk(object sender, CancelEventArgs e)
  1025. {
  1026. txtIcon.Text = DefineProgramIconDialog.FileName;
  1027. if (txtIcon.Text.Contains(".exe"))
  1028. {
  1029. string iconpath = Integrator.ExtractIconFromExecutable(txtItemName.Text, DefineProgramIconDialog.FileName);
  1030. txtIcon.Text = iconpath;
  1031. }
  1032. }
  1033. private void DefineFolderIconDialog_FileOk(object sender, CancelEventArgs e)
  1034. {
  1035. txtIcon.Text = DefineFolderIconDialog.FileName;
  1036. if (txtIcon.Text.Contains(".exe"))
  1037. {
  1038. string iconpath = Integrator.ExtractIconFromExecutable(txtItemName.Text, DefineFolderIconDialog.FileName);
  1039. txtIcon.Text = iconpath;
  1040. }
  1041. }
  1042. private void DefineURLIconDialog_FileOk(object sender, CancelEventArgs e)
  1043. {
  1044. txtIcon.Text = DefineURLIconDialog.FileName;
  1045. if (txtIcon.Text.Contains(".exe"))
  1046. {
  1047. string iconpath = Integrator.ExtractIconFromExecutable(txtItemName.Text, DefineURLIconDialog.FileName);
  1048. txtIcon.Text = iconpath;
  1049. }
  1050. }
  1051. private void DefineFileIconDialog_FileOk(object sender, CancelEventArgs e)
  1052. {
  1053. txtIcon.Text = DefineFileIconDialog.FileName;
  1054. if (txtIcon.Text.Contains(".exe"))
  1055. {
  1056. string iconpath = Integrator.ExtractIconFromExecutable(txtItemName.Text, DefineFileIconDialog.FileName);
  1057. txtIcon.Text = iconpath;
  1058. }
  1059. }
  1060. private void DefineCommandIconDialog_FileOk(object sender, CancelEventArgs e)
  1061. {
  1062. txtIcon.Text = DefineCommandIconDialog.FileName;
  1063. if (txtIcon.Text.Contains(".exe"))
  1064. {
  1065. string iconpath = Integrator.ExtractIconFromExecutable(txtItemName.Text, DefineCommandIconDialog.FileName);
  1066. txtIcon.Text = iconpath;
  1067. }
  1068. }
  1069. private void btnAddItem_Click(object sender, EventArgs e)
  1070. {
  1071. string icon = string.Empty;
  1072. switch (_desktopItemType)
  1073. {
  1074. case DesktopItemType.Program:
  1075. if (checkDefaultIcon.Checked)
  1076. {
  1077. icon = txtItem.Text;
  1078. }
  1079. else
  1080. {
  1081. icon = txtIcon.Text;
  1082. }
  1083. Integrator.AddItem(txtItemName.Text, txtItem.Text, icon, _desktopItemPosition, checkShift.Checked, DesktopItemType.Program);
  1084. break;
  1085. case DesktopItemType.Folder:
  1086. if (checkDefaultIcon.Checked)
  1087. {
  1088. icon = Integrator.FolderDefaultIcon;
  1089. }
  1090. else
  1091. {
  1092. icon = txtIcon.Text;
  1093. }
  1094. Integrator.AddItem(txtItemName.Text, txtItem.Text, icon, _desktopItemPosition, checkShift.Checked, DesktopItemType.Folder);
  1095. break;
  1096. case DesktopItemType.Link:
  1097. if (checkDefaultIcon.Checked)
  1098. {
  1099. icon = Integrator.DownloadFavicon(txtItem.Text, txtItemName.Text);
  1100. }
  1101. else
  1102. {
  1103. icon = txtIcon.Text;
  1104. }
  1105. Integrator.AddItem(txtItemName.Text, txtItem.Text, icon, _desktopItemPosition, checkShift.Checked, DesktopItemType.Link);
  1106. break;
  1107. case DesktopItemType.File:
  1108. if (!checkDefaultIcon.Checked)
  1109. {
  1110. icon = txtIcon.Text;
  1111. }
  1112. Integrator.AddItem(txtItemName.Text, txtItem.Text, icon, _desktopItemPosition, checkShift.Checked, DesktopItemType.File);
  1113. break;
  1114. case DesktopItemType.Command:
  1115. if (!checkDefaultIcon.Checked)
  1116. {
  1117. icon = txtIcon.Text;
  1118. }
  1119. Integrator.AddItem(txtItemName.Text, txtItem.Text, icon, _desktopItemPosition, checkShift.Checked, DesktopItemType.Command);
  1120. break;
  1121. }
  1122. GetDesktopItems();
  1123. ResetIntegratorForm();
  1124. }
  1125. private void integratorTimer_Tick(object sender, EventArgs e)
  1126. {
  1127. if ((txtItem.Text != "") && (txtItemName.Text != "") && (txtIcon.Text != "") && (!checkDefaultIcon.Checked))
  1128. {
  1129. btnAddItem.Enabled = true;
  1130. }
  1131. else if ((txtItem.Text != "") && (txtItemName.Text != "") && (checkDefaultIcon.Checked))
  1132. {
  1133. btnAddItem.Enabled = true;
  1134. }
  1135. else
  1136. {
  1137. btnAddItem.Enabled = false;
  1138. }
  1139. }
  1140. private void runDialogTimer_Tick(object sender, EventArgs e)
  1141. {
  1142. if ((txtRunFile.Text != "") && (txtRunKeyword.Text != ""))
  1143. {
  1144. btnCreateCustomCommand.Enabled = true;
  1145. }
  1146. else
  1147. {
  1148. btnCreateCustomCommand.Enabled = false;
  1149. }
  1150. }
  1151. private void radioTop_CheckedChanged(object sender, EventArgs e)
  1152. {
  1153. if (radioTop.Checked)
  1154. {
  1155. _desktopItemPosition = DesktopTypePosition.Top;
  1156. }
  1157. }
  1158. private void radioMiddle_CheckedChanged(object sender, EventArgs e)
  1159. {
  1160. if (radioMiddle.Checked)
  1161. {
  1162. _desktopItemPosition = DesktopTypePosition.Middle;
  1163. }
  1164. }
  1165. private void radioBottom_CheckedChanged(object sender, EventArgs e)
  1166. {
  1167. if (radioBottom.Checked)
  1168. {
  1169. _desktopItemPosition = DesktopTypePosition.Bottom;
  1170. }
  1171. }
  1172. private void ResetIntegratorForm()
  1173. {
  1174. txtItem.Clear();
  1175. txtIcon.Clear();
  1176. checkDefaultIcon.Checked = true;
  1177. txtItemName.Clear();
  1178. if (radioLink.Checked)
  1179. {
  1180. txtItem.Text = "http://";
  1181. }
  1182. }
  1183. private void radioOcean_CheckedChanged(object sender, EventArgs e)
  1184. {
  1185. Options.CurrentOptions.Color = Theme.Ocean;
  1186. Options.ApplyTheme(this);
  1187. }
  1188. private void radioMagma_CheckedChanged(object sender, EventArgs e)
  1189. {
  1190. Options.CurrentOptions.Color = Theme.Magma;
  1191. Options.ApplyTheme(this);
  1192. }
  1193. private void radioZerg_CheckedChanged(object sender, EventArgs e)
  1194. {
  1195. Options.CurrentOptions.Color = Theme.Zerg;
  1196. Options.ApplyTheme(this);
  1197. }
  1198. private void radioMinimal_CheckedChanged(object sender, EventArgs e)
  1199. {
  1200. Options.CurrentOptions.Color = Theme.Minimal;
  1201. Options.ApplyTheme(this);
  1202. }
  1203. private void radioCaramel_CheckedChanged(object sender, EventArgs e)
  1204. {
  1205. Options.CurrentOptions.Color = Theme.Caramel;
  1206. Options.ApplyTheme(this);
  1207. }
  1208. private void radioLime_CheckedChanged(object sender, EventArgs e)
  1209. {
  1210. Options.CurrentOptions.Color = Theme.Lime;
  1211. Options.ApplyTheme(this);
  1212. }
  1213. private void button64_Click(object sender, EventArgs e)
  1214. {
  1215. if (listStartupItems.SelectedItems.Count == 1)
  1216. {
  1217. _startUpItems[listStartupItems.SelectedIndices[0]].LocateKey();
  1218. }
  1219. }
  1220. private void button66_Click(object sender, EventArgs e)
  1221. {
  1222. Integrator.TakeOwnership(false);
  1223. }
  1224. private void button65_Click(object sender, EventArgs e)
  1225. {
  1226. Integrator.TakeOwnership(true);
  1227. }
  1228. private void listStartupItems_ColumnClick(object sender, ColumnClickEventArgs e)
  1229. {
  1230. if (e.Column == _columnSorter.CurrentColumn)
  1231. {
  1232. if (_columnSorter.SortOrder == SortOrder.Ascending)
  1233. {
  1234. _columnSorter.SortOrder = SortOrder.Descending;
  1235. }
  1236. else
  1237. {
  1238. _columnSorter.SortOrder = SortOrder.Ascending;
  1239. }
  1240. }
  1241. else
  1242. {
  1243. _columnSorter.CurrentColumn = e.Column;
  1244. _columnSorter.SortOrder = SortOrder.Ascending;
  1245. }
  1246. listStartupItems.Sort();
  1247. }
  1248. private void chkBlock_CheckedChanged(object sender, EventArgs e)
  1249. {
  1250. if (chkBlock.Checked)
  1251. {
  1252. txtIP.Text = _blockedIP;
  1253. txtIP.Enabled = false;
  1254. }
  1255. else
  1256. {
  1257. txtIP.Clear();
  1258. txtIP.Enabled = true;
  1259. }
  1260. }
  1261. private void button8_Click(object sender, EventArgs e)
  1262. {
  1263. GetCustomCommands();
  1264. }
  1265. private void button26_Click(object sender, EventArgs e)
  1266. {
  1267. if (listCustomCommands.SelectedItems.Count == 1)
  1268. {
  1269. Integrator.DeleteCustomCommand(listCustomCommands.SelectedItem.ToString());
  1270. GetCustomCommands();
  1271. }
  1272. }
  1273. private void button75_Click(object sender, EventArgs e)
  1274. {
  1275. GetModernApps();
  1276. }
  1277. private void button74_Click(object sender, EventArgs e)
  1278. {
  1279. UninstallModernApps();
  1280. }
  1281. private void chkSelectAllModernApps_CheckedChanged(object sender, EventArgs e)
  1282. {
  1283. for (int i = 0; i < listModernApps.Items.Count; i++)
  1284. {
  1285. listModernApps.SetItemChecked(i, chkSelectAllModernApps.Checked);
  1286. }
  1287. }
  1288. private void btnResetConfig_Click(object sender, EventArgs e)
  1289. {
  1290. if (MessageBox.Show(_resetMessage, "Information", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
  1291. {
  1292. Utilities.ResetConfiguration();
  1293. }
  1294. }
  1295. private void toggleSwitch1_Click(object sender, EventArgs e)
  1296. {
  1297. if (!toggleSwitch1.Checked)
  1298. {
  1299. Optimize.EnablePerformanceTweaks();
  1300. }
  1301. else
  1302. {
  1303. Optimize.DisablePerformanceTweaks();
  1304. }
  1305. Options.CurrentOptions.EnablePerformanceTweaks = !toggleSwitch1.Checked;
  1306. }
  1307. private void toggleSwitch2_Click(object sender, EventArgs e)
  1308. {
  1309. if (!toggleSwitch2.Checked)
  1310. {
  1311. Optimize.DisableNetworkThrottling();
  1312. }
  1313. else
  1314. {
  1315. Optimize.EnableNetworkThrottling();
  1316. }
  1317. Options.CurrentOptions.DisableNetworkThrottling = !toggleSwitch2.Checked;
  1318. }
  1319. private void toggleSwitch3_Click(object sender, EventArgs e)
  1320. {
  1321. if (!toggleSwitch3.Checked)
  1322. {
  1323. Optimize.DisableDefender();
  1324. }
  1325. else
  1326. {
  1327. Optimize.EnableDefender();
  1328. }
  1329. Options.CurrentOptions.DisableWindowsDefender = !toggleSwitch3.Checked;
  1330. }
  1331. private void toggleSwitch4_Click(object sender, EventArgs e)
  1332. {
  1333. if (!toggleSwitch4.Checked)
  1334. {
  1335. Optimize.DisableSystemRestore();
  1336. }
  1337. else
  1338. {
  1339. Optimize.EnableSystemRestore();
  1340. }
  1341. Options.CurrentOptions.DisableSystemRestore = !toggleSwitch4.Checked;
  1342. }
  1343. private void toggleSwitch5_Click(object sender, EventArgs e)
  1344. {
  1345. if (!toggleSwitch5.Checked)
  1346. {
  1347. Optimize.DisablePrintService();
  1348. }
  1349. else
  1350. {
  1351. Optimize.EnablePrintService();
  1352. }
  1353. Options.CurrentOptions.DisablePrintService = !toggleSwitch5.Checked;
  1354. }
  1355. private void toggleSwitch6_Click(object sender, EventArgs e)
  1356. {
  1357. if (!toggleSwitch6.Checked)
  1358. {
  1359. Optimize.DisableMediaPlayerSharing();
  1360. }
  1361. else
  1362. {
  1363. Optimize.EnableMediaPlayerSharing();
  1364. }
  1365. Options.CurrentOptions.DisableMediaPlayerSharing = !toggleSwitch6.Checked;
  1366. }
  1367. private void toggleSwitch7_Click(object sender, EventArgs e)
  1368. {
  1369. if (!toggleSwitch7.Checked)
  1370. {
  1371. Optimize.DisableSkypeAds();
  1372. }
  1373. else
  1374. {
  1375. Optimize.EnableSkypeAds();
  1376. }
  1377. Options.CurrentOptions.BlockSkypeAds = !toggleSwitch7.Checked;
  1378. }
  1379. private void toggleSwitch8_Click(object sender, EventArgs e)
  1380. {
  1381. if (!toggleSwitch8.Checked)
  1382. {
  1383. Optimize.DisableErrorReporting();
  1384. }
  1385. else
  1386. {
  1387. Optimize.EnableErrorReporting();
  1388. }
  1389. Options.CurrentOptions.DisableErrorReporting = !toggleSwitch8.Checked;
  1390. }
  1391. private void toggleSwitch9_Click(object sender, EventArgs e)
  1392. {
  1393. if (!toggleSwitch9.Checked)
  1394. {
  1395. Optimize.DisableHomeGroup();
  1396. }
  1397. else
  1398. {
  1399. Optimize.EnableHomeGroup();
  1400. }
  1401. Options.CurrentOptions.DisableHomeGroup = !toggleSwitch9.Checked;
  1402. }
  1403. private void toggleSwitch10_Click(object sender, EventArgs e)
  1404. {
  1405. if (!toggleSwitch10.Checked)
  1406. {
  1407. Optimize.DisableSuperfetch();
  1408. }
  1409. else
  1410. {
  1411. Optimize.EnableSuperfetch();
  1412. }
  1413. Options.CurrentOptions.DisableSuperfetch = !toggleSwitch10.Checked;
  1414. }
  1415. private void toggleSwitch11_Click(object sender, EventArgs e)
  1416. {
  1417. if (!toggleSwitch11.Checked)
  1418. {
  1419. Optimize.DisableTelemetryTasks();
  1420. }
  1421. else
  1422. {
  1423. Optimize.EnableTelemetryTasks();
  1424. }
  1425. Options.CurrentOptions.DisableTelemetryTasks = !toggleSwitch11.Checked;
  1426. }
  1427. private void toggleSwitch12_Click(object sender, EventArgs e)
  1428. {
  1429. if (!toggleSwitch12.Checked)
  1430. {
  1431. Optimize.DisableOffice2016Telemetry();
  1432. }
  1433. else
  1434. {
  1435. Optimize.EnableOffice2016Telemetry();
  1436. }
  1437. Options.CurrentOptions.DisableOffice2016Telemetry = !toggleSwitch12.Checked;
  1438. }
  1439. private void toggleSwitch13_Click(object sender, EventArgs e)
  1440. {
  1441. if (!toggleSwitch13.Checked)
  1442. {
  1443. Optimize.EnableLegacyVolumeSlider();
  1444. }
  1445. else
  1446. {
  1447. Optimize.DisableLegacyVolumeSlider();
  1448. }
  1449. Options.CurrentOptions.EnableLegacyVolumeSlider = !toggleSwitch13.Checked;
  1450. }
  1451. private void toggleSwitch19_Click(object sender, EventArgs e)
  1452. {
  1453. if (!toggleSwitch19.Checked)
  1454. {
  1455. Optimize.EnableTaskbarColor();
  1456. }
  1457. else
  1458. {
  1459. Optimize.DisableTaskbarColor();
  1460. }
  1461. Options.CurrentOptions.EnableTaskbarColor = !toggleSwitch19.Checked;
  1462. }
  1463. private void toggleSwitch18_Click(object sender, EventArgs e)
  1464. {
  1465. if (!toggleSwitch18.Checked)
  1466. {
  1467. Optimize.DisableQuickAccessHistory();
  1468. }
  1469. else
  1470. {
  1471. Optimize.EnableQuickAccessHistory();
  1472. }
  1473. Options.CurrentOptions.DisableQuickAccessHistory = !toggleSwitch18.Checked;
  1474. }
  1475. private void toggleSwitch26_Click(object sender, EventArgs e)
  1476. {
  1477. if (!toggleSwitch26.Checked)
  1478. {
  1479. Optimize.DisableStartMenuAds();
  1480. }
  1481. else
  1482. {
  1483. Optimize.EnableStartMenuAds();
  1484. }
  1485. Options.CurrentOptions.DisableStartMenuAds = !toggleSwitch26.Checked;
  1486. }
  1487. private void toggleSwitch27_Click(object sender, EventArgs e)
  1488. {
  1489. if (!toggleSwitch27.Checked)
  1490. {
  1491. Optimize.EnableDarkTheme();
  1492. }
  1493. else
  1494. {
  1495. Optimize.EnableLightTheme();
  1496. }
  1497. Options.CurrentOptions.EnableDarkTheme = !toggleSwitch27.Checked;
  1498. }
  1499. private void toggleSwitch14_Click(object sender, EventArgs e)
  1500. {
  1501. if (!toggleSwitch14.Checked)
  1502. {
  1503. Task t = new Task(() => Optimize.UninstallOneDrive());
  1504. t.Start();
  1505. }
  1506. else
  1507. {
  1508. Task t = new Task(() => Optimize.InstallOneDrive());
  1509. t.Start();
  1510. }
  1511. Options.CurrentOptions.UninstallOneDrive = !toggleSwitch14.Checked;
  1512. }
  1513. private void toggleSwitch25_Click(object sender, EventArgs e)
  1514. {
  1515. if (!toggleSwitch25.Checked)
  1516. {
  1517. Optimize.DisableMyPeople();
  1518. }
  1519. else
  1520. {
  1521. Optimize.EnableMyPeople();
  1522. }
  1523. Options.CurrentOptions.DisableMyPeople = !toggleSwitch25.Checked;
  1524. }
  1525. private void toggleSwitch24_Click(object sender, EventArgs e)
  1526. {
  1527. if (!toggleSwitch24.Checked)
  1528. {
  1529. Optimize.DisableAutomaticUpdates();
  1530. }
  1531. else
  1532. {
  1533. Optimize.EnableAutomaticUpdates();
  1534. }
  1535. Options.CurrentOptions.DisableAutomaticUpdates = !toggleSwitch24.Checked;
  1536. }
  1537. private void toggleSwitch30_Click(object sender, EventArgs e)
  1538. {
  1539. if (!toggleSwitch30.Checked)
  1540. {
  1541. Optimize.ExcludeDrivers();
  1542. }
  1543. else
  1544. {
  1545. Optimize.IncludeDrivers();
  1546. }
  1547. Options.CurrentOptions.ExcludeDrivers = !toggleSwitch30.Checked;
  1548. }
  1549. private void toggleSwitch23_Click(object sender, EventArgs e)
  1550. {
  1551. if (!toggleSwitch23.Checked)
  1552. {
  1553. Optimize.DisableTelemetryServices();
  1554. }
  1555. else
  1556. {
  1557. Optimize.EnableTelemetryServices();
  1558. }
  1559. Options.CurrentOptions.DisableTelemetryServices = !toggleSwitch23.Checked;
  1560. }
  1561. private void toggleSwitch21_Click(object sender, EventArgs e)
  1562. {
  1563. if (!toggleSwitch21.Checked)
  1564. {
  1565. Optimize.DisablePrivacyOptions();
  1566. }
  1567. else
  1568. {
  1569. Optimize.EnablePrivacyOptions();
  1570. }
  1571. Options.CurrentOptions.DisablePrivacyOptions = !toggleSwitch21.Checked;
  1572. }
  1573. private void toggleSwitch22_Click(object sender, EventArgs e)
  1574. {
  1575. if (!toggleSwitch22.Checked)
  1576. {
  1577. Optimize.DisableSilentAppInstall();
  1578. }
  1579. else
  1580. {
  1581. Optimize.EnableSilentAppInstall();
  1582. }
  1583. Options.CurrentOptions.DisableSilentAppInstall = !toggleSwitch22.Checked;
  1584. }
  1585. private void toggleSwitch16_Click(object sender, EventArgs e)
  1586. {
  1587. if (!toggleSwitch16.Checked)
  1588. {
  1589. Optimize.DisableCortana();
  1590. }
  1591. else
  1592. {
  1593. Optimize.EnableCortana();
  1594. }
  1595. Options.CurrentOptions.DisableCortana = !toggleSwitch16.Checked;
  1596. }
  1597. private void toggleSwitch20_Click(object sender, EventArgs e)
  1598. {
  1599. if (!toggleSwitch20.Checked)
  1600. {
  1601. Optimize.DisableSensorServices();
  1602. }
  1603. else
  1604. {
  1605. Optimize.EnableSensorServices();
  1606. }
  1607. Options.CurrentOptions.DisableSensorServices = !toggleSwitch20.Checked;
  1608. }
  1609. private void toggleSwitch29_Click(object sender, EventArgs e)
  1610. {
  1611. if (!toggleSwitch29.Checked)
  1612. {
  1613. Optimize.DisableWindowsInk();
  1614. }
  1615. else
  1616. {
  1617. Optimize.EnableWindowsInk();
  1618. }
  1619. Options.CurrentOptions.DisableWindowsInk = !toggleSwitch29.Checked;
  1620. }
  1621. private void toggleSwitch28_Click(object sender, EventArgs e)
  1622. {
  1623. if (!toggleSwitch28.Checked)
  1624. {
  1625. Optimize.DisableSpellingAndTypingFeatures();
  1626. }
  1627. else
  1628. {
  1629. Optimize.EnableSpellingAndTypingFeatures();
  1630. }
  1631. Options.CurrentOptions.DisableSpellingTyping = !toggleSwitch28.Checked;
  1632. }
  1633. private void toggleSwitch17_Click(object sender, EventArgs e)
  1634. {
  1635. if (!toggleSwitch17.Checked)
  1636. {
  1637. Optimize.DisableXboxLive();
  1638. }
  1639. else
  1640. {
  1641. Optimize.EnableXboxLive();
  1642. }
  1643. Options.CurrentOptions.DisableXboxLive = !toggleSwitch17.Checked;
  1644. }
  1645. private void toggleSwitch15_Click(object sender, EventArgs e)
  1646. {
  1647. if (!toggleSwitch15.Checked)
  1648. {
  1649. Optimize.DisableGameBar();
  1650. }
  1651. else
  1652. {
  1653. Optimize.EnableGameBar();
  1654. }
  1655. Options.CurrentOptions.DisableGameBar = !toggleSwitch15.Checked;
  1656. }
  1657. private void toggleSwitch31_Click(object sender, EventArgs e)
  1658. {
  1659. if (!toggleSwitch31.Checked)
  1660. {
  1661. Optimize.DisableOneDrive();
  1662. }
  1663. else
  1664. {
  1665. Optimize.EnableOneDrive();
  1666. }
  1667. Options.CurrentOptions.DisableOneDrive = !toggleSwitch31.Checked;
  1668. }
  1669. private void toggleSwitch32_Click(object sender, EventArgs e)
  1670. {
  1671. if (!toggleSwitch32.Checked)
  1672. {
  1673. Optimize.DisableCompatibilityAssistant();
  1674. }
  1675. else
  1676. {
  1677. Optimize.EnableCompatibilityAssistant();
  1678. }
  1679. Options.CurrentOptions.DisableCompatibilityAssistant = !toggleSwitch32.Checked;
  1680. }
  1681. private void btnUpdate_Click(object sender, EventArgs e)
  1682. {
  1683. CheckForUpdate();
  1684. }
  1685. private void btnChangelog_Click(object sender, EventArgs e)
  1686. {
  1687. try
  1688. {
  1689. Process.Start(_changelogLink);
  1690. }
  1691. catch (Exception ex)
  1692. {
  1693. MessageBox.Show(ex.Message, "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1694. }
  1695. }
  1696. private void chkReadOnly_CheckedChanged(object sender, EventArgs e)
  1697. {
  1698. HostsHelper.ReadOnly(chkReadOnly.Checked);
  1699. button47.Enabled = !chkReadOnly.Checked;
  1700. button46.Enabled = !chkReadOnly.Checked;
  1701. button42.Enabled = !chkReadOnly.Checked;
  1702. button41.Enabled = !chkReadOnly.Checked;
  1703. linkLabel4.Enabled = !chkReadOnly.Checked;
  1704. chkBlock.Enabled = !chkReadOnly.Checked;
  1705. txtDomain.Enabled = !chkReadOnly.Checked;
  1706. txtIP.Enabled = !chkReadOnly.Checked;
  1707. txtIP.Focus();
  1708. }
  1709. }
  1710. }