MainForm.cs 43 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using Microsoft.Win32;
  11. using System.IO;
  12. using System.Threading;
  13. using System.Reflection;
  14. using System.Diagnostics;
  15. using System.Collections.Specialized;
  16. using System.Text.RegularExpressions;
  17. using System.Net;
  18. using Newtonsoft.Json;
  19. namespace Optimizer
  20. {
  21. public partial class MainForm : Form
  22. {
  23. ListViewColumnSorter _columnSorter;
  24. List<StartupItem> _startUpItems = new List<StartupItem>();
  25. List<string> _hostsEntries = new List<string>();
  26. List<string> _customCommands = new List<string>();
  27. List<string> _desktopItems = new List<string>();
  28. DesktopItemType _desktopItemType = DesktopItemType.Program;
  29. DesktopTypePosition _desktopItemPosition = DesktopTypePosition.Top;
  30. readonly string _blockedIP = "127.0.0.1";
  31. readonly string _restartMessage = "Restart to apply changes?";
  32. readonly string _removeStartupItemsMessage = "Are you sure you want to delete all startup items?";
  33. readonly string _removeHostsEntriesMessage = "Are you sure you want to delete all hosts entries?";
  34. readonly string _removeDesktopItemsMessage = "Are you sure you want to delete all desktop items?";
  35. private void LoadSettings()
  36. {
  37. switch (Options.CurrentOptions.Color)
  38. {
  39. case Theme.Caramel:
  40. radioCaramel.Checked = true;
  41. break;
  42. case Theme.Lime:
  43. radioLime.Checked = true;
  44. break;
  45. case Theme.Magma:
  46. radioMagma.Checked = true;
  47. break;
  48. case Theme.Minimal:
  49. radioMinimal.Checked = true;
  50. break;
  51. case Theme.Ocean:
  52. radioOcean.Checked = true;
  53. break;
  54. case Theme.Zerg:
  55. radioZerg.Checked = true;
  56. break;
  57. }
  58. }
  59. public MainForm()
  60. {
  61. InitializeComponent();
  62. Options.ApplyTheme(this);
  63. _columnSorter = new ListViewColumnSorter();
  64. listStartupItems.ListViewItemSorter = _columnSorter;
  65. }
  66. private void ApplyAll()
  67. {
  68. if (Utilities.CurrentWindowsVersion != WindowsVersion.Unsupported)
  69. {
  70. string message = string.Empty;
  71. if (Utilities.CurrentWindowsVersion == WindowsVersion.Windows7)
  72. {
  73. message = "This will apply every option in Universal and Windows 7 tab. Continue?";
  74. }
  75. if (Utilities.CurrentWindowsVersion == WindowsVersion.Windows8)
  76. {
  77. message = "This will apply every option in Universal and Windows 8.1 tab. Continue?";
  78. }
  79. if (Utilities.CurrentWindowsVersion == WindowsVersion.Windows10)
  80. {
  81. message = "This will apply every option in Universal and Windows 10 tab. Continue?";
  82. }
  83. MessagerForm r = new MessagerForm(this, MessageType.Optimize, message);
  84. r.ShowDialog(this);
  85. }
  86. }
  87. private void CleanPC()
  88. {
  89. try
  90. {
  91. if (checkTemp.Checked)
  92. {
  93. CleanHelper.CleanTemporaries();
  94. }
  95. if (checkUTorrent.Checked)
  96. {
  97. CleanHelper.CleanUTorrent();
  98. }
  99. if (checkFileZilla.Checked)
  100. {
  101. CleanHelper.CleanFileZilla();
  102. }
  103. if (checkMiniDumps.Checked)
  104. {
  105. CleanHelper.CleanMiniDumps();
  106. }
  107. if (checkPrefetch.Checked)
  108. {
  109. CleanHelper.CleanPrefetch();
  110. }
  111. if (checkMediaCache.Checked)
  112. {
  113. CleanHelper.CleanMediaPlayersCache();
  114. }
  115. if (checkLogs.Checked)
  116. {
  117. CleanHelper.CleanLogs();
  118. }
  119. if (checkErrorReports.Checked)
  120. {
  121. CleanHelper.CleanErrorReports();
  122. }
  123. if (checkBin.Checked)
  124. {
  125. CleanHelper.EmptyRecycleBin();
  126. }
  127. }
  128. catch { }
  129. finally
  130. {
  131. CleaningAnimation(false);
  132. }
  133. }
  134. private void CleaningAnimation(bool start)
  135. {
  136. if (start == true)
  137. {
  138. Utilities.SetControlPropertyThreadSafe(cleaningpanel, "Visible", true);
  139. Utilities.SetControlPropertyThreadSafe(progress2, "Visible", true);
  140. Utilities.SetControlPropertyThreadSafe(progress2, "Style", ProgressBarStyle.Marquee);
  141. Utilities.SetControlPropertyThreadSafe(progress2, "MarqueeAnimationSpeed", 1);
  142. Utilities.SetControlPropertyThreadSafe(label4, "Visible", true);
  143. Utilities.SetControlPropertyThreadSafe(button20, "Enabled", false);
  144. Utilities.SetControlPropertyThreadSafe(panel1, "Enabled", false);
  145. }
  146. else
  147. {
  148. Utilities.SetControlPropertyThreadSafe(cleaningpanel, "Visible", false);
  149. Utilities.SetControlPropertyThreadSafe(progress2, "Visible", false);
  150. Utilities.SetControlPropertyThreadSafe(progress2, "Value", 0);
  151. Utilities.SetControlPropertyThreadSafe(progress2, "Style", ProgressBarStyle.Blocks);
  152. Utilities.SetControlPropertyThreadSafe(progress2, "MarqueeAnimationSpeed", 1);
  153. Utilities.SetControlPropertyThreadSafe(label4, "Visible", false);
  154. Utilities.SetControlPropertyThreadSafe(button20, "Enabled", true);
  155. Utilities.SetControlPropertyThreadSafe(panel1, "Enabled", true);
  156. }
  157. }
  158. private bool FixRegistry()
  159. {
  160. bool changeDetected = false;
  161. try
  162. {
  163. if (checkFirewall.Checked)
  164. {
  165. Utilities.EnableFirewall();
  166. changeDetected = true;
  167. }
  168. if (checkCommandPrompt.Checked)
  169. {
  170. Utilities.EnableCommandPrompt();
  171. changeDetected = true;
  172. }
  173. if (checkControlPanel.Checked)
  174. {
  175. Utilities.EnableControlPanel();
  176. changeDetected = true;
  177. }
  178. if (checkFolderOptions.Checked)
  179. {
  180. Utilities.EnableFolderOptions();
  181. changeDetected = true;
  182. }
  183. if (checkRunDialog.Checked)
  184. {
  185. Utilities.EnableRunDialog();
  186. changeDetected = true;
  187. }
  188. if (checkContextMenu.Checked)
  189. {
  190. Utilities.EnableContextMenu();
  191. changeDetected = true;
  192. }
  193. if (checkTaskManager.Checked)
  194. {
  195. Utilities.EnableTaskManager();
  196. changeDetected = true;
  197. }
  198. if (checkRegistryEditor.Checked)
  199. {
  200. Utilities.EnableRegistryEditor();
  201. changeDetected = true;
  202. }
  203. }
  204. catch { }
  205. return changeDetected;
  206. }
  207. private void Main_Load(object sender, EventArgs e)
  208. {
  209. CheckForIllegalCrossThreadCalls = false;
  210. integratorTimer.Start();
  211. runDialogTime.Start();
  212. GetStartupItems();
  213. GetHostsEntries();
  214. GetDesktopItems();
  215. GetCustomCommands();
  216. LoadSettings();
  217. radioProgram.Checked = true;
  218. radioTop.Checked = true;
  219. txtVersion.Text = "Version: " + Program.GetCurrentVersion();
  220. Program.MainForm = this;
  221. txtOS.Text = "Microsoft " + Utilities.GetOS();
  222. txtBitness.Text = Utilities.GetBitness();
  223. if (Utilities.CurrentWindowsVersion == WindowsVersion.Unsupported)
  224. {
  225. tabCollection.TabPages.Remove(universalTab);
  226. tabCollection.TabPages.Remove(windowsVIITab);
  227. tabCollection.TabPages.Remove(windowsVIIITab);
  228. tabCollection.TabPages.Remove(windowsXTab);
  229. }
  230. if (Utilities.CurrentWindowsVersion == WindowsVersion.Windows7)
  231. {
  232. tabCollection.TabPages.Remove(windowsVIIITab);
  233. tabCollection.TabPages.Remove(windowsXTab);
  234. }
  235. if (Utilities.CurrentWindowsVersion == WindowsVersion.Windows8)
  236. {
  237. tabCollection.TabPages.Remove(windowsVIITab);
  238. tabCollection.TabPages.Remove(windowsXTab);
  239. }
  240. if (Utilities.CurrentWindowsVersion == WindowsVersion.Windows10)
  241. {
  242. tabCollection.TabPages.Remove(windowsVIITab);
  243. tabCollection.TabPages.Remove(windowsVIIITab);
  244. }
  245. }
  246. private void GetDesktopItems()
  247. {
  248. _desktopItems = Integrator.GetDesktopItems();
  249. listDesktopItems.Items.Clear();
  250. for (int i = 0; i < _desktopItems.Count; i++)
  251. {
  252. if (!string.IsNullOrEmpty(_desktopItems[i]))
  253. {
  254. listDesktopItems.Items.Add(_desktopItems[i]);
  255. }
  256. }
  257. }
  258. private void GetHostsEntries()
  259. {
  260. _hostsEntries = HostsHelper.GetHostsEntries();
  261. listHostEntries.Items.Clear();
  262. for (int i = 0; i < _hostsEntries.Count; i++)
  263. {
  264. if (!string.IsNullOrEmpty(_hostsEntries[i]))
  265. {
  266. listHostEntries.Items.Add(_hostsEntries[i]);
  267. }
  268. }
  269. }
  270. private void GetStartupItems()
  271. {
  272. _startUpItems = Utilities.GetStartupItems();
  273. listStartupItems.Items.Clear();
  274. for (int i = 0; i < _startUpItems.Count; i++)
  275. {
  276. ListViewItem list = new ListViewItem(_startUpItems[i].Name);
  277. list.SubItems.Add(_startUpItems[i].FileLocation);
  278. list.SubItems.Add(_startUpItems[i].ToString());
  279. listStartupItems.Items.Add(list);
  280. }
  281. }
  282. private void GetCustomCommands()
  283. {
  284. _customCommands = Integrator.GetCustomCommands();
  285. listCustomCommands.Items.Clear();
  286. foreach (string s in _customCommands)
  287. {
  288. listCustomCommands.Items.Add(s);
  289. }
  290. }
  291. private void Main_FormClosing(object sender, EventArgs e)
  292. {
  293. Options.SaveSettings();
  294. }
  295. private void button39_Click(object sender, EventArgs e)
  296. {
  297. MessagerForm f = new MessagerForm(this, MessageType.Restart, _restartMessage);
  298. f.ShowDialog();
  299. }
  300. private void button43_Click(object sender, EventArgs e)
  301. {
  302. MessagerForm f = new MessagerForm(this, MessageType.Restart, _restartMessage);
  303. f.ShowDialog();
  304. }
  305. private void button44_Click(object sender, EventArgs e)
  306. {
  307. MessagerForm f = new MessagerForm(this, MessageType.Restart, _restartMessage);
  308. f.ShowDialog();
  309. }
  310. private void button45_Click(object sender, EventArgs e)
  311. {
  312. MessagerForm f = new MessagerForm(this, MessageType.Restart, _restartMessage);
  313. f.ShowDialog();
  314. }
  315. private void button3_Click(object sender, EventArgs e)
  316. {
  317. Optimize.PerformanceTweaks();
  318. button3.Enabled = false;
  319. }
  320. private void button2_Click(object sender, EventArgs e)
  321. {
  322. Optimize.DisableNetworkThrottling();
  323. button2.Enabled = false;
  324. }
  325. private void button1_Click(object sender, EventArgs e)
  326. {
  327. Task t = new Task(() => Optimize.DisableDefender());
  328. t.Start();
  329. button1.Enabled = false;
  330. }
  331. private void button17_Click(object sender, EventArgs e)
  332. {
  333. Task t = new Task(() => Optimize.DisableSystemRestore());
  334. t.Start();
  335. button17.Enabled = false;
  336. }
  337. private void button16_Click(object sender, EventArgs e)
  338. {
  339. Optimize.DisableErrorReporting();
  340. button16.Enabled = false;
  341. }
  342. private void button13_Click(object sender, EventArgs e)
  343. {
  344. Optimize.DisableHomeGroup();
  345. button13.Enabled = false;
  346. }
  347. private void button14_Click(object sender, EventArgs e)
  348. {
  349. Optimize.DisableSuperfetch();
  350. button14.Enabled = false;
  351. }
  352. private void button15_Click(object sender, EventArgs e)
  353. {
  354. Optimize.DisablePrintSpooler();
  355. button15.Enabled = false;
  356. }
  357. private void button10_Click(object sender, EventArgs e)
  358. {
  359. Optimize.BlockSkypeAds();
  360. button10.Enabled = false;
  361. }
  362. private void button9_Click(object sender, EventArgs e)
  363. {
  364. Optimize.RestoreLegacyVolumeSlider();
  365. button9.Enabled = false;
  366. }
  367. private void button29_Click(object sender, EventArgs e)
  368. {
  369. Task t = new Task(() => Optimize.UninstallOneDrive());
  370. t.Start();
  371. Utilities.ActivateMainForm();
  372. button29.Enabled = false;
  373. }
  374. private void button24_Click(object sender, EventArgs e)
  375. {
  376. Optimize.DisableCortana();
  377. button24.Enabled = false;
  378. }
  379. private void button21_Click(object sender, EventArgs e)
  380. {
  381. Task t = new Task(() => Optimize.DisableXboxLive());
  382. t.Start();
  383. button21.Enabled = false;
  384. }
  385. private void button18_Click(object sender, EventArgs e)
  386. {
  387. EdgeForm f = new EdgeForm();
  388. f.ShowDialog();
  389. }
  390. private void button28_Click(object sender, EventArgs e)
  391. {
  392. Optimize.DisableAutomaticUpdates();
  393. button28.Enabled = false;
  394. }
  395. private void button27_Click(object sender, EventArgs e)
  396. {
  397. Optimize.DisableDiagnosticsTracking();
  398. button27.Enabled = false;
  399. }
  400. private void button25_Click(object sender, EventArgs e)
  401. {
  402. Optimize.DisableWAPPush();
  403. button25.Enabled = false;
  404. }
  405. private void button23_Click(object sender, EventArgs e)
  406. {
  407. Optimize.DisableDataTelemetry();
  408. button23.Enabled = false;
  409. }
  410. private void button30_Click(object sender, EventArgs e)
  411. {
  412. Optimize.DisableSensorServices();
  413. button30.Enabled = false;
  414. }
  415. private void button36_Click(object sender, EventArgs e)
  416. {
  417. Optimize.DisableOneDrive();
  418. button36.Enabled = false;
  419. }
  420. private void button35_Click(object sender, EventArgs e)
  421. {
  422. Optimize.RemoveWindows10Icon();
  423. button35.Enabled = false;
  424. }
  425. private void button38_Click(object sender, EventArgs e)
  426. {
  427. Optimize.RemoveWindows10Icon();
  428. button38.Enabled = false;
  429. }
  430. private void button4_Click(object sender, EventArgs e)
  431. {
  432. Task t = new Task(() => Optimize.DisableTelemetryTasks());
  433. t.Start();
  434. Utilities.ActivateMainForm();
  435. button4.Enabled = false;
  436. }
  437. private void button5_Click(object sender, EventArgs e)
  438. {
  439. Task t = new Task(() => Optimize.DisableOfficeTelemetryTasks());
  440. t.Start();
  441. Utilities.ActivateMainForm();
  442. button5.Enabled = false;
  443. }
  444. private void button6_Click(object sender, EventArgs e)
  445. {
  446. ApplyAll();
  447. }
  448. private void button11_Click(object sender, EventArgs e)
  449. {
  450. ApplyAll();
  451. }
  452. private void button12_Click(object sender, EventArgs e)
  453. {
  454. ApplyAll();
  455. }
  456. private void button19_Click(object sender, EventArgs e)
  457. {
  458. ApplyAll();
  459. }
  460. private void checkSelectAll_CheckedChanged(object sender, EventArgs e)
  461. {
  462. checkTemp.Checked = checkSelectAll.Checked;
  463. checkUTorrent.Checked = checkSelectAll.Checked;
  464. checkFileZilla.Checked = checkSelectAll.Checked;
  465. checkMiniDumps.Checked = checkSelectAll.Checked;
  466. checkPrefetch.Checked = checkSelectAll.Checked;
  467. checkMediaCache.Checked = checkSelectAll.Checked;
  468. checkLogs.Checked = checkSelectAll.Checked;
  469. checkBin.Checked = checkSelectAll.Checked;
  470. checkErrorReports.Checked = checkSelectAll.Checked;
  471. }
  472. private void button20_Click(object sender, EventArgs e)
  473. {
  474. CleaningAnimation(true);
  475. Task t = new Task(() => CleanPC());
  476. t.Start();
  477. }
  478. private void button32_Click(object sender, EventArgs e)
  479. {
  480. if (listStartupItems.SelectedItems.Count == 1)
  481. {
  482. _startUpItems[listStartupItems.SelectedIndices[0]].Remove();
  483. GetStartupItems();
  484. }
  485. }
  486. internal void RemoveAllStartupItems()
  487. {
  488. foreach (ListViewItem i in listStartupItems.Items)
  489. {
  490. _startUpItems[i.Index].Remove();
  491. }
  492. GetStartupItems();
  493. }
  494. private void button22_Click(object sender, EventArgs e)
  495. {
  496. if (listStartupItems.Items.Count > 0)
  497. {
  498. MessagerForm r = new MessagerForm(this, MessageType.Startup, _removeStartupItemsMessage);
  499. r.ShowDialog(this);
  500. }
  501. }
  502. private void button31_Click(object sender, EventArgs e)
  503. {
  504. if (listStartupItems.SelectedItems.Count == 1)
  505. {
  506. _startUpItems[listStartupItems.SelectedIndices[0]].LocateFile();
  507. }
  508. }
  509. private void checkEnableAll_CheckedChanged(object sender, EventArgs e)
  510. {
  511. checkTaskManager.Checked = checkEnableAll.Checked;
  512. checkCommandPrompt.Checked = checkEnableAll.Checked;
  513. checkControlPanel.Checked = checkEnableAll.Checked;
  514. checkFolderOptions.Checked = checkEnableAll.Checked;
  515. checkRunDialog.Checked = checkEnableAll.Checked;
  516. checkContextMenu.Checked = checkEnableAll.Checked;
  517. checkFirewall.Checked = checkEnableAll.Checked;
  518. checkRegistryEditor.Checked = checkEnableAll.Checked;
  519. }
  520. private void button33_Click(object sender, EventArgs e)
  521. {
  522. bool flag = FixRegistry();
  523. panel2.Enabled = false;
  524. button33.Enabled = false;
  525. if (flag)
  526. {
  527. if (checkRestartExplorer.Checked)
  528. {
  529. Utilities.RestartExplorer();
  530. }
  531. panel2.Enabled = true;
  532. button33.Enabled = true;
  533. }
  534. }
  535. private void pictureBox1_Click(object sender, EventArgs e)
  536. {
  537. AboutForm f = new AboutForm();
  538. f.ShowDialog(this);
  539. }
  540. private void button37_Click(object sender, EventArgs e)
  541. {
  542. GetStartupItems();
  543. }
  544. private void button40_Click(object sender, EventArgs e)
  545. {
  546. Optimize.DisablePrivacyOptions();
  547. button40.Enabled = false;
  548. }
  549. private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
  550. {
  551. HostsHelper.LocateHosts();
  552. }
  553. private void linkLabel3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
  554. {
  555. HostsEditorForm f = new HostsEditorForm();
  556. f.ShowDialog(this);
  557. GetHostsEntries();
  558. }
  559. private void linkLabel4_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
  560. {
  561. HostsHelper.RestoreDefaultHosts();
  562. GetHostsEntries();
  563. }
  564. private void button47_Click(object sender, EventArgs e)
  565. {
  566. if ((txtIP.Text != string.Empty) && (txtDomain.Text != string.Empty))
  567. {
  568. string ip = txtIP.Text.Trim();
  569. string domain = txtDomain.Text.Trim();
  570. string recommendedDomain = string.Empty;
  571. if (!domain.StartsWith("www."))
  572. {
  573. recommendedDomain = "www." + domain;
  574. }
  575. else
  576. {
  577. recommendedDomain = domain.Replace("www.", string.Empty);
  578. }
  579. HostsHelper.AddEntry(HostsHelper.SanitizeEntry(ip) + " " + HostsHelper.SanitizeEntry(domain));
  580. if (!string.IsNullOrEmpty(recommendedDomain))
  581. {
  582. HostsHelper.AddEntry(HostsHelper.SanitizeEntry(ip) + " " + HostsHelper.SanitizeEntry(recommendedDomain));
  583. }
  584. GetHostsEntries();
  585. txtIP.Clear();
  586. txtDomain.Clear();
  587. chkBlock.Checked = false;
  588. }
  589. }
  590. private void button41_Click(object sender, EventArgs e)
  591. {
  592. GetHostsEntries();
  593. }
  594. private void button42_Click(object sender, EventArgs e)
  595. {
  596. if (listHostEntries.SelectedItems.Count == 1)
  597. {
  598. HostsHelper.RemoveEntry(listHostEntries.SelectedItem.ToString().Replace(" : ", " "));
  599. GetHostsEntries();
  600. }
  601. }
  602. private void button46_Click(object sender, EventArgs e)
  603. {
  604. if (listHostEntries.Items.Count > 0)
  605. {
  606. MessagerForm r = new MessagerForm(this, MessageType.Hosts, _removeHostsEntriesMessage);
  607. r.ShowDialog(this);
  608. }
  609. }
  610. internal void RemoveAllHostsEntries()
  611. {
  612. List<string> collection = new List<string>();
  613. foreach (string item in listHostEntries.Items)
  614. {
  615. collection.Add(item.Replace(" : ", " "));
  616. }
  617. HostsHelper.RemoveAllEntries(collection);
  618. GetHostsEntries();
  619. }
  620. private void aio_SelectedIndexChanged(object sender, EventArgs e)
  621. {
  622. if (tabCollection.SelectedTab == hostsEditorTab)
  623. {
  624. txtIP.Focus();
  625. }
  626. }
  627. private void button48_Click(object sender, EventArgs e)
  628. {
  629. defineCommandDialog.ShowDialog();
  630. }
  631. private void button50_Click(object sender, EventArgs e)
  632. {
  633. if ((txtRunFile.Text != string.Empty) && (txtRunKeyword.Text != string.Empty))
  634. {
  635. Integrator.CreateCustomCommand(txtRunFile.Text, txtRunKeyword.Text);
  636. txtRunFile.Clear();
  637. txtRunKeyword.Clear();
  638. GetCustomCommands();
  639. }
  640. }
  641. private void DefineCmd_FileOk(object sender, CancelEventArgs e)
  642. {
  643. txtRunFile.Text = defineCommandDialog.FileName;
  644. txtRunKeyword.Text = Path.GetFileNameWithoutExtension(txtRunFile.Text).ToLower();
  645. }
  646. private void button58_Click(object sender, EventArgs e)
  647. {
  648. InfoForm r = new InfoForm(Integrator.powerinfo);
  649. r.ShowDialog(this);
  650. }
  651. private void button56_Click(object sender, EventArgs e)
  652. {
  653. InfoForm r = new InfoForm(Integrator.systemtoolsinfo);
  654. r.ShowDialog(this);
  655. }
  656. private void button52_Click(object sender, EventArgs e)
  657. {
  658. InfoForm r = new InfoForm(Integrator.windowsappsinfo);
  659. r.ShowDialog(this);
  660. }
  661. private void button49_Click(object sender, EventArgs e)
  662. {
  663. InfoForm r = new InfoForm(Integrator.systemshortcutsinfo);
  664. r.ShowDialog(this);
  665. }
  666. private void button55_Click(object sender, EventArgs e)
  667. {
  668. InfoForm r = new InfoForm(Integrator.desktopshortcutsinfo);
  669. r.ShowDialog(this);
  670. }
  671. private void button59_Click(object sender, EventArgs e)
  672. {
  673. Utilities.ImportRegistryScript(Required.ReadyMadeMenus + "\\PowerMenu.reg");
  674. GetDesktopItems();
  675. }
  676. private void button53_Click(object sender, EventArgs e)
  677. {
  678. Utilities.ImportRegistryScript(Required.ReadyMadeMenus + "\\SystemTools.reg");
  679. GetDesktopItems();
  680. }
  681. private void button54_Click(object sender, EventArgs e)
  682. {
  683. Utilities.ImportRegistryScript(Required.ReadyMadeMenus + "\\WindowsApps.reg");
  684. GetDesktopItems();
  685. }
  686. private void button51_Click(object sender, EventArgs e)
  687. {
  688. Utilities.ImportRegistryScript(Required.ReadyMadeMenus + "\\SystemShortcuts.reg");
  689. GetDesktopItems();
  690. }
  691. private void button57_Click(object sender, EventArgs e)
  692. {
  693. Utilities.ImportRegistryScript(Required.ReadyMadeMenus + "\\DesktopShortcuts.reg");
  694. GetDesktopItems();
  695. }
  696. private void button60_Click(object sender, EventArgs e)
  697. {
  698. GetDesktopItems();
  699. }
  700. private void button61_Click(object sender, EventArgs e)
  701. {
  702. if (listDesktopItems.SelectedItems.Count == 1)
  703. {
  704. Integrator.RemoveItem(listDesktopItems.SelectedItem.ToString());
  705. GetDesktopItems();
  706. }
  707. }
  708. internal void RemoveAllDesktopItems()
  709. {
  710. List<string> collection = new List<string>();
  711. foreach (string item in listDesktopItems.Items)
  712. {
  713. collection.Add(item);
  714. }
  715. Integrator.RemoveAllItems(collection);
  716. GetDesktopItems();
  717. }
  718. private void button62_Click(object sender, EventArgs e)
  719. {
  720. if (listDesktopItems.Items.Count > 0)
  721. {
  722. MessagerForm r = new MessagerForm(this, MessageType.Integrator, _removeDesktopItemsMessage);
  723. r.ShowDialog(this);
  724. }
  725. }
  726. private void radioProgram_CheckedChanged(object sender, EventArgs e)
  727. {
  728. if (radioProgram.Checked)
  729. {
  730. btnBrowseItem.Enabled = true;
  731. txtItem.Clear();
  732. checkDefaultIcon.Checked = true;
  733. txtIcon.Enabled = false;
  734. btnBrowseIcon.Enabled = false;
  735. itemtoaddgroup.Text = "Program to add:";
  736. checkDefaultIcon.Visible = true;
  737. checkDefaultIcon.Text = "Use program's icon";
  738. txtItemName.Clear();
  739. txtItem.ReadOnly = true;
  740. txtIcon.ReadOnly = true;
  741. _desktopItemType = DesktopItemType.Program;
  742. }
  743. }
  744. private void radioFolder_CheckedChanged(object sender, EventArgs e)
  745. {
  746. if (radioFolder.Checked)
  747. {
  748. checkDefaultIcon.Checked = true;
  749. btnBrowseItem.Enabled = true;
  750. txtItem.Clear();
  751. itemtoaddgroup.Text = "Folder to add:";
  752. checkDefaultIcon.Text = "Use default folder icon";
  753. txtItemName.Clear();
  754. txtItem.ReadOnly = true;
  755. txtIcon.ReadOnly = true;
  756. _desktopItemType = DesktopItemType.Folder;
  757. }
  758. }
  759. private void radioLink_CheckedChanged(object sender, EventArgs e)
  760. {
  761. if (radioLink.Checked)
  762. {
  763. checkDefaultIcon.Checked = true;
  764. checkDefaultIcon.Text = "Download website icon (favicon)";
  765. btnBrowseItem.Enabled = false;
  766. itemtoaddgroup.Text = "Web address to add:";
  767. checkDefaultIcon.Visible = true;
  768. txtItem.Text = "http://";
  769. txtItemName.Clear();
  770. txtItem.ReadOnly = false;
  771. txtIcon.ReadOnly = true;
  772. _desktopItemType = DesktopItemType.Link;
  773. }
  774. }
  775. private void radioFile_CheckedChanged(object sender, EventArgs e)
  776. {
  777. if (radioFile.Checked)
  778. {
  779. checkDefaultIcon.Checked = true;
  780. checkDefaultIcon.Text = "No icon";
  781. btnBrowseItem.Enabled = true;
  782. itemtoaddgroup.Text = "File to add:";
  783. checkDefaultIcon.Visible = true;
  784. txtItem.Clear();
  785. txtItemName.Clear();
  786. txtItem.ReadOnly = true;
  787. txtIcon.ReadOnly = true;
  788. _desktopItemType = DesktopItemType.File;
  789. }
  790. }
  791. private void radioCommand_CheckedChanged(object sender, EventArgs e)
  792. {
  793. if (radioCommand.Checked)
  794. {
  795. btnBrowseItem.Enabled = false;
  796. txtItem.Clear();
  797. checkDefaultIcon.Checked = true;
  798. txtIcon.Enabled = false;
  799. btnBrowseIcon.Enabled = false;
  800. itemtoaddgroup.Text = "Command to add:";
  801. checkDefaultIcon.Visible = true;
  802. checkDefaultIcon.Text = "No icon";
  803. txtItemName.Clear();
  804. txtItem.ReadOnly = false;
  805. txtIcon.ReadOnly = true;
  806. _desktopItemType = DesktopItemType.Command;
  807. }
  808. }
  809. private void checkDefaultIcon_CheckedChanged(object sender, EventArgs e)
  810. {
  811. if (checkDefaultIcon.Checked)
  812. {
  813. txtIcon.Clear();
  814. txtIcon.Enabled = false;
  815. btnBrowseIcon.Enabled = false;
  816. }
  817. else
  818. {
  819. txtIcon.Clear();
  820. txtIcon.Enabled = true;
  821. btnBrowseIcon.Enabled = true;
  822. }
  823. }
  824. private void btnBrowseItem_Click(object sender, EventArgs e)
  825. {
  826. switch (_desktopItemType)
  827. {
  828. case DesktopItemType.Program:
  829. defineProgramDialog.ShowDialog();
  830. break;
  831. case DesktopItemType.Folder:
  832. defineFolderDialog.ShowDialog();
  833. txtItem.Text = defineFolderDialog.SelectedPath;
  834. int i = defineFolderDialog.SelectedPath.LastIndexOf("\\");
  835. txtItemName.Text = defineFolderDialog.SelectedPath.Remove(0, i + 1);
  836. break;
  837. case DesktopItemType.File:
  838. defineFileDialog.ShowDialog();
  839. break;
  840. }
  841. }
  842. private void DefineProgramDialog_FileOk(object sender, CancelEventArgs e)
  843. {
  844. txtItem.Text = defineProgramDialog.FileName;
  845. txtItemName.Text = defineProgramDialog.SafeFileName.Replace(".exe", string.Empty);
  846. }
  847. private void DefineFileDialog_FileOk(object sender, CancelEventArgs e)
  848. {
  849. txtItem.Text = defineFileDialog.FileName;
  850. txtItemName.Text = defineFileDialog.SafeFileName;
  851. }
  852. private void btnBrowseIcon_Click(object sender, EventArgs e)
  853. {
  854. switch (_desktopItemType)
  855. {
  856. case DesktopItemType.Program:
  857. DefineProgramIconDialog.ShowDialog();
  858. break;
  859. case DesktopItemType.Folder:
  860. DefineFolderIconDialog.ShowDialog();
  861. break;
  862. case DesktopItemType.Link:
  863. DefineURLIconDialog.ShowDialog();
  864. break;
  865. case DesktopItemType.File:
  866. DefineFileIconDialog.ShowDialog();
  867. break;
  868. case DesktopItemType.Command:
  869. DefineCommandIconDialog.ShowDialog();
  870. break;
  871. }
  872. }
  873. private void DefineProgramIconDialog_FileOk(object sender, CancelEventArgs e)
  874. {
  875. txtIcon.Text = DefineProgramIconDialog.FileName;
  876. if (txtIcon.Text.Contains(".exe"))
  877. {
  878. string iconpath = Integrator.ExtractIconFromExecutable(txtItemName.Text, DefineProgramIconDialog.FileName);
  879. txtIcon.Text = iconpath;
  880. }
  881. }
  882. private void DefineFolderIconDialog_FileOk(object sender, CancelEventArgs e)
  883. {
  884. txtIcon.Text = DefineFolderIconDialog.FileName;
  885. if (txtIcon.Text.Contains(".exe"))
  886. {
  887. string iconpath = Integrator.ExtractIconFromExecutable(txtItemName.Text, DefineFolderIconDialog.FileName);
  888. txtIcon.Text = iconpath;
  889. }
  890. }
  891. private void DefineURLIconDialog_FileOk(object sender, CancelEventArgs e)
  892. {
  893. txtIcon.Text = DefineURLIconDialog.FileName;
  894. if (txtIcon.Text.Contains(".exe"))
  895. {
  896. string iconpath = Integrator.ExtractIconFromExecutable(txtItemName.Text, DefineURLIconDialog.FileName);
  897. txtIcon.Text = iconpath;
  898. }
  899. }
  900. private void DefineFileIconDialog_FileOk(object sender, CancelEventArgs e)
  901. {
  902. txtIcon.Text = DefineFileIconDialog.FileName;
  903. if (txtIcon.Text.Contains(".exe"))
  904. {
  905. string iconpath = Integrator.ExtractIconFromExecutable(txtItemName.Text, DefineFileIconDialog.FileName);
  906. txtIcon.Text = iconpath;
  907. }
  908. }
  909. private void DefineCommandIconDialog_FileOk(object sender, CancelEventArgs e)
  910. {
  911. txtIcon.Text = DefineCommandIconDialog.FileName;
  912. if (txtIcon.Text.Contains(".exe"))
  913. {
  914. string iconpath = Integrator.ExtractIconFromExecutable(txtItemName.Text, DefineCommandIconDialog.FileName);
  915. txtIcon.Text = iconpath;
  916. }
  917. }
  918. private void btnAddItem_Click(object sender, EventArgs e)
  919. {
  920. string icon = string.Empty;
  921. switch (_desktopItemType)
  922. {
  923. case DesktopItemType.Program:
  924. if (checkDefaultIcon.Checked)
  925. {
  926. icon = txtItem.Text;
  927. }
  928. else
  929. {
  930. icon = txtIcon.Text;
  931. }
  932. Integrator.AddItem(txtItemName.Text, txtItem.Text, icon, _desktopItemPosition, checkShift.Checked, DesktopItemType.Program);
  933. break;
  934. case DesktopItemType.Folder:
  935. if (checkDefaultIcon.Checked)
  936. {
  937. icon = Integrator.FolderDefaultIcon;
  938. }
  939. else
  940. {
  941. icon = txtIcon.Text;
  942. }
  943. Integrator.AddItem(txtItemName.Text, txtItem.Text, icon, _desktopItemPosition, checkShift.Checked, DesktopItemType.Folder);
  944. break;
  945. case DesktopItemType.Link:
  946. if (checkDefaultIcon.Checked)
  947. {
  948. icon = Integrator.DownloadFavicon(txtItem.Text, txtItemName.Text);
  949. }
  950. else
  951. {
  952. icon = txtIcon.Text;
  953. }
  954. Integrator.AddItem(txtItemName.Text, txtItem.Text, icon, _desktopItemPosition, checkShift.Checked, DesktopItemType.Link);
  955. break;
  956. case DesktopItemType.File:
  957. if (!checkDefaultIcon.Checked)
  958. {
  959. icon = txtIcon.Text;
  960. }
  961. Integrator.AddItem(txtItemName.Text, txtItem.Text, icon, _desktopItemPosition, checkShift.Checked, DesktopItemType.File);
  962. break;
  963. case DesktopItemType.Command:
  964. if (!checkDefaultIcon.Checked)
  965. {
  966. icon = txtIcon.Text;
  967. }
  968. Integrator.AddItem(txtItemName.Text, txtItem.Text, icon, _desktopItemPosition, checkShift.Checked, DesktopItemType.Command);
  969. break;
  970. }
  971. GetDesktopItems();
  972. ResetIntegratorForm();
  973. }
  974. private void integratorTimer_Tick(object sender, EventArgs e)
  975. {
  976. if ((txtItem.Text != "") && (txtItemName.Text != "") && (txtIcon.Text != "") && (!checkDefaultIcon.Checked))
  977. {
  978. btnAddItem.Enabled = true;
  979. }
  980. else if ((txtItem.Text != "") && (txtItemName.Text != "") && (checkDefaultIcon.Checked))
  981. {
  982. btnAddItem.Enabled = true;
  983. }
  984. else
  985. {
  986. btnAddItem.Enabled = false;
  987. }
  988. }
  989. private void runDialogTimer_Tick(object sender, EventArgs e)
  990. {
  991. if ((txtRunFile.Text != "") && (txtRunKeyword.Text != ""))
  992. {
  993. btnCreateCustomCommand.Enabled = true;
  994. }
  995. else
  996. {
  997. btnCreateCustomCommand.Enabled = false;
  998. }
  999. }
  1000. private void radioTop_CheckedChanged(object sender, EventArgs e)
  1001. {
  1002. if (radioTop.Checked)
  1003. {
  1004. _desktopItemPosition = DesktopTypePosition.Top;
  1005. }
  1006. }
  1007. private void radioMiddle_CheckedChanged(object sender, EventArgs e)
  1008. {
  1009. if (radioMiddle.Checked)
  1010. {
  1011. _desktopItemPosition = DesktopTypePosition.Middle;
  1012. }
  1013. }
  1014. private void radioBottom_CheckedChanged(object sender, EventArgs e)
  1015. {
  1016. if (radioBottom.Checked)
  1017. {
  1018. _desktopItemPosition = DesktopTypePosition.Bottom;
  1019. }
  1020. }
  1021. private void ResetIntegratorForm()
  1022. {
  1023. txtItem.Clear();
  1024. txtIcon.Clear();
  1025. checkDefaultIcon.Checked = true;
  1026. txtItemName.Clear();
  1027. if (radioLink.Checked)
  1028. {
  1029. txtItem.Text = "http://";
  1030. }
  1031. }
  1032. private void radioOcean_CheckedChanged(object sender, EventArgs e)
  1033. {
  1034. Options.CurrentOptions.Color = Theme.Ocean;
  1035. Options.ApplyTheme(this);
  1036. }
  1037. private void radioMagma_CheckedChanged(object sender, EventArgs e)
  1038. {
  1039. Options.CurrentOptions.Color = Theme.Magma;
  1040. Options.ApplyTheme(this);
  1041. }
  1042. private void radioZerg_CheckedChanged(object sender, EventArgs e)
  1043. {
  1044. Options.CurrentOptions.Color = Theme.Zerg;
  1045. Options.ApplyTheme(this);
  1046. }
  1047. private void radioMinimal_CheckedChanged(object sender, EventArgs e)
  1048. {
  1049. Options.CurrentOptions.Color = Theme.Minimal;
  1050. Options.ApplyTheme(this);
  1051. }
  1052. private void radioCaramel_CheckedChanged(object sender, EventArgs e)
  1053. {
  1054. Options.CurrentOptions.Color = Theme.Caramel;
  1055. Options.ApplyTheme(this);
  1056. }
  1057. private void radioLime_CheckedChanged(object sender, EventArgs e)
  1058. {
  1059. Options.CurrentOptions.Color = Theme.Lime;
  1060. Options.ApplyTheme(this);
  1061. }
  1062. private void button63_Click(object sender, EventArgs e)
  1063. {
  1064. Optimize.DisableGameBar();
  1065. button63.Enabled = false;
  1066. }
  1067. private void button64_Click(object sender, EventArgs e)
  1068. {
  1069. if (listStartupItems.SelectedItems.Count == 1)
  1070. {
  1071. _startUpItems[listStartupItems.SelectedIndices[0]].LocateKey();
  1072. }
  1073. }
  1074. private void button66_Click(object sender, EventArgs e)
  1075. {
  1076. Integrator.TakeOwnership(false);
  1077. }
  1078. private void button65_Click(object sender, EventArgs e)
  1079. {
  1080. Integrator.TakeOwnership(true);
  1081. }
  1082. private void listStartupItems_ColumnClick(object sender, ColumnClickEventArgs e)
  1083. {
  1084. if (e.Column == _columnSorter.CurrentColumn)
  1085. {
  1086. if (_columnSorter.SortOrder == SortOrder.Ascending)
  1087. {
  1088. _columnSorter.SortOrder = SortOrder.Descending;
  1089. }
  1090. else
  1091. {
  1092. _columnSorter.SortOrder = SortOrder.Ascending;
  1093. }
  1094. }
  1095. else
  1096. {
  1097. _columnSorter.CurrentColumn = e.Column;
  1098. _columnSorter.SortOrder = SortOrder.Ascending;
  1099. }
  1100. listStartupItems.Sort();
  1101. }
  1102. private void chkBlock_CheckedChanged(object sender, EventArgs e)
  1103. {
  1104. if (chkBlock.Checked)
  1105. {
  1106. txtIP.Text = _blockedIP;
  1107. txtIP.Enabled = false;
  1108. }
  1109. else
  1110. {
  1111. txtIP.Clear();
  1112. txtIP.Enabled = true;
  1113. }
  1114. }
  1115. private void button7_Click(object sender, EventArgs e)
  1116. {
  1117. Optimize.DisableSyncProviderNotifications();
  1118. button7.Enabled = false;
  1119. }
  1120. private void button8_Click(object sender, EventArgs e)
  1121. {
  1122. GetCustomCommands();
  1123. }
  1124. private void button26_Click(object sender, EventArgs e)
  1125. {
  1126. if (listCustomCommands.SelectedItems.Count == 1)
  1127. {
  1128. Integrator.DeleteCustomCommand(listCustomCommands.SelectedItem.ToString());
  1129. GetCustomCommands();
  1130. }
  1131. }
  1132. private void button34_Click(object sender, EventArgs e)
  1133. {
  1134. Optimize.DisableMediaPlayerSharing();
  1135. button34.Enabled = false;
  1136. }
  1137. private void button68_Click(object sender, EventArgs e)
  1138. {
  1139. Optimize.DisableStartMenuAds();
  1140. button68.Enabled = false;
  1141. }
  1142. private void button67_Click(object sender, EventArgs e)
  1143. {
  1144. Optimize.DisableSilentAppInstall();
  1145. button67.Enabled = false;
  1146. }
  1147. private void button69_Click(object sender, EventArgs e)
  1148. {
  1149. Optimize.DisableMyPeople();
  1150. button69.Enabled = false;
  1151. }
  1152. private void button70_Click(object sender, EventArgs e)
  1153. {
  1154. Optimize.ExcludeDrivers();
  1155. button70.Enabled = false;
  1156. }
  1157. private void button71_Click(object sender, EventArgs e)
  1158. {
  1159. Optimize.DisableWindowsInk();
  1160. button71.Enabled = false;
  1161. }
  1162. private void button72_Click(object sender, EventArgs e)
  1163. {
  1164. Optimize.DisableSpellingAndTypingFeatures();
  1165. button72.Enabled = false;
  1166. }
  1167. }
  1168. }