├── .gitattributes ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md └── workflows │ └── build.yml ├── .gitignore ├── AUTOMATION.md ├── CHANGELOG.md ├── CONFS.md ├── FAQ.md ├── FEED.md ├── IMAGES.md ├── LEGACY.md ├── LICENSE ├── Optimizer.sln ├── Optimizer ├── App.config ├── ByteSize │ ├── BinaryByteSize.cs │ ├── ByteSize.cs │ └── DecimalByteSize.cs ├── CleanHelper.cs ├── ColorHelper.cs ├── Constants.cs ├── Controls │ ├── AppCard.Designer.cs │ ├── AppCard.cs │ ├── AppCard.resx │ ├── ColorOverrider.cs │ ├── ColorPicker.cs │ ├── ListViewColumnSorter.cs │ ├── MoonCheck.cs │ ├── MoonCheckList.cs │ ├── MoonList.cs │ ├── MoonMenuRenderer.cs │ ├── MoonProgress.cs │ ├── MoonRadio.cs │ ├── MoonSelect.cs │ ├── MoonTabs.cs │ ├── MoonToggle.cs │ ├── MoonTree.cs │ ├── ToggleCard.Designer.cs │ ├── ToggleCard.cs │ └── ToggleCard.resx ├── CoreHelper.cs ├── DebugHelper.cs ├── EmbeddedAssembly.cs ├── ErrorLogger.cs ├── FileHandleHelper.cs ├── FontHelper.cs ├── Forms │ ├── AboutForm.Designer.cs │ ├── AboutForm.cs │ ├── AboutForm.resx │ ├── FileUnlockForm.Designer.cs │ ├── FileUnlockForm.cs │ ├── FileUnlockForm.resx │ ├── FirstRunForm.Designer.cs │ ├── FirstRunForm.cs │ ├── FirstRunForm.resx │ ├── HelperForm.Designer.cs │ ├── HelperForm.cs │ ├── HelperForm.resx │ ├── HostsEditorForm.Designer.cs │ ├── HostsEditorForm.cs │ ├── HostsEditorForm.resx │ ├── InfoForm.Designer.cs │ ├── InfoForm.cs │ ├── InfoForm.resx │ ├── MainForm.Designer.cs │ ├── MainForm.cs │ ├── MainForm.resx │ ├── SplashForm.Designer.cs │ ├── SplashForm.cs │ ├── SplashForm.resx │ ├── StartupPreviewForm.Designer.cs │ ├── StartupPreviewForm.cs │ ├── StartupPreviewForm.resx │ ├── StartupRestoreForm.Designer.cs │ ├── StartupRestoreForm.cs │ ├── StartupRestoreForm.resx │ ├── SubForm.Designer.cs │ ├── SubForm.cs │ ├── SubForm.resx │ ├── UpdateForm.Designer.cs │ ├── UpdateForm.cs │ └── UpdateForm.resx ├── HostsHelper.cs ├── IndiciumHelper.cs ├── IntegratorHelper.cs ├── Models │ ├── AppInfo.cs │ ├── Enums.cs │ ├── Hardware.cs │ ├── Options.cs │ ├── SilentConfig.cs │ ├── StartupBackupItem.cs │ ├── StartupItem.cs │ ├── TelemetryData.cs │ ├── WorkEvent.cs │ └── WorkEventArgs.cs ├── NetworkAdapter.cs ├── NetworkMonitor.cs ├── Newtonsoft.Json.dll ├── OptimizeHelper.cs ├── Optimizer.csproj ├── OptionsHelper.cs ├── PingerHelper.cs ├── Program.cs ├── Properties │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ ├── Resources.resx │ ├── Settings.Designer.cs │ └── Settings.settings ├── Resources │ ├── Assets │ │ ├── banner.png │ │ └── logo.png │ ├── Flags │ │ ├── brazil.png │ │ ├── bulgaria.png │ │ ├── china.png │ │ ├── croatia.png │ │ ├── czech.png │ │ ├── dutch.png │ │ ├── egypt.png │ │ ├── france.png │ │ ├── germany.png │ │ ├── greece.png │ │ ├── hungary.png │ │ ├── indonesia.png │ │ ├── iran.png │ │ ├── italy.png │ │ ├── japan.png │ │ ├── korea.png │ │ ├── kurdish.png │ │ ├── nepal.png │ │ ├── pakistan.png │ │ ├── poland.png │ │ ├── romania.png │ │ ├── russia.png │ │ ├── spain.png │ │ ├── taiwan.png │ │ ├── turkey.png │ │ ├── ukraine.png │ │ ├── united-kingdom.png │ │ └── vietnam.png │ ├── Fonts │ │ └── Poppins-Regular.ttf │ ├── Scripts │ │ ├── AddOpenWithCMD.reg │ │ ├── DesktopShortcuts.reg │ │ ├── DisableClassicPhotoViewer.reg │ │ ├── DisableDefenderSafeMode1903Plus.bat │ │ ├── DisableOfficeTelemetry.reg │ │ ├── DisableOfficeTelemetryTasks.bat │ │ ├── DisableTelemetryTasks.bat │ │ ├── DisableXboxTasks.bat │ │ ├── EnableDefenderSafeMode1903Plus.bat │ │ ├── EnableOfficeTelemetry.reg │ │ ├── EnableOfficeTelemetryTasks.bat │ │ ├── EnableTelemetryTasks.bat │ │ ├── EnableXboxTasks.bat │ │ ├── GPEditEnablerInHome.bat │ │ ├── InstallTakeOwnership.reg │ │ ├── OneDrive_Uninstaller.bin │ │ ├── PowerMenu.reg │ │ ├── RemoveTakeOwnership.reg │ │ ├── RestoreClassicPhotoViewer.reg │ │ ├── SystemShortcuts.reg │ │ ├── SystemTools.reg │ │ ├── WindowsApps.reg │ │ └── hosts │ └── i18n │ │ ├── AR.json │ │ ├── BG.json │ │ ├── CN.json │ │ ├── CZ.json │ │ ├── DE.json │ │ ├── EL.json │ │ ├── EN.json │ │ ├── ES.json │ │ ├── FA.json │ │ ├── FR.json │ │ ├── HR.json │ │ ├── HU.json │ │ ├── ID.json │ │ ├── IT.json │ │ ├── JA.json │ │ ├── KO.json │ │ ├── KU.json │ │ ├── NE.json │ │ ├── NL.json │ │ ├── PL.json │ │ ├── PT.json │ │ ├── RO.json │ │ ├── RU.json │ │ ├── TR.json │ │ ├── TW.json │ │ ├── UA.json │ │ ├── UR.json │ │ └── VN.json ├── SilentOps.cs ├── StartupHelper.cs ├── TelemetryHelper.cs ├── TokenPrivilegeHelper.cs ├── UWPHelper.cs ├── Utilities.cs ├── optimizer.ico └── packages.config ├── README.md ├── SECURITY.md ├── banner.png ├── download-button.png ├── feed.json ├── flags.png ├── images ├── 1.PNG ├── 10.PNG ├── 11.PNG ├── 12.PNG ├── 2.PNG ├── 3.PNG ├── 4.PNG ├── 5.PNG ├── 6.PNG ├── 7.PNG ├── 8.PNG ├── 9.PNG ├── feed.zip ├── feed │ ├── 7zip.png │ ├── adobereader.png │ ├── androidstudio.png │ ├── antiexploit.png │ ├── anydesk.png │ ├── atom.png │ ├── audacity.png │ ├── balena.png │ ├── bittorrent.png │ ├── blender.png │ ├── blizzard.png │ ├── brave.png │ ├── bsplayer.png │ ├── bulkcrapuninstaller.png │ ├── chrome.png │ ├── chromium.png │ ├── ddu.png │ ├── deluge.png │ ├── directx.png │ ├── discord.png │ ├── dropbox.png │ ├── eclipse.png │ ├── edge.png │ ├── epic.png │ ├── evernote.png │ ├── everything.png │ ├── filezilla.png │ ├── firefox.png │ ├── flux.png │ ├── foobar.png │ ├── foxit.png │ ├── freetube.png │ ├── gimp.png │ ├── github.png │ ├── gyazo.png │ ├── iobitdefrag.png │ ├── iobitdrivers.png │ ├── iobituninstall.png │ ├── iobitupdater.png │ ├── irfanview.png │ ├── itunes.png │ ├── java.png │ ├── klite.png │ ├── libreoffice.png │ ├── lightshot.png │ ├── malwarebytes.png │ ├── maxthon.png │ ├── mega.png │ ├── motrix.png │ ├── mp3tag.png │ ├── netfw.png │ ├── nodejs.png │ ├── notepadpp.png │ ├── obs.png │ ├── onedrive.png │ ├── openshell.png │ ├── opera.png │ ├── origin.png │ ├── peazip.png │ ├── photofiltre.png │ ├── postman.png │ ├── potplayer.png │ ├── putty.png │ ├── python.png │ ├── qbittorrent.png │ ├── qview.png │ ├── revo.png │ ├── rufus.png │ ├── rustdesk.png │ ├── session.png │ ├── sharex.png │ ├── signal.png │ ├── skype.png │ ├── spotify.png │ ├── steam.png │ ├── sublimemerge.png │ ├── sublimetext.png │ ├── sumatrapdf.png │ ├── tcpoptimizer.png │ ├── teams.png │ ├── teamviewer.png │ ├── telegram.png │ ├── thunderbird.png │ ├── tor.png │ ├── uplay.png │ ├── utorrent.png │ ├── uui.png │ ├── viber.png │ ├── viper.png │ ├── virtualbox.png │ ├── visualcpp.png │ ├── visualstudio.png │ ├── vivaldi.png │ ├── vlc.png │ ├── vscode.png │ ├── vscodium.png │ ├── winamp.png │ ├── wincdemu.png │ ├── winrar.png │ ├── winscp.png │ ├── wireshark.png │ ├── xampp.png │ └── zoom.png └── legacy.PNG ├── templates ├── template-windows10.json ├── template-windows11.json ├── template-windows7.json └── template-windows8.json └── version.txt /.gitattributes: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Set default behavior to automatically normalize line endings. 3 | ############################################################################### 4 | * text=auto 5 | 6 | ############################################################################### 7 | # Set default behavior for command prompt diff. 8 | # 9 | # This is need for earlier builds of msysgit that does not have it on by 10 | # default for csharp files. 11 | # Note: This is only used by command line 12 | ############################################################################### 13 | #*.cs diff=csharp 14 | 15 | ############################################################################### 16 | # Set the merge driver for project and solution files 17 | # 18 | # Merging from the command prompt will add diff markers to the files if there 19 | # are conflicts (Merging from VS is not affected by the settings below, in VS 20 | # the diff markers are never inserted). Diff markers may cause the following 21 | # file extensions to fail to load in VS. An alternative would be to treat 22 | # these files as binary and thus will always conflict and require user 23 | # intervention with every merge. To do so, just uncomment the entries below 24 | ############################################################################### 25 | #*.sln merge=binary 26 | #*.csproj merge=binary 27 | #*.vbproj merge=binary 28 | #*.vcxproj merge=binary 29 | #*.vcproj merge=binary 30 | #*.dbproj merge=binary 31 | #*.fsproj merge=binary 32 | #*.lsproj merge=binary 33 | #*.wixproj merge=binary 34 | #*.modelproj merge=binary 35 | #*.sqlproj merge=binary 36 | #*.wwaproj merge=binary 37 | 38 | ############################################################################### 39 | # behavior for image files 40 | # 41 | # image files are treated as binary by default. 42 | ############################################################################### 43 | #*.jpg binary 44 | #*.png binary 45 | #*.gif binary 46 | 47 | ############################################################################### 48 | # diff behavior for common document formats 49 | # 50 | # Convert binary document formats to text before diffing them. This feature 51 | # is only available from the command line. Turn it on by uncommenting the 52 | # entries below. 53 | ############################################################################### 54 | #*.doc diff=astextplain 55 | #*.DOC diff=astextplain 56 | #*.docx diff=astextplain 57 | #*.DOCX diff=astextplain 58 | #*.dot diff=astextplain 59 | #*.DOT diff=astextplain 60 | #*.pdf diff=astextplain 61 | #*.PDF diff=astextplain 62 | #*.rtf diff=astextplain 63 | #*.RTF diff=astextplain 64 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **Expected behavior** 14 | A clear and concise description of what you expected to happen. 15 | 16 | **Screenshots** 17 | If applicable, add screenshots to help explain your problem. 18 | 19 | **Logs** 20 | Please, upload the required log file located in C:\ProgramData\Optimizer\optimizer.log 21 | 22 | **Desktop (please complete the following information):** 23 | - Windows version and build 24 | - .NET Frameworks installed 25 | - Optimizer version 26 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: Build 2 | 3 | on: 4 | pull_request: 5 | branches: 6 | - master 7 | 8 | jobs: 9 | build: 10 | name: Build 11 | runs-on: windows-2022 12 | 13 | steps: 14 | - uses: actions/checkout@v3 15 | 16 | - name: Setup MSBuild 17 | uses: microsoft/setup-msbuild@v1 18 | 19 | - name: Setup NuGet 20 | uses: nuget/setup-nuget@v1 21 | 22 | - name: Navigate to Workspace 23 | run: cd $GITHUB_WORKSPACE 24 | 25 | - name: Restore Packages 26 | run: nuget restore Optimizer.sln 27 | 28 | - name: Build Solution 29 | run: msbuild.exe Optimizer.sln 30 | -------------------------------------------------------------------------------- /AUTOMATION.md: -------------------------------------------------------------------------------- 1 | # Automating a Range of Operations Based on a Template 2 | 3 | To automate a range of operations using a provided template, follow these steps: 4 | 5 | 1. **Download the Template**: Obtain the template file for your Windows version: 6 | - [Windows 7](https://github.com/hellzerg/optimizer/blob/master/templates/template-windows7.json) 7 | - [Windows 8.1](https://github.com/hellzerg/optimizer/blob/master/templates/template-windows8.json) 8 | - [Windows 10](https://github.com/hellzerg/optimizer/blob/master/templates/template-windows10.json) 9 | - [Windows 11](https://github.com/hellzerg/optimizer/blob/master/templates/template-windows11.json) 10 | 11 | 2. **Edit the Template**: Customize the template configuration according to your needs. 12 | 13 | 3. **Execute the Optimizer**: Run the optimizer executable with the edited template configuration using the command: `optimizer.exe /config=template.json` 14 | 15 | ## Template Configuration Options 16 | 17 | ### WindowsVersion (required) 18 | - Should match your actual Windows version. Available values: `7 | 8 | 10 | 11` 19 | 20 | ### Cleaner 21 | - Choose target folders for cleaning by marking them as `true`. 22 | 23 | ### Pinger 24 | - Choose DNS provider: 25 | - Available values: `Automatic | Custom | Cloudflare | OpenDNS | Quad9 | Google | AlternateDNS | Adguard | CleanBrowsing | CleanBrowsing (adult filter)` 26 | - If you choose `Custom`, you should define at least one primary IPv4 and IPv6 DNS servers. Alternative DNS serves are optional. 27 | - Set FlushDNSCache to `true` to perform DNS cache flushing. Example: 28 | 29 | #### Using pre-defined options: 30 | ``` 31 | "Pinger": { 32 | "SetDNS": "Cloudflare", 33 | "CustomDNSv4": [], 34 | "CustomDNSv6": [], 35 | "FlushDNSCache": true 36 | } 37 | ``` 38 | 39 | #### Using `Custom`: 40 | ``` 41 | "Pinger": { 42 | "SetDNS": "Custom", 43 | "CustomDNSv4": ["3.3.3.3"], 44 | "CustomDNSv6": ["::1"], 45 | "FlushDNSCache": true 46 | } 47 | ``` 48 | 49 | ### ProcessControl 50 | - Prevent processes from running by providing filenames. 51 | - Allow previously prevented processes to run again. Example: 52 | 53 | ``` 54 | "ProcessControl": { 55 | "Prevent": ["chrome.exe", "firefox.exe"], 56 | "Allow": ["opera.exe"] 57 | } 58 | ``` 59 | 60 | ### Hosts 61 | - Mark `IncludeWwwCname` to `true` in order to automatically adding an extra `www.` record for each entry. 62 | - Entries in the `Remove` list should be the domain names you want remove from the hosts file. 63 | - Entries in the `Block` list route to `0.0.0.0`, effectively blocking access. 64 | - Entries in the `Add` list are added. Example: 65 | 66 | ``` 67 | "HostsEditor": { 68 | "IncludeWwwCname": true, 69 | "Block": ["youtube.com", "google.com"], 70 | "Remove": ["facebook.com"] 71 | "Add": [ 72 | { 73 | "Domain": "test.com", 74 | "IPAddress": "192.168.1.5" 75 | }, 76 | { 77 | "Domain": "test2.com", 78 | "IPAddress": "192.168.1.9" 79 | } 80 | ] 81 | } 82 | ``` 83 | 84 | ### RegistryFix 85 | - Enable core Windows components by marking them as `true`. Use for repairing computers from malicious actions. 86 | 87 | ### Integrator 88 | - `TakeOwnership`: Add or remove "Take Ownership" option in right-click menu. (`false`) 89 | - `OpenWithCMD`: Add or remove "Open CMD here" option in right-click menu. (`false`) 90 | 91 | ### AdvancedTweaks 92 | - Caution: These tweaks are technical, avoid unless you understand them. 93 | - `UnlockAllCores`: Leave `null` or `false`. 94 | - `DisableHPET`: Enable or disable High Precision Event Timer. 95 | - `EnableLoginVerbose`: Enable or disable Detailed Login Screen. 96 | - `EnableRegistryBackups`: Enable periodic backups of Registry. 97 | 98 | #### SvchostProcessSplitting 99 | - Mark `true` to reduce svchost.exe processes for optimal memory. 100 | - Mark `false` to enable process splitting for optimal performance. 101 | 102 | ### Tweaks 103 | - Mark options to apply as `true`. 104 | - Mark options to reset as `false`. 105 | - Mark options to ignore as `null`. 106 | 107 | ### PostAction 108 | - Final action after template execution: 109 | - Mark `Restart` as `true` to restart and apply changes. 110 | - Configure `RestartType` for different restart types (`Normal` or `SafeMode`). 111 | - Use `DisableDefender` and `EnableDefender` for automated Windows Defender control. 112 | 113 | **Note**: Review and customize the template configuration carefully before executing. 114 | -------------------------------------------------------------------------------- /CONFS.md: -------------------------------------------------------------------------------- 1 | ## Run Optimizer on Windows Server 2008-2012-2016-2019-2022 ## 2 | #### Some options might not work properly #### 3 | - ```optimizer.exe /unsafe``` 4 | 5 | ## How to disable Windows Defender in Windows 10 1903 and later ## 6 | #### https://docs.microsoft.com/en-us/windows-hardware/customize/desktop/unattend/security-malware-windows-defender-disableantispyware "DisableAntiSpyware" is discontinued and will be ignored on client devices, as of version 1903. #### 7 | 8 | - Restart in SAFE MODE 9 | - Execute: ```optimizer.exe /disabledefender``` 10 | 11 | -OR- 12 | 13 | - Execute: ```optimizer.exe /restart=disabledefender``` and let Optimizer do the rest automatically 14 | 15 | ## How to re-enable Windows Defender ## 16 | 17 | - Restart in SAFE MODE 18 | - Execute: ```optimizer.exe /enabledefender``` 19 | 20 | -OR- 21 | 22 | - Execute: ```optimizer.exe /restart=enabledefender``` and let Optimizer do the rest automatically 23 | 24 | ## How to restart in SAFE MODE / NORMAL easily ## 25 | 26 | - ```optimizer.exe /restart=safemode``` 27 | - ```optimizer.exe /restart=normal``` 28 | 29 | ## Display version info from command line using: 30 | 31 | - ```optimizer.exe /version``` 32 | 33 | ## You may disable specific tools for troubleshooting purposes ## 34 | #### Available list: #### 35 | 36 | * Hardware inspection utility (```indicium```) 37 | * Common Apps downloader tool (```apps```) 38 | * HOSTS Editor tool (```hosts```) 39 | * UWP Apps Uninstaller (```uwp```) 40 | * Startup items tool (```startup```) 41 | * Cleaner utility (```cleaner```) 42 | * Integrator tool (```integrator```) 43 | * Pinger tool (```pinger```) 44 | 45 | #### Examples #### 46 | 47 | - ```optimizer.exe /disable=indicium,uwp``` 48 | - ```optimizer.exe /disable=indicium,uwp,hosts``` 49 | 50 | ## Disable or Reset svchost process splitting mechanism ## 51 | ### Reduces the amount of svchost processes running, improving RAM usage ### 52 | ### To disable it, you need to provide your amount of RAM using this command (example for 8GB RAM): ### 53 | 54 | ```optimizer.exe /svchostsplit=8``` 55 | 56 | #### Reset the mechanism to its default configuration using: #### 57 | ```optimizer.exe /resetsvchostsplit``` 58 | 59 | ## Reset Optimizer configuration might fix it when can't open ## 60 | ```optimizer.exe /repair``` 61 | 62 | ## How to disable/enable HPET (High Precision Event Timer) in order to gain a boost when gaming [use at your own risk!] ## 63 | 64 | - ```optimizer.exe /disablehpet``` 65 | - ```optimizer.exe /enablehpet``` 66 | -------------------------------------------------------------------------------- /FAQ.md: -------------------------------------------------------------------------------- 1 | ## **Frequently Asked Questions (FAQ)** 2 | 3 | Welcome to our FAQ section, where we address common queries and concerns regarding our application. We're here to help you make the most out of your experience. If you have a question that isn't covered here, please feel free to reach out to our support team. 4 | 5 | ### **Do I need to restart my computer for the changes to take effect?** 6 | Absolutely. Restarting your computer is essential for the changes you've made through our application to be applied and fully functional. 7 | 8 | ### **Do I need to keep the app running in the background?** 9 | No, you don't need to keep the app running in the background. Once you've enabled your preferred options, simply restart your computer to ensure the changes take effect. 10 | 11 | ### **My Desktop files and documents got suddenly deleted! Why?** 12 | If you've experienced unexpected file and document deletions on your Desktop, it's possible that these deletions are related to uninstalling OneDrive. It's crucial to avoid uninstalling OneDrive on a Windows 10/11 system with a Microsoft-synced account setup. It's recommended to uninstall OneDrive only on a fresh Windows installation, before setting up your Microsoft account. 13 | 14 | ### **How can I disable Windows Defender on Windows 10/11?** 15 | Please note that the "Disable Windows Defender" toggle is only functional on Windows 7/8/8.1 systems. To effectively disable Windows Defender on Windows 10/11, follow these steps: 16 | 17 | 1. Execute the app with the command `/restart=disabledefender`. 18 | 2. This will initiate a restart in safe mode, during which Windows Defender will be disabled. 19 | 3. After the safe mode restart, your system will restart in normal mode with Windows Defender disabled. 20 | 4. You can re-enable Windows Defender at any time using the command `/restart=enabledefender`. 21 | 22 | ### **My games stopped working or I am experiencing issues with them!** 23 | You should reset "Enhance Privacy", "Disable Xbox Live", "Disable Game Bar" and restart your computer. 24 | If the problem persists, you may open an issue. 25 | 26 | ### **Should I disable System Restore?** 27 | The decision to disable System Restore is up to you. Keep in mind that disabling it will result in the deletion of your existing backups. Consider the implications and potential risks before making this choice. 28 | 29 | ### **Should I disable Print Service or Fax Service?** 30 | If you actively use printer and/or fax devices, it's advisable not to disable these services. Disabling them might hinder your ability to use these devices effectively. 31 | 32 | ### **My Windows Hello, Fingerprint and Biometrics stopped working! Why?** 33 | You should reset the "Enhance Privacy" and restart your computer. 34 | 35 | ### **I cannot log in to Xbox Live! Why?** 36 | If you're facing login issues with Xbox Live, follow these steps to troubleshoot: 37 | 38 | 1. Reset both the "Disable Xbox Live" and "Disable Game Bar" options within our application. 39 | 2. Restart your computer to ensure the changes take effect. 40 | 3. Attempt to log in to Xbox Live again. 41 | 42 | ### **My digital pen is not working, why?** 43 | If your digital pen is not functioning, it might be related to the "Disable Windows Ink" setting. To resolve this: 44 | 45 | 1. Reset the "Disable Windows Ink" option in our application. 46 | 2. Restart your computer. 47 | 3. Your digital pen should now be functional again. 48 | 49 | ### **My clipboard history stopped working, why?** 50 | If your clipboard history has stopped working, try these steps: 51 | 52 | 1. Reset the "Disable Cloud Clipboard" setting in our application. 53 | 2. Verify if the clipboard history is now functioning as expected. 54 | 55 | ### **My Phone Link suddenly stopped working!** 56 | You should reset the "Enhance Privacy" and restart your computer. 57 | 58 | ### **Should I disable Sensor Services?** 59 | If your device is a tablet, has various sensors (proximity, auto-brightness, etc.), or features a touch screen, it's recommended not to disable Sensor Services. These services likely contribute to the functionality of these features on your device. 60 | 61 | We hope these answers have provided clarity on common questions. If you require further assistance, please don't hesitate to reach out to our support team for personalized help. 62 | -------------------------------------------------------------------------------- /FEED.md: -------------------------------------------------------------------------------- 1 | # Including an App in Common Apps using feed.json 2 | 3 | To include an app in Common Apps using the `feed.json` file, follow these steps: 4 | 5 | ## Prerequisites 6 | 7 | You will need the following information: 8 | 9 | - Direct download links for both x64 and x86 variants of the app (if one variant is unavailable, provide the available variant). 10 | - Official app title. 11 | - A tag, usually the app title without spaces, preceded by a 'c'. 12 | - A PNG image with a transparent background, up to 256x256 pixels in size and not exceeding 50KB. 13 | - The group in which the app will be categorized. 14 | 15 | ## Available Groups 16 | 17 | Choose one of the available groups to categorize your app: 18 | 19 | - SystemTools 20 | - Internet 21 | - Coding 22 | - GraphicsSound 23 | 24 | ## Example 25 | 26 | Here's an example of how to structure your entry in the `feed.json` file: 27 | 28 | ```json 29 | { 30 | "Title": "Google Chrome", 31 | "Link": "", 32 | "Link64": "", 33 | "Tag": "cChrome", 34 | "Image": "", 35 | "Group": "Internet" 36 | } 37 | -------------------------------------------------------------------------------- /IMAGES.md: -------------------------------------------------------------------------------- 1 | ![alt](https://raw.githubusercontent.com/hellzerg/optimizer/master/images/1.PNG) 2 | ![alt](https://raw.githubusercontent.com/hellzerg/optimizer/master/images/2.PNG) 3 | ![alt](https://raw.githubusercontent.com/hellzerg/optimizer/master/images/3.PNG) 4 | ![alt](https://raw.githubusercontent.com/hellzerg/optimizer/master/images/4.PNG) 5 | ![alt](https://raw.githubusercontent.com/hellzerg/optimizer/master/images/5.PNG) 6 | ![alt](https://raw.githubusercontent.com/hellzerg/optimizer/master/images/6.PNG) 7 | ![alt](https://raw.githubusercontent.com/hellzerg/optimizer/master/images/7.PNG) 8 | ![alt](https://raw.githubusercontent.com/hellzerg/optimizer/master/images/8.PNG) 9 | ![alt](https://raw.githubusercontent.com/hellzerg/optimizer/master/images/9.PNG) 10 | ![alt](https://raw.githubusercontent.com/hellzerg/optimizer/master/images/10.PNG) 11 | ![alt](https://raw.githubusercontent.com/hellzerg/optimizer/master/images/11.PNG) 12 | ![alt](https://raw.githubusercontent.com/hellzerg/optimizer/master/images/12.PNG) 13 | -------------------------------------------------------------------------------- /LEGACY.md: -------------------------------------------------------------------------------- 1 | ![alt](https://raw.githubusercontent.com/hellzerg/optimizer/master/images/legacy.PNG) 2 | -------------------------------------------------------------------------------- /Optimizer.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.25420.1 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Optimizer", "Optimizer\Optimizer.csproj", "{96563750-9265-4ACC-8E9E-61930A208A4D}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {96563750-9265-4ACC-8E9E-61930A208A4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {96563750-9265-4ACC-8E9E-61930A208A4D}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {96563750-9265-4ACC-8E9E-61930A208A4D}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {96563750-9265-4ACC-8E9E-61930A208A4D}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | EndGlobal 23 | -------------------------------------------------------------------------------- /Optimizer/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Optimizer/ByteSize/BinaryByteSize.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Globalization; 3 | 4 | namespace Optimizer 5 | { 6 | public partial struct ByteSize 7 | { 8 | public const long BytesInKibiByte = 1_024; 9 | public const long BytesInMebiByte = 1_048_576; 10 | public const long BytesInGibiByte = 1_073_741_824; 11 | public const long BytesInTebiByte = 1_099_511_627_776; 12 | public const long BytesInPebiByte = 1_125_899_906_842_624; 13 | 14 | public const string KibiByteSymbol = "KiB"; 15 | public const string MebiByteSymbol = "MiB"; 16 | public const string GibiByteSymbol = "GiB"; 17 | public const string TebiByteSymbol = "TiB"; 18 | public const string PebiByteSymbol = "PiB"; 19 | 20 | public double KibiBytes => Bytes / BytesInKibiByte; 21 | public double MebiBytes => Bytes / BytesInMebiByte; 22 | public double GibiBytes => Bytes / BytesInGibiByte; 23 | public double TebiBytes => Bytes / BytesInTebiByte; 24 | public double PebiBytes => Bytes / BytesInPebiByte; 25 | 26 | public static ByteSize FromKibiBytes(double value) 27 | { 28 | return new ByteSize(value * BytesInKibiByte); 29 | } 30 | 31 | public static ByteSize FromMebiBytes(double value) 32 | { 33 | return new ByteSize(value * BytesInMebiByte); 34 | } 35 | 36 | public static ByteSize FromGibiBytes(double value) 37 | { 38 | return new ByteSize(value * BytesInGibiByte); 39 | } 40 | 41 | public static ByteSize FromTebiBytes(double value) 42 | { 43 | return new ByteSize(value * BytesInTebiByte); 44 | } 45 | 46 | public static ByteSize FromPebiBytes(double value) 47 | { 48 | return new ByteSize(value * BytesInPebiByte); 49 | } 50 | 51 | public ByteSize AddKibiBytes(double value) 52 | { 53 | return this + ByteSize.FromKibiBytes(value); 54 | } 55 | 56 | public ByteSize AddMebiBytes(double value) 57 | { 58 | return this + ByteSize.FromMebiBytes(value); 59 | } 60 | 61 | public ByteSize AddGibiBytes(double value) 62 | { 63 | return this + ByteSize.FromGibiBytes(value); 64 | } 65 | 66 | public ByteSize AddTebiBytes(double value) 67 | { 68 | return this + ByteSize.FromTebiBytes(value); 69 | } 70 | 71 | public ByteSize AddPebiBytes(double value) 72 | { 73 | return this + ByteSize.FromPebiBytes(value); 74 | } 75 | 76 | public string ToBinaryString() 77 | { 78 | return this.ToString("0.##", CultureInfo.CurrentCulture, useBinaryByte: true); 79 | } 80 | 81 | public string ToBinaryString(IFormatProvider formatProvider) 82 | { 83 | return this.ToString("0.##", formatProvider, useBinaryByte: true); 84 | } 85 | } 86 | } -------------------------------------------------------------------------------- /Optimizer/ByteSize/DecimalByteSize.cs: -------------------------------------------------------------------------------- 1 | namespace Optimizer 2 | { 3 | public partial struct ByteSize 4 | { 5 | public const long BytesInKiloByte = 1_000; 6 | public const long BytesInMegaByte = 1_000_000; 7 | public const long BytesInGigaByte = 1_000_000_000; 8 | public const long BytesInTeraByte = 1_000_000_000_000; 9 | public const long BytesInPetaByte = 1_000_000_000_000_000; 10 | 11 | public const string KiloByteSymbol = "KB"; 12 | public const string MegaByteSymbol = "MB"; 13 | public const string GigaByteSymbol = "GB"; 14 | public const string TeraByteSymbol = "TB"; 15 | public const string PetaByteSymbol = "PB"; 16 | 17 | public double KiloBytes => Bytes / BytesInKiloByte; 18 | public double MegaBytes => Bytes / BytesInMegaByte; 19 | public double GigaBytes => Bytes / BytesInGigaByte; 20 | public double TeraBytes => Bytes / BytesInTeraByte; 21 | public double PetaBytes => Bytes / BytesInPetaByte; 22 | 23 | public static ByteSize FromKiloBytes(double value) 24 | { 25 | return new ByteSize(value * BytesInKiloByte); 26 | } 27 | 28 | public static ByteSize FromMegaBytes(double value) 29 | { 30 | return new ByteSize(value * BytesInMegaByte); 31 | } 32 | 33 | public static ByteSize FromGigaBytes(double value) 34 | { 35 | return new ByteSize(value * BytesInGigaByte); 36 | } 37 | 38 | public static ByteSize FromTeraBytes(double value) 39 | { 40 | return new ByteSize(value * BytesInTeraByte); 41 | } 42 | 43 | public static ByteSize FromPetaBytes(double value) 44 | { 45 | return new ByteSize(value * BytesInPetaByte); 46 | } 47 | 48 | public ByteSize AddKiloBytes(double value) 49 | { 50 | return this + ByteSize.FromKiloBytes(value); 51 | } 52 | 53 | public ByteSize AddMegaBytes(double value) 54 | { 55 | return this + ByteSize.FromMegaBytes(value); 56 | } 57 | 58 | public ByteSize AddGigaBytes(double value) 59 | { 60 | return this + ByteSize.FromGigaBytes(value); 61 | } 62 | 63 | public ByteSize AddTeraBytes(double value) 64 | { 65 | return this + ByteSize.FromTeraBytes(value); 66 | } 67 | 68 | public ByteSize AddPetaBytes(double value) 69 | { 70 | return this + ByteSize.FromPetaBytes(value); 71 | } 72 | } 73 | } -------------------------------------------------------------------------------- /Optimizer/Constants.cs: -------------------------------------------------------------------------------- 1 | namespace Optimizer 2 | { 3 | internal static class Constants 4 | { 5 | internal static string INTERNAL_DNS = "1.1.1.1"; 6 | internal static string THEME_FLAG = "themeable"; 7 | internal static int CONTRAST_THRESHOLD = 149; 8 | 9 | internal static string INDICIUM_TOOL = "indicium"; 10 | internal static string UWP_TOOL = "uwp"; 11 | internal static string APPS_TOOL = "apps"; 12 | internal static string HOSTS_EDITOR = "hosts"; 13 | internal static string STARTUP_TOOL = "startup"; 14 | internal static string CLEANER_TOOL = "cleaner"; 15 | internal static string INTEGRATOR_TOOL = "integrator"; 16 | internal static string PINGER_TOOL = "pinger"; 17 | 18 | internal static string ENGLISH = "English"; 19 | internal static string RUSSIAN = "Русский"; 20 | internal static string TURKISH = "Türkçe"; 21 | internal static string HELLENIC = "Ελληνικά"; 22 | internal static string GERMAN = "Deutsch"; 23 | internal static string PORTUGUESE = "Português"; 24 | internal static string FRENCH = "Français"; 25 | internal static string SPANISH = "Español"; 26 | internal static string ITALIAN = "Italiano"; 27 | internal static string CHINESE = "简体中文"; 28 | internal static string TAIWANESE = "繁體中文"; 29 | internal static string CZECH = "Čeština"; 30 | internal static string KOREAN = "한국어"; 31 | internal static string POLISH = "Polski"; 32 | internal static string ARABIC = "العربية"; 33 | internal static string KURDISH = "کوردی"; 34 | internal static string HUNGARIAN = "Magyar"; 35 | internal static string ROMANIAN = "Română"; 36 | internal static string DUTCH = "Nederlands"; 37 | internal static string UKRAINIAN = "українська"; 38 | internal static string JAPANESE = "日本語"; 39 | internal static string PERSIAN = "فارسی"; 40 | internal static string NEPALI = "नेपाली"; 41 | internal static string BULGARIAN = "български"; 42 | internal static string VIETNAMESE = "Tiếng Việt"; 43 | internal static string URDU = "لشکری ‍زبان"; 44 | internal static string INDONESIAN = "Bahasa Indonesia"; 45 | internal static string CROATIAN = "Hrvat"; 46 | 47 | internal static string CloudflareDNS = "Cloudflare"; 48 | internal static string OpenDNS = "OpenDNS"; 49 | internal static string Quad9DNS = "Quad9"; 50 | internal static string GoogleDNS = "Google"; 51 | internal static string AlternateDNS = "AlternateDNS"; 52 | internal static string AdguardDNS = "Adguard"; 53 | internal static string CleanBrowsingDNS = "CleanBrowsing"; 54 | internal static string CleanBrowsingAdultFilterDNS = "CleanBrowsing (adult filter)"; 55 | internal static string AutomaticDNS = "Automatic"; 56 | internal static string CustomDNS = "Custom"; 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /Optimizer/Controls/AppCard.Designer.cs: -------------------------------------------------------------------------------- 1 |  2 | namespace Optimizer 3 | { 4 | partial class AppCard 5 | { 6 | /// 7 | /// Required designer variable. 8 | /// 9 | private System.ComponentModel.IContainer components = null; 10 | 11 | /// 12 | /// Clean up any resources being used. 13 | /// 14 | /// true if managed resources should be disposed; otherwise, false. 15 | protected override void Dispose(bool disposing) 16 | { 17 | if (disposing && (components != null)) 18 | { 19 | components.Dispose(); 20 | } 21 | base.Dispose(disposing); 22 | } 23 | 24 | #region Component Designer generated code 25 | 26 | /// 27 | /// Required method for Designer support - do not modify 28 | /// the contents of this method with the code editor. 29 | /// 30 | private void InitializeComponent() 31 | { 32 | this.appTitle = new Optimizer.MoonCheck(); 33 | this.appImage = new System.Windows.Forms.PictureBox(); 34 | ((System.ComponentModel.ISupportInitialize)(this.appImage)).BeginInit(); 35 | this.SuspendLayout(); 36 | // 37 | // appTitle 38 | // 39 | this.appTitle.AutoSize = true; 40 | this.appTitle.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; 41 | this.appTitle.Font = new System.Drawing.Font("Segoe UI Semibold", 11F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 42 | this.appTitle.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; 43 | this.appTitle.Location = new System.Drawing.Point(36, 4); 44 | this.appTitle.Name = "appTitle"; 45 | this.appTitle.Size = new System.Drawing.Size(89, 24); 46 | this.appTitle.TabIndex = 165; 47 | this.appTitle.Text = "App Title"; 48 | this.appTitle.UseVisualStyleBackColor = true; 49 | // 50 | // appImage 51 | // 52 | this.appImage.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; 53 | this.appImage.Location = new System.Drawing.Point(6, 4); 54 | this.appImage.Name = "appImage"; 55 | this.appImage.Size = new System.Drawing.Size(24, 24); 56 | this.appImage.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; 57 | this.appImage.TabIndex = 166; 58 | this.appImage.TabStop = false; 59 | // 60 | // AppCard 61 | // 62 | this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); 63 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; 64 | this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); 65 | this.Controls.Add(this.appTitle); 66 | this.Controls.Add(this.appImage); 67 | this.DoubleBuffered = true; 68 | this.Font = new System.Drawing.Font("Segoe UI Semibold", 9F, System.Drawing.FontStyle.Bold); 69 | this.ForeColor = System.Drawing.Color.White; 70 | this.Name = "AppCard"; 71 | this.Size = new System.Drawing.Size(172, 33); 72 | ((System.ComponentModel.ISupportInitialize)(this.appImage)).EndInit(); 73 | this.ResumeLayout(false); 74 | this.PerformLayout(); 75 | 76 | } 77 | 78 | #endregion 79 | 80 | internal MoonCheck appTitle; 81 | internal System.Windows.Forms.PictureBox appImage; 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /Optimizer/Controls/AppCard.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Forms; 2 | 3 | namespace Optimizer 4 | { 5 | public sealed partial class AppCard : UserControl 6 | { 7 | public AppCard() 8 | { 9 | InitializeComponent(); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Optimizer/Controls/ListViewColumnSorter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Windows.Forms; 4 | 5 | namespace Optimizer 6 | { 7 | internal sealed class ListViewColumnSorter : IComparer 8 | { 9 | int _columnToSort; 10 | SortOrder _sortOrder; 11 | CaseInsensitiveComparer _comparer; 12 | 13 | public ListViewColumnSorter() 14 | { 15 | _columnToSort = 0; 16 | _sortOrder = SortOrder.None; 17 | _comparer = new CaseInsensitiveComparer(); 18 | } 19 | 20 | public int CurrentColumn 21 | { 22 | get { return _columnToSort; } 23 | set { _columnToSort = value; } 24 | } 25 | 26 | public SortOrder SortOrder 27 | { 28 | get { return _sortOrder; } 29 | set { _sortOrder = value; } 30 | } 31 | 32 | public int Compare(object x, object y) 33 | { 34 | int compareResult; 35 | 36 | ListViewItem listViewX = (ListViewItem)x; 37 | ListViewItem listViewY = (ListViewItem)y; 38 | 39 | try 40 | { 41 | compareResult = _comparer.Compare(Convert.ToInt64(listViewX.SubItems[_columnToSort].Text), Convert.ToInt64(listViewY.SubItems[_columnToSort].Text)); 42 | } 43 | catch 44 | { 45 | compareResult = _comparer.Compare(listViewX.SubItems[_columnToSort].Text, listViewY.SubItems[_columnToSort].Text); 46 | } 47 | 48 | if (_sortOrder == SortOrder.Ascending) 49 | { 50 | return compareResult; 51 | } 52 | else if (_sortOrder == SortOrder.Descending) 53 | { 54 | return -compareResult; 55 | } 56 | else 57 | { 58 | return 0; 59 | } 60 | } 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /Optimizer/Controls/MoonCheck.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Drawing; 3 | using System.Windows.Forms; 4 | 5 | namespace Optimizer 6 | { 7 | public sealed class MoonCheck : CheckBox 8 | { 9 | public MoonCheck() 10 | { 11 | DoubleBuffered = true; 12 | } 13 | 14 | protected override void OnCheckedChanged(EventArgs e) 15 | { 16 | base.OnCheckedChanged(e); 17 | 18 | // custom theming 19 | if (this.Checked) 20 | { 21 | this.Tag = "themeable"; 22 | this.Font = new Font(this.Font, FontStyle.Underline); 23 | 24 | this.ForeColor = OptionsHelper.ForegroundColor; 25 | } 26 | else 27 | { 28 | this.Tag = string.Empty; 29 | this.ForeColor = Color.White; 30 | this.Font = new Font(this.Font, FontStyle.Regular); 31 | } 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Optimizer/Controls/MoonCheckList.cs: -------------------------------------------------------------------------------- 1 | using System.Drawing; 2 | using System.Windows.Forms; 3 | 4 | namespace Optimizer 5 | { 6 | public sealed class MoonCheckList : CheckedListBox 7 | { 8 | public MoonCheckList() 9 | { 10 | DoubleBuffered = true; 11 | } 12 | 13 | protected override void OnDrawItem(DrawItemEventArgs e) 14 | { 15 | Color foreColor = Color.White; 16 | Color accentColor = OptionsHelper.ForegroundColor; 17 | 18 | if (this.Items.Count > 0) 19 | { 20 | if (e.Index >= 0) 21 | { 22 | foreColor = GetItemChecked(e.Index) ? accentColor : foreColor; 23 | } 24 | else 25 | { 26 | foreColor = e.ForeColor; 27 | } 28 | } 29 | 30 | var tweakedEventArgs = new DrawItemEventArgs( 31 | e.Graphics, 32 | e.Font, 33 | e.Bounds, 34 | e.Index, 35 | e.State, 36 | foreColor, 37 | e.BackColor); 38 | 39 | base.OnDrawItem(tweakedEventArgs); 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /Optimizer/Controls/MoonList.cs: -------------------------------------------------------------------------------- 1 | using System.Drawing; 2 | using System.Windows.Forms; 3 | 4 | namespace Optimizer 5 | { 6 | public sealed class MoonList : ListBox 7 | { 8 | public MoonList() 9 | { 10 | this.DrawMode = DrawMode.OwnerDrawVariable; 11 | this.BorderStyle = BorderStyle.None; 12 | 13 | this.MeasureItem += MoonListBox_MeasureItem; 14 | this.DrawItem += MoonListBox_DrawItem; 15 | } 16 | 17 | private void MoonListBox_DrawItem(object sender, DrawItemEventArgs e) 18 | { 19 | if (e.Index < 0) return; 20 | if (this.Items.Count <= 0) return; 21 | 22 | e.DrawBackground(); 23 | 24 | Brush myBrush = new SolidBrush(Color.White); 25 | 26 | if ((e.State & DrawItemState.Selected) == DrawItemState.Selected) 27 | { 28 | e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(50, 50, 50)), e.Bounds); 29 | } 30 | 31 | else 32 | { 33 | e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(20, 20, 20)), e.Bounds); 34 | 35 | } 36 | 37 | e.Graphics.DrawString(this.Items[e.Index].ToString(), this.Font, myBrush, e.Bounds); 38 | e.DrawFocusRectangle(); 39 | } 40 | 41 | private void MoonListBox_MeasureItem(object sender, MeasureItemEventArgs e) 42 | { 43 | e.ItemHeight = this.Font.Height; 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /Optimizer/Controls/MoonMenuRenderer.cs: -------------------------------------------------------------------------------- 1 | using System.Drawing; 2 | using System.Windows.Forms; 3 | 4 | namespace Optimizer 5 | { 6 | internal sealed class MoonMenuRenderer : ToolStripProfessionalRenderer 7 | { 8 | internal MoonMenuRenderer() : base(new MoonColors()) 9 | { 10 | 11 | } 12 | 13 | //protected override void OnRenderItemText(ToolStripItemTextRenderEventArgs e) 14 | //{ 15 | // var tsMenuItem = e.Item as ToolStripMenuItem; 16 | // if (tsMenuItem != null) 17 | // e.TextColor = Color.GhostWhite; 18 | // base.OnRenderItemText(e); 19 | //} 20 | 21 | //protected override void OnRenderSeparator(ToolStripSeparatorRenderEventArgs e) 22 | //{ 23 | // var tsMenuItem = e.Item as ToolStripMenuItem; 24 | // if (tsMenuItem != null) 25 | // e.Graphics.bru 26 | // base.OnRenderSeparator(e); 27 | //} 28 | 29 | protected override void OnRenderArrow(ToolStripArrowRenderEventArgs e) 30 | { 31 | var tsMenuItem = e.Item as ToolStripMenuItem; 32 | if (tsMenuItem != null) 33 | e.ArrowColor = Color.DimGray; 34 | base.OnRenderArrow(e); 35 | } 36 | } 37 | 38 | internal class MoonColors : ProfessionalColorTable 39 | { 40 | public override Color SeparatorLight 41 | { 42 | get { return Color.DimGray; } 43 | } 44 | 45 | public override Color SeparatorDark 46 | { 47 | get { return Color.DimGray; } 48 | } 49 | 50 | public override Color ToolStripDropDownBackground 51 | { 52 | get 53 | { 54 | return OptionsHelper.BackgroundColor; 55 | } 56 | } 57 | 58 | public override Color ImageMarginGradientBegin 59 | { 60 | get 61 | { 62 | return OptionsHelper.BackgroundColor; 63 | } 64 | } 65 | public override Color ImageMarginGradientMiddle 66 | { 67 | get 68 | { 69 | return OptionsHelper.BackgroundColor; 70 | } 71 | } 72 | public override Color ImageMarginGradientEnd 73 | { 74 | get 75 | { 76 | return OptionsHelper.BackgroundColor; 77 | } 78 | } 79 | 80 | public override Color ToolStripBorder 81 | { 82 | get 83 | { 84 | return OptionsHelper.BackgroundColor; 85 | } 86 | } 87 | 88 | public override Color MenuBorder 89 | { 90 | get 91 | { 92 | return OptionsHelper.BackAccentColor; 93 | } 94 | } 95 | 96 | public override Color MenuItemSelected 97 | { 98 | get 99 | { 100 | return OptionsHelper.BackAccentColor; 101 | } 102 | } 103 | 104 | public override Color MenuItemSelectedGradientBegin 105 | { 106 | get 107 | { 108 | return OptionsHelper.BackAccentColor; 109 | } 110 | } 111 | 112 | public override Color MenuItemSelectedGradientEnd 113 | { 114 | get 115 | { 116 | return OptionsHelper.BackAccentColor; 117 | } 118 | } 119 | 120 | public override Color MenuItemBorder 121 | { 122 | get 123 | { 124 | return OptionsHelper.BackAccentColor; 125 | } 126 | } 127 | } 128 | } 129 | -------------------------------------------------------------------------------- /Optimizer/Controls/MoonProgress.cs: -------------------------------------------------------------------------------- 1 | using System.Drawing; 2 | using System.Drawing.Drawing2D; 3 | using System.Windows.Forms; 4 | 5 | namespace Optimizer 6 | { 7 | internal sealed class MoonProgress : ProgressBar 8 | { 9 | public MoonProgress() 10 | { 11 | DoubleBuffered = true; 12 | this.SetStyle(ControlStyles.UserPaint, true); 13 | } 14 | 15 | protected override void OnPaint(PaintEventArgs e) 16 | { 17 | LinearGradientBrush brush = null; 18 | Rectangle rec = new Rectangle(0, 0, this.Width, this.Height); 19 | 20 | if (ProgressBarRenderer.IsSupported) 21 | ProgressBarRenderer.DrawHorizontalBar(e.Graphics, rec); 22 | 23 | rec.Width = (int)(rec.Width * ((double)base.Value / Maximum)) - 4; 24 | rec.Height -= 4; 25 | brush = new LinearGradientBrush(rec, OptionsHelper.ForegroundAccentColor, OptionsHelper.ForegroundColor, LinearGradientMode.Vertical); 26 | e.Graphics.FillRectangle(brush, 2, 2, rec.Width, rec.Height); 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Optimizer/Controls/MoonRadio.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Drawing; 3 | using System.Windows.Forms; 4 | 5 | namespace Optimizer 6 | { 7 | public sealed class MoonRadio : RadioButton 8 | { 9 | public MoonRadio() 10 | { 11 | DoubleBuffered = true; 12 | } 13 | 14 | protected override void OnCheckedChanged(EventArgs e) 15 | { 16 | base.OnCheckedChanged(e); 17 | 18 | // custom theming 19 | if (this.Checked) 20 | { 21 | this.Tag = "themeable"; 22 | this.Font = new Font(this.Font, FontStyle.Underline); 23 | 24 | this.ForeColor = OptionsHelper.ForegroundColor; 25 | } 26 | else 27 | { 28 | this.Tag = string.Empty; 29 | this.ForeColor = Color.White; 30 | this.Font = new Font(this.Font, FontStyle.Regular); 31 | } 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Optimizer/Controls/MoonSelect.cs: -------------------------------------------------------------------------------- 1 | using System.Drawing; 2 | using System.Windows.Forms; 3 | 4 | namespace Optimizer 5 | { 6 | public sealed class MoonSelect : ComboBox 7 | { 8 | private const int WM_PAINT = 0xF; 9 | private int buttonWidth = SystemInformation.HorizontalScrollBarArrowWidth; 10 | Color borderColor = Color.Blue; 11 | 12 | public Color BorderColor 13 | { 14 | get { return borderColor; } 15 | set { borderColor = value; Invalidate(); } 16 | } 17 | 18 | protected override void WndProc(ref Message m) 19 | { 20 | base.WndProc(ref m); 21 | if (m.Msg == WM_PAINT && DropDownStyle != ComboBoxStyle.Simple) 22 | { 23 | using (var g = Graphics.FromHwnd(Handle)) 24 | { 25 | var adjustMent = 0; 26 | if (FlatStyle == FlatStyle.Popup || 27 | (FlatStyle == FlatStyle.Flat && 28 | DropDownStyle == ComboBoxStyle.DropDownList)) 29 | adjustMent = 1; 30 | var innerBorderWisth = 3; 31 | var innerBorderColor = BackColor; 32 | if (DropDownStyle == ComboBoxStyle.DropDownList && 33 | (FlatStyle == FlatStyle.System || FlatStyle == FlatStyle.Standard)) 34 | innerBorderColor = Color.FromArgb(0xCCCCCC); 35 | if (DropDownStyle == ComboBoxStyle.DropDownList && !Enabled) 36 | innerBorderColor = SystemColors.Control; 37 | 38 | if (DropDownStyle == ComboBoxStyle.DropDownList || Enabled == false) 39 | { 40 | using (var p = new Pen(innerBorderColor, innerBorderWisth)) 41 | { 42 | p.Alignment = System.Drawing.Drawing2D.PenAlignment.Inset; 43 | g.DrawRectangle(p, 1, 1, 44 | Width - buttonWidth - adjustMent - 1, Height - 1); 45 | } 46 | } 47 | using (var p = new Pen(BorderColor)) 48 | { 49 | g.DrawRectangle(p, 0, 0, Width - 1, Height - 1); 50 | g.DrawLine(p, Width - buttonWidth - adjustMent, 51 | 0, Width - buttonWidth - adjustMent, Height); 52 | } 53 | } 54 | } 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /Optimizer/Controls/MoonToggle.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | using System.Drawing; 3 | using System.Drawing.Drawing2D; 4 | using System.Windows.Forms; 5 | 6 | namespace Optimizer 7 | { 8 | public sealed class MoonToggle : CheckBox 9 | { 10 | bool solidStyle = true; 11 | 12 | [Browsable(true)] 13 | public override string Text 14 | { 15 | get { return base.Text; } 16 | set { } 17 | } 18 | 19 | [DefaultValue(true)] 20 | public bool SolidStyle 21 | { 22 | get { return solidStyle; } 23 | set 24 | { 25 | solidStyle = value; 26 | this.Invalidate(); 27 | } 28 | } 29 | 30 | public MoonToggle() 31 | { 32 | this.DoubleBuffered = true; 33 | this.MinimumSize = new Size(46, 22); 34 | this.ForeColor = Color.White; 35 | } 36 | 37 | private GraphicsPath GetFigurePath() 38 | { 39 | int arcSize = this.Height - 1; 40 | Rectangle leftArc = new Rectangle(0, 0, arcSize, arcSize); 41 | Rectangle rightArc = new Rectangle(this.Width - arcSize - 2, 0, arcSize, arcSize); 42 | 43 | GraphicsPath path = new GraphicsPath(); 44 | path.StartFigure(); 45 | path.AddArc(leftArc, 90, 180); 46 | path.AddArc(rightArc, 270, 180); 47 | path.CloseFigure(); 48 | 49 | return path; 50 | } 51 | 52 | protected override void OnPaint(PaintEventArgs pevent) 53 | { 54 | int toggleSize = this.Height - 5; 55 | pevent.Graphics.SmoothingMode = SmoothingMode.AntiAlias; 56 | pevent.Graphics.Clear(this.Parent.BackColor); 57 | 58 | if (this.Checked) //ON 59 | { 60 | if (solidStyle) 61 | pevent.Graphics.FillPath(new SolidBrush(OptionsHelper.ForegroundColor), GetFigurePath()); 62 | else pevent.Graphics.DrawPath(new Pen(OptionsHelper.ForegroundColor, 2), GetFigurePath()); 63 | //Draw the toggle 64 | pevent.Graphics.FillEllipse(new SolidBrush(OptionsHelper.TextColor), 65 | new Rectangle(this.Width - this.Height + 1, 2, toggleSize, toggleSize)); 66 | } 67 | else //OFF 68 | { 69 | if (solidStyle) 70 | pevent.Graphics.FillPath(new SolidBrush(OptionsHelper.BackAccentColor), GetFigurePath()); 71 | else pevent.Graphics.DrawPath(new Pen(OptionsHelper.BackAccentColor, 2), GetFigurePath()); 72 | //Draw the toggle 73 | pevent.Graphics.FillEllipse(new SolidBrush(Color.White), 74 | new Rectangle(2, 2, toggleSize, toggleSize)); 75 | } 76 | } 77 | } 78 | } -------------------------------------------------------------------------------- /Optimizer/Controls/MoonTree.cs: -------------------------------------------------------------------------------- 1 | using System.Drawing; 2 | using System.Windows.Forms; 3 | 4 | namespace Optimizer 5 | { 6 | public sealed class MoonTree : TreeView 7 | { 8 | string[] rootNodes = 9 | { 10 | "cpu", "ram", "mobo", "gpu", "disk", "inet", "audio", "dev" 11 | }; 12 | 13 | string _primaryItemTag = "_primary"; 14 | 15 | public MoonTree() 16 | { 17 | this.DrawMode = TreeViewDrawMode.OwnerDrawAll; 18 | this.BackColor = Color.FromArgb(20, 20, 20); 19 | this.ForeColor = Color.White; 20 | this.BorderStyle = BorderStyle.None; 21 | } 22 | 23 | private bool FindName(string name) 24 | { 25 | foreach (string x in rootNodes) 26 | { 27 | if (x == name) return true; 28 | } 29 | 30 | return false; 31 | } 32 | 33 | protected override void OnDrawNode(DrawTreeNodeEventArgs e) 34 | { 35 | Rectangle r = new Rectangle(); 36 | r.X = 0; 37 | r.Y = e.Bounds.Y; 38 | 39 | r.Height = e.Bounds.Height; 40 | r.Width = 100000; 41 | 42 | if (e.Node.IsSelected) 43 | { 44 | e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(50, 50, 50)), r); //e.Bounds 45 | } 46 | else 47 | { 48 | e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(20, 20, 20)), r); //e.Bounds 49 | } 50 | 51 | if (FindName(e.Node.Name)) TextRenderer.DrawText(e.Graphics, e.Node.Text, this.Font, e.Node.Bounds, Color.Silver); 52 | else if (e.Node.Tag != null && e.Node.Tag.ToString() == _primaryItemTag) TextRenderer.DrawText(e.Graphics, e.Node.Text, this.Font, e.Node.Bounds, OptionsHelper.ForegroundColor); 53 | else TextRenderer.DrawText(e.Graphics, e.Node.Text, this.Font, e.Node.Bounds, Color.White); 54 | 55 | if (this.ImageList != null && this.ImageList.Images.Count > 0 && e.Node.SelectedImageIndex > -1) 56 | { 57 | e.Graphics.DrawImage(this.ImageList.Images[e.Node.SelectedImageIndex], e.Bounds.Left + 15 * e.Node.Level + 5, e.Bounds.Top); 58 | } 59 | } 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /Optimizer/Controls/ToggleCard.Designer.cs: -------------------------------------------------------------------------------- 1 |  2 | namespace Optimizer 3 | { 4 | partial class ToggleCard 5 | { 6 | /// 7 | /// Required designer variable. 8 | /// 9 | private System.ComponentModel.IContainer components = null; 10 | 11 | /// 12 | /// Clean up any resources being used. 13 | /// 14 | /// true if managed resources should be disposed; otherwise, false. 15 | protected override void Dispose(bool disposing) 16 | { 17 | if (disposing && (components != null)) 18 | { 19 | components.Dispose(); 20 | } 21 | base.Dispose(disposing); 22 | } 23 | 24 | #region Component Designer generated code 25 | 26 | /// 27 | /// Required method for Designer support - do not modify 28 | /// the contents of this method with the code editor. 29 | /// 30 | private void InitializeComponent() 31 | { 32 | this.Label = new System.Windows.Forms.Label(); 33 | this.Panel = new System.Windows.Forms.Panel(); 34 | this.Toggle = new Optimizer.MoonToggle(); 35 | this.Panel.SuspendLayout(); 36 | this.SuspendLayout(); 37 | // 38 | // Label 39 | // 40 | this.Label.AutoSize = true; 41 | this.Label.Cursor = System.Windows.Forms.Cursors.Hand; 42 | this.Label.Location = new System.Drawing.Point(52, 1); 43 | this.Label.Name = "Label"; 44 | this.Label.Size = new System.Drawing.Size(45, 19); 45 | this.Label.TabIndex = 1; 46 | this.Label.Text = "label1"; 47 | this.Label.Click += new System.EventHandler(this.Label_Click); 48 | this.Label.MouseEnter += new System.EventHandler(this.Label_MouseEnter); 49 | this.Label.MouseLeave += new System.EventHandler(this.Label_MouseLeave); 50 | this.Label.MouseHover += new System.EventHandler(this.Label_MouseHover); 51 | // 52 | // Panel 53 | // 54 | this.Panel.Controls.Add(this.Label); 55 | this.Panel.Controls.Add(this.Toggle); 56 | this.Panel.Dock = System.Windows.Forms.DockStyle.Fill; 57 | this.Panel.Location = new System.Drawing.Point(0, 0); 58 | this.Panel.Name = "Panel"; 59 | this.Panel.Size = new System.Drawing.Size(334, 25); 60 | this.Panel.TabIndex = 0; 61 | // 62 | // Toggle 63 | // 64 | this.Toggle.AutoSize = true; 65 | this.Toggle.ForeColor = System.Drawing.Color.White; 66 | this.Toggle.Location = new System.Drawing.Point(0, 1); 67 | this.Toggle.MinimumSize = new System.Drawing.Size(46, 22); 68 | this.Toggle.Name = "Toggle"; 69 | this.Toggle.Size = new System.Drawing.Size(46, 22); 70 | this.Toggle.TabIndex = 2; 71 | this.Toggle.UseVisualStyleBackColor = true; 72 | this.Toggle.CheckedChanged += new System.EventHandler(this.Toggle_CheckedChanged); 73 | // 74 | // ToggleCard 75 | // 76 | this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); 77 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; 78 | this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); 79 | this.Controls.Add(this.Panel); 80 | this.DoubleBuffered = true; 81 | this.Font = new System.Drawing.Font("Segoe UI Semibold", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 82 | this.ForeColor = System.Drawing.Color.White; 83 | this.Name = "ToggleCard"; 84 | this.Size = new System.Drawing.Size(334, 25); 85 | this.Panel.ResumeLayout(false); 86 | this.Panel.PerformLayout(); 87 | this.ResumeLayout(false); 88 | 89 | } 90 | 91 | #endregion 92 | private System.Windows.Forms.Panel Panel; 93 | internal System.Windows.Forms.Label Label; 94 | internal MoonToggle Toggle; 95 | } 96 | } 97 | -------------------------------------------------------------------------------- /Optimizer/Controls/ToggleCard.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Drawing; 3 | using System.Windows.Forms; 4 | 5 | namespace Optimizer 6 | { 7 | public sealed partial class ToggleCard : UserControl 8 | { 9 | public event EventHandler ToggleClicked; 10 | 11 | SubForm _subForm; 12 | 13 | public ToggleCard() 14 | { 15 | InitializeComponent(); 16 | 17 | this.DoubleBuffered = true; 18 | 19 | _subForm = new SubForm(); 20 | 21 | this.IsAccessible = true; 22 | Label.IsAccessible = true; 23 | Toggle.IsAccessible = true; 24 | Panel.IsAccessible = true; 25 | 26 | this.AccessibleName = LabelText; 27 | Label.AccessibleName = LabelText; 28 | Toggle.AccessibleName = LabelText; 29 | Panel.AccessibleName = LabelText; 30 | } 31 | 32 | public string LabelText 33 | { 34 | get { return Label.Text; } 35 | set 36 | { 37 | Label.Text = value; 38 | this.AccessibleName = value; 39 | Label.AccessibleName = value; 40 | Toggle.AccessibleName = value; 41 | Panel.AccessibleName = LabelText; 42 | } 43 | } 44 | 45 | public bool ToggleChecked 46 | { 47 | get { return Toggle.Checked; } 48 | set { Toggle.Checked = value; } 49 | } 50 | 51 | private void Toggle_CheckedChanged(object sender, EventArgs e) 52 | { 53 | if (ToggleClicked != null) ToggleClicked(sender, e); 54 | } 55 | 56 | private void Label_MouseLeave(object sender, EventArgs e) 57 | { 58 | Label.Font = new System.Drawing.Font(Label.Font, System.Drawing.FontStyle.Regular); 59 | Label.ForeColor = Color.White; 60 | } 61 | 62 | private void Label_MouseEnter(object sender, EventArgs e) 63 | { 64 | Label.Font = new System.Drawing.Font(Label.Font, System.Drawing.FontStyle.Underline); 65 | Label.ForeColor = OptionsHelper.ForegroundColor; 66 | } 67 | 68 | private void Label_Click(object sender, EventArgs e) 69 | { 70 | if (Label.Tag == null) return; 71 | _subForm.SetTip(Label.Tag.ToString()); 72 | _subForm.ShowDialog(this); 73 | } 74 | 75 | private void Label_MouseHover(object sender, EventArgs e) 76 | { 77 | Label.Font = new System.Drawing.Font(Label.Font, System.Drawing.FontStyle.Underline); 78 | Label.ForeColor = OptionsHelper.ForegroundColor; 79 | } 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /Optimizer/DebugHelper.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json.Linq; 2 | using System; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Windows.Forms; 6 | 7 | namespace Optimizer 8 | { 9 | // Collection of useful debugging methods and utilities 10 | internal sealed class DebugHelper 11 | { 12 | // For comparing and detecting missing keys between two translation JSON files 13 | internal static void FindDifferenceInTwoJsons() 14 | { 15 | JObject file1 = JObject.Parse(Properties.Resources.EN); 16 | JObject file2 = JObject.Parse(Properties.Resources.ID); 17 | 18 | var p1 = file1.Properties().ToList(); 19 | var p2 = file2.Properties().ToList(); 20 | 21 | var missingProps = p1.Where(expected => !p2.Where(actual => actual.Name == expected.Name).Any()); 22 | 23 | StringBuilder sb = new StringBuilder(); 24 | foreach (var x in missingProps) 25 | { 26 | sb.Append(x.Name + Environment.NewLine); 27 | } 28 | MessageBox.Show(sb.ToString()); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Optimizer/EmbeddedAssembly.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Reflection; 5 | using System.Security.Cryptography; 6 | 7 | namespace Optimizer 8 | { 9 | internal sealed class EmbeddedAssembly 10 | { 11 | static Dictionary _dictionary; 12 | 13 | internal static void Load(string embeddedResource, string fileName) 14 | { 15 | if (_dictionary == null) _dictionary = new Dictionary(); 16 | 17 | byte[] bytes = null; 18 | Assembly assembly = null; 19 | Assembly currentAssembly = Assembly.GetExecutingAssembly(); 20 | 21 | using (Stream stream = currentAssembly.GetManifestResourceStream(embeddedResource)) 22 | { 23 | if (stream == null) throw new Exception($"{embeddedResource} is not found in Embedded Resources."); 24 | 25 | bytes = new byte[(int)stream.Length]; 26 | stream.Read(bytes, 0, (int)stream.Length); 27 | 28 | try 29 | { 30 | assembly = Assembly.Load(bytes); 31 | 32 | _dictionary.Add(assembly.FullName, assembly); 33 | return; 34 | } 35 | catch (Exception ex) 36 | { 37 | Logger.LogError("EmbeddedAssembly.Load", ex.Message, ex.StackTrace); 38 | } 39 | } 40 | 41 | bool fileOk = false; 42 | string tempFile = string.Empty; 43 | 44 | using (SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider()) 45 | { 46 | string fileHash = BitConverter.ToString(sha1.ComputeHash(bytes)).Replace("-", string.Empty); 47 | 48 | tempFile = Path.GetTempPath() + fileName; 49 | 50 | if (File.Exists(tempFile)) 51 | { 52 | byte[] byteArray = File.ReadAllBytes(tempFile); 53 | string fileHash2 = BitConverter.ToString(sha1.ComputeHash(byteArray)).Replace("-", string.Empty); 54 | 55 | if (fileHash == fileHash2) 56 | { 57 | fileOk = true; 58 | } 59 | } 60 | else 61 | { 62 | fileOk = false; 63 | } 64 | } 65 | 66 | if (!fileOk) 67 | { 68 | File.WriteAllBytes(tempFile, bytes); 69 | } 70 | 71 | assembly = Assembly.LoadFile(tempFile); 72 | _dictionary.Add(assembly.FullName, assembly); 73 | } 74 | 75 | internal static Assembly Get(string assemblyFullName) 76 | { 77 | if (_dictionary == null || _dictionary.Count == 0) return null; 78 | if (_dictionary.ContainsKey(assemblyFullName)) return _dictionary[assemblyFullName]; 79 | return null; 80 | } 81 | } 82 | } 83 | -------------------------------------------------------------------------------- /Optimizer/ErrorLogger.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using System.Text; 4 | 5 | namespace Optimizer 6 | { 7 | internal static class Logger 8 | { 9 | internal static string ErrorLogFile = Path.Combine(CoreHelper.CoreFolder, "Optimizer.log"); 10 | 11 | static StringBuilder _silentReportLog; 12 | 13 | private static void LogErrorSilent(string functionName, string errorMessage, string errorStackTrace) 14 | { 15 | _silentReportLog.AppendLine(string.Format("[ERROR] [{0}] in function [{1}]", DateTime.Now.ToString(), functionName)); 16 | _silentReportLog.AppendLine(); 17 | _silentReportLog.AppendLine(errorMessage); 18 | _silentReportLog.AppendLine(); 19 | _silentReportLog.AppendLine(errorStackTrace); 20 | _silentReportLog.AppendLine(); 21 | _silentReportLog.AppendLine(); 22 | } 23 | 24 | internal static void LogInfoSilent(string message) 25 | { 26 | _silentReportLog.AppendLine($"[OK] {message}"); 27 | _silentReportLog.AppendLine(); 28 | } 29 | 30 | internal static void InitializeSilentReport() 31 | { 32 | _silentReportLog = new StringBuilder(); 33 | 34 | _silentReportLog.AppendLine(Utilities.GetWindowsDetails()); 35 | _silentReportLog.AppendLine(string.Format("Optimizer {0} - .NET Framework {1} - Experimental build: {2}", Program.GetCurrentVersionTostring(), Utilities.GetNETFramework(), Program.EXPERIMENTAL_BUILD)); 36 | _silentReportLog.AppendLine($"{DateTime.Now.ToLongDateString()} - {DateTime.Now.ToLongTimeString()}"); 37 | 38 | _silentReportLog.AppendLine(); 39 | _silentReportLog.AppendLine(); 40 | } 41 | 42 | internal static void GenerateSilentReport() 43 | { 44 | try 45 | { 46 | File.WriteAllText($"Optimizer.SilentReport.{DateTime.Now.ToString("yyyyMMddTHHmm")}.log", _silentReportLog.ToString()); 47 | } 48 | catch { } 49 | } 50 | 51 | internal static void LogError(string functionName, string errorMessage, string errorStackTrace) 52 | { 53 | if (Program.SILENT_MODE) 54 | { 55 | LogErrorSilent(functionName, errorMessage, errorStackTrace); 56 | return; 57 | } 58 | 59 | try 60 | { 61 | if (!File.Exists(ErrorLogFile) || (File.Exists(ErrorLogFile) && File.ReadAllText(ErrorLogFile).Trim() == string.Empty)) 62 | { 63 | File.AppendAllText(ErrorLogFile, Utilities.GetWindowsDetails()); 64 | File.AppendAllText(ErrorLogFile, Environment.NewLine); 65 | File.AppendAllText(ErrorLogFile, string.Format("Optimizer {0} - .NET Framework {1} - Experimental build: {2}", Program.GetCurrentVersionTostring(), Utilities.GetNETFramework(), Program.EXPERIMENTAL_BUILD)); 66 | File.AppendAllText(ErrorLogFile, Environment.NewLine); 67 | File.AppendAllText(ErrorLogFile, Environment.NewLine); 68 | File.AppendAllText(ErrorLogFile, Environment.NewLine); 69 | } 70 | 71 | File.AppendAllText(ErrorLogFile, string.Format("[ERROR] [{0}] in function [{1}]", DateTime.Now.ToString(), functionName)); 72 | File.AppendAllText(ErrorLogFile, Environment.NewLine); 73 | File.AppendAllText(ErrorLogFile, errorMessage); 74 | File.AppendAllText(ErrorLogFile, Environment.NewLine); 75 | File.AppendAllText(ErrorLogFile, Environment.NewLine); 76 | File.AppendAllText(ErrorLogFile, errorStackTrace); 77 | 78 | // seperator 79 | File.AppendAllText(ErrorLogFile, Environment.NewLine); 80 | File.AppendAllText(ErrorLogFile, Environment.NewLine); 81 | File.AppendAllText(ErrorLogFile, Environment.NewLine); 82 | } 83 | catch { } 84 | //finally 85 | //{ 86 | // if (!Options.CurrentOptions.DisableOptimizerTelemetry) 87 | // { 88 | // TelemetryHelper.GenerateTelemetryData(functionName, errorMessage, errorStackTrace); 89 | // } 90 | //} 91 | } 92 | } 93 | } 94 | -------------------------------------------------------------------------------- /Optimizer/FileHandleHelper.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Diagnostics; 4 | using System.Runtime.InteropServices; 5 | 6 | namespace Optimizer 7 | { 8 | public static class FileHandleHelper 9 | { 10 | public static List GetProcessesLockingFile(string path) 11 | { 12 | uint handle; 13 | string key = Guid.NewGuid().ToString(); 14 | int res = RmStartSession(out handle, 0, key); 15 | 16 | if (res != 0) return null; 17 | 18 | try 19 | { 20 | const int MORE_DATA = 234; 21 | uint pnProcInfoNeeded, pnProcInfo = 0, lpdwRebootReasons = RmRebootReasonNone; 22 | 23 | string[] resources = { path }; 24 | 25 | res = RmRegisterResources(handle, (uint)resources.Length, resources, 0, null, 0, null); 26 | 27 | if (res != 0) return null; 28 | 29 | res = RmGetList(handle, out pnProcInfoNeeded, ref pnProcInfo, null, ref lpdwRebootReasons); 30 | 31 | if (res == MORE_DATA) 32 | { 33 | return EnumerateProcesses(pnProcInfoNeeded, handle, lpdwRebootReasons); 34 | } 35 | else if (res != 0) return null; 36 | } 37 | finally 38 | { 39 | RmEndSession(handle); 40 | } 41 | 42 | return new List(); 43 | } 44 | 45 | 46 | [StructLayout(LayoutKind.Sequential)] 47 | public struct RM_UNIQUE_PROCESS 48 | { 49 | public int dwProcessId; 50 | public System.Runtime.InteropServices.ComTypes.FILETIME ProcessStartTime; 51 | } 52 | 53 | const int RmRebootReasonNone = 0; 54 | const int CCH_RM_MAX_APP_NAME = 255; 55 | const int CCH_RM_MAX_SVC_NAME = 63; 56 | 57 | public enum RM_APP_TYPE 58 | { 59 | RmUnknownApp = 0, 60 | RmMainWindow = 1, 61 | RmOtherWindow = 2, 62 | RmService = 3, 63 | RmExplorer = 4, 64 | RmConsole = 5, 65 | RmCritical = 1000 66 | } 67 | 68 | [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] 69 | public struct RM_PROCESS_INFO 70 | { 71 | public RM_UNIQUE_PROCESS Process; 72 | 73 | [MarshalAs(UnmanagedType.ByValTStr, SizeConst = CCH_RM_MAX_APP_NAME + 1)] public string strAppName; 74 | 75 | [MarshalAs(UnmanagedType.ByValTStr, SizeConst = CCH_RM_MAX_SVC_NAME + 1)] public string strServiceShortName; 76 | 77 | public RM_APP_TYPE ApplicationType; 78 | public uint AppStatus; 79 | public uint TSSessionId; 80 | [MarshalAs(UnmanagedType.Bool)] public bool bRestartable; 81 | } 82 | 83 | [DllImport("rstrtmgr.dll", CharSet = CharSet.Unicode)] 84 | static extern int RmRegisterResources(uint pSessionHandle, uint nFiles, string[] rgsFilenames, 85 | uint nApplications, [In] RM_UNIQUE_PROCESS[] rgApplications, uint nServices, 86 | string[] rgsServiceNames); 87 | 88 | [DllImport("rstrtmgr.dll", CharSet = CharSet.Auto)] 89 | static extern int RmStartSession(out uint pSessionHandle, int dwSessionFlags, string strSessionKey); 90 | 91 | [DllImport("rstrtmgr.dll")] 92 | static extern int RmEndSession(uint pSessionHandle); 93 | 94 | [DllImport("rstrtmgr.dll")] 95 | static extern int RmGetList(uint dwSessionHandle, out uint pnProcInfoNeeded, 96 | ref uint pnProcInfo, [In, Out] RM_PROCESS_INFO[] rgAffectedApps, 97 | ref uint lpdwRebootReasons); 98 | 99 | private static List EnumerateProcesses(uint pnProcInfoNeeded, uint handle, uint lpdwRebootReasons) 100 | { 101 | var processes = new List(10); 102 | 103 | var processInfo = new RM_PROCESS_INFO[pnProcInfoNeeded]; 104 | var pnProcInfo = pnProcInfoNeeded; 105 | 106 | // Get the list 107 | var res = RmGetList(handle, out pnProcInfoNeeded, ref pnProcInfo, processInfo, ref lpdwRebootReasons); 108 | 109 | if (res != 0) return null; 110 | 111 | for (int i = 0; i < pnProcInfo; i++) 112 | { 113 | try 114 | { 115 | processes.Add(Process.GetProcessById(processInfo[i].Process.dwProcessId)); 116 | } 117 | catch { } 118 | } 119 | return processes; 120 | } 121 | } 122 | } 123 | -------------------------------------------------------------------------------- /Optimizer/Forms/AboutForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Diagnostics; 3 | using System.Windows.Forms; 4 | 5 | namespace Optimizer 6 | { 7 | public sealed partial class AboutForm : Form 8 | { 9 | public AboutForm() 10 | { 11 | InitializeComponent(); 12 | OptionsHelper.ApplyTheme(this); 13 | 14 | pictureBox1.BackColor = OptionsHelper.CurrentOptions.Theme; 15 | } 16 | 17 | private void About_Load(object sender, EventArgs e) 18 | { 19 | t1.Interval = 50; 20 | t2.Interval = 50; 21 | 22 | t1.Start(); 23 | } 24 | 25 | private void t1_Tick(object sender, EventArgs e) 26 | { 27 | string s0 = ""; 28 | string s1 = "O"; 29 | string s2 = "Op"; 30 | string s3 = "Opt"; 31 | string s4 = "Opti"; 32 | string s5 = "Optim"; 33 | string s6 = "Optimi"; 34 | string s7 = "Optimiz"; 35 | string s8 = "Optimize"; 36 | string s9 = "Optimizer"; 37 | 38 | switch (l1.Text) 39 | { 40 | case "": 41 | l1.Text = s1; 42 | break; 43 | case "O": 44 | l1.Text = s2; 45 | break; 46 | case "Op": 47 | l1.Text = s3; 48 | break; 49 | case "Opt": 50 | l1.Text = s4; 51 | break; 52 | case "Opti": 53 | l1.Text = s5; 54 | break; 55 | case "Optim": 56 | l1.Text = s6; 57 | break; 58 | case "Optimi": 59 | l1.Text = s7; 60 | break; 61 | case "Optimiz": 62 | l1.Text = s8; 63 | break; 64 | case "Optimize": 65 | l1.Text = s9; 66 | t1.Stop(); 67 | t2.Start(); 68 | break; 69 | case "Optimizer": 70 | l1.Text = s0; 71 | break; 72 | } 73 | } 74 | 75 | private void t2_Tick(object sender, EventArgs e) 76 | { 77 | string s0 = ""; 78 | string s1 = "d"; 79 | string s2 = "de"; 80 | string s3 = "dea"; 81 | string s4 = "dead"; 82 | string s5 = "deadm"; 83 | string s6 = "deadmo"; 84 | string s7 = "deadmoo"; 85 | string s8 = "deadmoon"; 86 | string s9 = "deadmoon © "; 87 | string s10 = "deadmoon © ∞"; 88 | 89 | switch (l2.Text) 90 | { 91 | case "": 92 | l2.Text = s1; 93 | break; 94 | case "d": 95 | l2.Text = s2; 96 | break; 97 | case "de": 98 | l2.Text = s3; 99 | break; 100 | case "dea": 101 | l2.Text = s4; 102 | break; 103 | case "dead": 104 | l2.Text = s5; 105 | break; 106 | case "deadm": 107 | l2.Text = s6; 108 | break; 109 | case "deadmo": 110 | l2.Text = s7; 111 | break; 112 | case "deadmoo": 113 | l2.Text = s8; 114 | break; 115 | case "deadmoon": 116 | l2.Text = s9; 117 | break; 118 | case "deadmoon © ": 119 | l2.Text = s10; 120 | t2.Stop(); 121 | break; 122 | case "deadmoon © ∞": 123 | l2.Text = s0; 124 | break; 125 | } 126 | } 127 | 128 | private void l2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 129 | { 130 | Process.Start("https://github.com/hellzerg/optimizer"); 131 | } 132 | } 133 | } 134 | -------------------------------------------------------------------------------- /Optimizer/Forms/FileUnlockForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Data; 4 | using System.Diagnostics; 5 | using System.IO; 6 | using System.Linq; 7 | using System.Windows.Forms; 8 | 9 | namespace Optimizer 10 | { 11 | public sealed partial class FileUnlockForm : Form 12 | { 13 | List _lockingProcesses; 14 | 15 | public FileUnlockForm() 16 | { 17 | InitializeComponent(); 18 | CheckForIllegalCrossThreadCalls = false; 19 | OptionsHelper.ApplyTheme(this); 20 | 21 | radioFile.Text = OptionsHelper.TranslationList["radioFile"].ToString(); 22 | btnKill.Text = OptionsHelper.TranslationList["btnKill"].ToString(); 23 | } 24 | 25 | private void FileUnlockForm_Load(object sender, EventArgs e) 26 | { 27 | 28 | } 29 | 30 | private void btnFind_Click(object sender, EventArgs e) 31 | { 32 | if (string.IsNullOrEmpty(txtFile.Text)) return; 33 | if (!File.Exists(txtFile.Text)) return; 34 | 35 | _lockingProcesses = FileHandleHelper.GetProcessesLockingFile(txtFile.Text); 36 | 37 | if (_lockingProcesses == null) return; 38 | 39 | listProcesses.Items.Clear(); 40 | listProcesses.Items.AddRange(_lockingProcesses.Select(x => $"[{x.Id}] {x.ProcessName}").ToArray()); 41 | } 42 | 43 | private void btnKill_Click(object sender, EventArgs e) 44 | { 45 | if (listProcesses.CheckedItems.Count <= 0) return; 46 | 47 | foreach (string x in listProcesses.CheckedItems) 48 | { 49 | IEnumerable prs = Process.GetProcesses().Where(pr => pr.ProcessName == x.Replace(x.Substring(0, x.IndexOf("]") + 1), string.Empty).Trim()); 50 | foreach (Process z in prs) 51 | { 52 | try 53 | { 54 | z.Kill(); 55 | } 56 | catch { continue; } 57 | } 58 | } 59 | 60 | btnFind.PerformClick(); 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /Optimizer/Forms/HelperForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Windows.Forms; 5 | 6 | namespace Optimizer 7 | { 8 | public sealed partial class HelperForm : System.Windows.Forms.Form 9 | { 10 | MainForm _main; 11 | MessageType _type; 12 | 13 | private void Confirm() 14 | { 15 | if (_type == MessageType.Error) 16 | { 17 | this.Close(); 18 | } 19 | if (_type == MessageType.Startup) 20 | { 21 | _main.RemoveAllStartupItems(); 22 | } 23 | if (_type == MessageType.Restart) 24 | { 25 | OptionsHelper.SaveSettings(); 26 | Utilities.Reboot(); 27 | } 28 | if (_type == MessageType.Hosts) 29 | { 30 | _main.RemoveAllHostsEntries(); 31 | } 32 | if (_type == MessageType.Integrator) 33 | { 34 | _main.RemoveAllDesktopItems(); 35 | } 36 | } 37 | 38 | internal HelperForm(MainForm main, MessageType m, string text) 39 | { 40 | InitializeComponent(); 41 | OptionsHelper.ApplyTheme(this); 42 | 43 | _main = main; 44 | _type = m; 45 | 46 | lblMessage.Text = text; 47 | 48 | if (_type == MessageType.Error) 49 | { 50 | btnNo.Visible = false; 51 | btnYes.Text = OptionsHelper.TranslationList["btnOk"]; 52 | 53 | this.AcceptButton = btnNo; 54 | this.AcceptButton = btnYes; 55 | this.CancelButton = btnNo; 56 | this.CancelButton = btnYes; 57 | } 58 | 59 | // translate UI elements 60 | if (OptionsHelper.CurrentOptions.LanguageCode != LanguageCode.EN) Translate(); 61 | } 62 | 63 | private void btnNo_Click(object sender, EventArgs e) 64 | { 65 | this.Close(); 66 | } 67 | 68 | private void btnYes_Click(object sender, EventArgs e) 69 | { 70 | Confirm(); 71 | this.Close(); 72 | } 73 | 74 | private void Messager_Load(object sender, EventArgs e) 75 | { 76 | CheckForIllegalCrossThreadCalls = false; 77 | this.BringToFront(); 78 | } 79 | 80 | private void Translate() 81 | { 82 | Dictionary translationList = OptionsHelper.TranslationList.ToObject>(); 83 | 84 | Control element; 85 | 86 | foreach (var x in translationList) 87 | { 88 | if (x.Key == null || x.Key == string.Empty) continue; 89 | element = this.Controls.Find(x.Key, true).FirstOrDefault(); 90 | 91 | if (element == null) continue; 92 | 93 | element.Text = x.Value; 94 | } 95 | } 96 | 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /Optimizer/Forms/HostsEditorForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Windows.Forms; 5 | 6 | namespace Optimizer 7 | { 8 | public sealed partial class HostsEditorForm : Form 9 | { 10 | string[] _toSave = null; 11 | 12 | public HostsEditorForm() 13 | { 14 | InitializeComponent(); 15 | OptionsHelper.ApplyTheme(this); 16 | 17 | if (HostsHelper.GetReadOnly()) 18 | { 19 | savebtn.Enabled = false; 20 | } 21 | 22 | // translate UI elements 23 | if (OptionsHelper.CurrentOptions.LanguageCode != LanguageCode.EN) Translate(); 24 | } 25 | 26 | private void HostsEditor_Load(object sender, EventArgs e) 27 | { 28 | //foreach (string line in HostsHelper.ReadHosts()) 29 | //{ 30 | // textBox1.Text += line + HostsHelper.NewLine; 31 | //} 32 | 33 | textBox1.Text = HostsHelper.ReadHostsFast(); 34 | 35 | textBox1.Focus(); 36 | } 37 | 38 | private void Translate() 39 | { 40 | this.Text = OptionsHelper.TranslationList["HostsEditorForm"]; 41 | Dictionary translationList = OptionsHelper.TranslationList.ToObject>(); 42 | 43 | Control element; 44 | 45 | foreach (var x in translationList) 46 | { 47 | if (x.Key == null || x.Key == string.Empty) continue; 48 | element = this.Controls.Find(x.Key, true).FirstOrDefault(); 49 | 50 | if (element == null) continue; 51 | 52 | element.Text = x.Value; 53 | } 54 | } 55 | 56 | private void button1_Click(object sender, EventArgs e) 57 | { 58 | this.Close(); 59 | } 60 | 61 | private void button7_Click(object sender, EventArgs e) 62 | { 63 | _toSave = textBox1.Lines; 64 | HostsHelper.SaveHosts(_toSave); 65 | 66 | this.Close(); 67 | } 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /Optimizer/Forms/InfoForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Windows.Forms; 5 | 6 | namespace Optimizer 7 | { 8 | public sealed partial class InfoForm : Form 9 | { 10 | public InfoForm(string info) 11 | { 12 | InitializeComponent(); 13 | CheckForIllegalCrossThreadCalls = false; 14 | 15 | OptionsHelper.ApplyTheme(this); 16 | 17 | txtInfo.Text = info; 18 | 19 | // translate UI elements 20 | if (OptionsHelper.CurrentOptions.LanguageCode != LanguageCode.EN) Translate(); 21 | } 22 | 23 | private void Translate() 24 | { 25 | Dictionary translationList = OptionsHelper.TranslationList.ToObject>(); 26 | 27 | Control element; 28 | 29 | foreach (var x in translationList) 30 | { 31 | if (x.Key == null || x.Key == string.Empty) continue; 32 | element = this.Controls.Find(x.Key, true).FirstOrDefault(); 33 | 34 | if (element == null) continue; 35 | 36 | element.Text = x.Value; 37 | } 38 | } 39 | 40 | private void btnOK_Click(object sender, EventArgs e) 41 | { 42 | this.Close(); 43 | } 44 | 45 | private void Info_Load(object sender, EventArgs e) 46 | { 47 | 48 | } 49 | 50 | private void copyIPB_Click(object sender, EventArgs e) 51 | { 52 | try 53 | { 54 | Clipboard.SetText(txtInfo.Text); 55 | } 56 | catch { } 57 | } 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /Optimizer/Forms/SplashForm.Designer.cs: -------------------------------------------------------------------------------- 1 |  2 | namespace Optimizer 3 | { 4 | partial class SplashForm 5 | { 6 | /// 7 | /// Required designer variable. 8 | /// 9 | private System.ComponentModel.IContainer components = null; 10 | 11 | /// 12 | /// Clean up any resources being used. 13 | /// 14 | /// true if managed resources should be disposed; otherwise, false. 15 | protected override void Dispose(bool disposing) 16 | { 17 | if (disposing && (components != null)) 18 | { 19 | components.Dispose(); 20 | } 21 | base.Dispose(disposing); 22 | } 23 | 24 | #region Windows Form Designer generated code 25 | 26 | /// 27 | /// Required method for Designer support - do not modify 28 | /// the contents of this method with the code editor. 29 | /// 30 | private void InitializeComponent() 31 | { 32 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SplashForm)); 33 | this.LoadingStatus = new System.Windows.Forms.Label(); 34 | this.pictureBox2 = new System.Windows.Forms.PictureBox(); 35 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); 36 | this.SuspendLayout(); 37 | // 38 | // LoadingStatus 39 | // 40 | this.LoadingStatus.Dock = System.Windows.Forms.DockStyle.Bottom; 41 | this.LoadingStatus.Font = new System.Drawing.Font("Segoe UI Semibold", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 42 | this.LoadingStatus.ForeColor = System.Drawing.Color.Silver; 43 | this.LoadingStatus.Location = new System.Drawing.Point(0, 215); 44 | this.LoadingStatus.Name = "LoadingStatus"; 45 | this.LoadingStatus.Size = new System.Drawing.Size(458, 43); 46 | this.LoadingStatus.TabIndex = 2; 47 | this.LoadingStatus.Text = "loading settings"; 48 | this.LoadingStatus.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; 49 | // 50 | // pictureBox2 51 | // 52 | this.pictureBox2.Dock = System.Windows.Forms.DockStyle.Fill; 53 | this.pictureBox2.Image = global::Optimizer.Properties.Resources.banner; 54 | this.pictureBox2.Location = new System.Drawing.Point(0, 0); 55 | this.pictureBox2.Name = "pictureBox2"; 56 | this.pictureBox2.Size = new System.Drawing.Size(458, 258); 57 | this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; 58 | this.pictureBox2.TabIndex = 1; 59 | this.pictureBox2.TabStop = false; 60 | // 61 | // SplashForm 62 | // 63 | this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); 64 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; 65 | this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); 66 | this.ClientSize = new System.Drawing.Size(458, 258); 67 | this.Controls.Add(this.LoadingStatus); 68 | this.Controls.Add(this.pictureBox2); 69 | this.DoubleBuffered = true; 70 | this.Font = new System.Drawing.Font("Segoe UI Semibold", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 71 | this.ForeColor = System.Drawing.Color.White; 72 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; 73 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); 74 | this.MaximizeBox = false; 75 | this.MinimizeBox = false; 76 | this.Name = "SplashForm"; 77 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; 78 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); 79 | this.ResumeLayout(false); 80 | 81 | } 82 | 83 | #endregion 84 | internal System.Windows.Forms.Label LoadingStatus; 85 | private System.Windows.Forms.PictureBox pictureBox2; 86 | } 87 | } -------------------------------------------------------------------------------- /Optimizer/Forms/SplashForm.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Forms; 2 | 3 | namespace Optimizer 4 | { 5 | public sealed partial class SplashForm : Form 6 | { 7 | public SplashForm() 8 | { 9 | InitializeComponent(); 10 | 11 | this.DoubleBuffered = true; 12 | CheckForIllegalCrossThreadCalls = false; 13 | 14 | LoadingStatus.Font = FontHelper.Poppins15; 15 | 16 | pictureBox2.BackColor = OptionsHelper.CurrentOptions.Theme; 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Optimizer/Forms/StartupPreviewForm.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace Optimizer 2 | { 3 | partial class StartupPreviewForm 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.panel1 = new System.Windows.Forms.Panel(); 32 | this.listPreview = new MoonList(); 33 | this.panel1.SuspendLayout(); 34 | this.SuspendLayout(); 35 | // 36 | // panel1 37 | // 38 | this.panel1.Controls.Add(this.listPreview); 39 | this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; 40 | this.panel1.Location = new System.Drawing.Point(0, 0); 41 | this.panel1.Name = "panel1"; 42 | this.panel1.Size = new System.Drawing.Size(757, 432); 43 | this.panel1.TabIndex = 0; 44 | // 45 | // listPreview 46 | // 47 | this.listPreview.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); 48 | this.listPreview.BorderStyle = System.Windows.Forms.BorderStyle.None; 49 | this.listPreview.Dock = System.Windows.Forms.DockStyle.Fill; 50 | this.listPreview.Font = new System.Drawing.Font("Segoe UI Semibold", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 51 | this.listPreview.ForeColor = System.Drawing.Color.White; 52 | this.listPreview.FormattingEnabled = true; 53 | this.listPreview.HorizontalScrollbar = true; 54 | this.listPreview.ItemHeight = 17; 55 | this.listPreview.Location = new System.Drawing.Point(0, 0); 56 | this.listPreview.Name = "listPreview"; 57 | this.listPreview.SelectionMode = System.Windows.Forms.SelectionMode.None; 58 | this.listPreview.Size = new System.Drawing.Size(757, 432); 59 | this.listPreview.TabIndex = 0; 60 | // 61 | // StartupPreviewForm 62 | // 63 | this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); 64 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; 65 | this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); 66 | this.ClientSize = new System.Drawing.Size(757, 432); 67 | this.Controls.Add(this.panel1); 68 | this.DoubleBuffered = true; 69 | this.Font = new System.Drawing.Font("Segoe UI Semibold", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 70 | this.ForeColor = System.Drawing.Color.White; 71 | this.MaximizeBox = false; 72 | this.MinimizeBox = false; 73 | this.Name = "StartupPreviewForm"; 74 | this.ShowIcon = false; 75 | this.ShowInTaskbar = false; 76 | this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; 77 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; 78 | this.Text = "Startup Items Preview"; 79 | this.Load += new System.EventHandler(this.StartupPreviewForm_Load); 80 | this.panel1.ResumeLayout(false); 81 | this.ResumeLayout(false); 82 | 83 | } 84 | 85 | #endregion 86 | 87 | private System.Windows.Forms.Panel panel1; 88 | private MoonList listPreview; 89 | } 90 | } -------------------------------------------------------------------------------- /Optimizer/Forms/StartupPreviewForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Windows.Forms; 6 | 7 | namespace Optimizer 8 | { 9 | public sealed partial class StartupPreviewForm : Form 10 | { 11 | string _token = string.Empty; 12 | 13 | public StartupPreviewForm(List items) 14 | { 15 | InitializeComponent(); 16 | 17 | CheckForIllegalCrossThreadCalls = false; 18 | OptionsHelper.ApplyTheme(this); 19 | 20 | // translate UI elements 21 | if (OptionsHelper.CurrentOptions.LanguageCode != LanguageCode.EN) Translate(); 22 | 23 | foreach (BackupStartupItem x in items) 24 | { 25 | if (File.Exists(SanitizePath(x.FileLocation))) 26 | { 27 | _token = "[✓] "; 28 | } 29 | else 30 | { 31 | _token = "[⚠] "; 32 | } 33 | 34 | listPreview.Items.Add(_token + x.Name + " - " + x.FileLocation); 35 | } 36 | } 37 | 38 | private void Translate() 39 | { 40 | this.Text = OptionsHelper.TranslationList["StartupPreviewForm"]; 41 | 42 | Dictionary translationList = OptionsHelper.TranslationList.ToObject>(); 43 | 44 | Control element; 45 | 46 | foreach (var x in translationList) 47 | { 48 | if (x.Key == null || x.Key == string.Empty) continue; 49 | element = this.Controls.Find(x.Key, true).FirstOrDefault(); 50 | 51 | if (element == null) continue; 52 | 53 | element.Text = x.Value; 54 | } 55 | } 56 | 57 | private void StartupPreviewForm_Load(object sender, EventArgs e) 58 | { 59 | this.Focus(); 60 | } 61 | 62 | private string SanitizePath(string s) 63 | { 64 | s = s.Replace("\"", string.Empty); 65 | int i; 66 | 67 | while (s.Contains("/")) 68 | { 69 | i = s.LastIndexOf("/"); 70 | s = s.Substring(0, i); 71 | } 72 | 73 | i = s.IndexOf(".exe"); 74 | s = s.Substring(0, i + 4); 75 | 76 | return s.Trim(); 77 | } 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /Optimizer/Forms/SubForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Windows.Forms; 3 | 4 | namespace Optimizer 5 | { 6 | public sealed partial class SubForm : Form 7 | { 8 | public SubForm() 9 | { 10 | InitializeComponent(); 11 | 12 | CheckForIllegalCrossThreadCalls = false; 13 | this.DoubleBuffered = true; 14 | OptionsHelper.ApplyTheme(this); 15 | 16 | btnStart.Focus(); 17 | btnStart.Select(); 18 | } 19 | 20 | internal void SetTip(string tip) 21 | { 22 | txtInfo.Text = tip; 23 | btnStart.Focus(); 24 | btnStart.Select(); 25 | } 26 | 27 | private void btnStart_Click(object sender, EventArgs e) 28 | { 29 | this.Close(); 30 | } 31 | 32 | private void SubForm_Load(object sender, EventArgs e) 33 | { 34 | OptionsHelper.ApplyTheme(this); 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /Optimizer/Forms/UpdateForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Drawing; 3 | using System.Windows.Forms; 4 | 5 | namespace Optimizer 6 | { 7 | public sealed partial class UpdateForm : Form 8 | { 9 | public UpdateForm(string message, bool newUpdate, string changelog, string latestVersion) 10 | { 11 | InitializeComponent(); 12 | CheckForIllegalCrossThreadCalls = false; 13 | OptionsHelper.ApplyTheme(this); 14 | 15 | txtMessage.Text = message; 16 | 17 | if (newUpdate) 18 | { 19 | this.Size = new Size(600, 545); 20 | btnOK.Text = OptionsHelper.TranslationList["btnYes"].ToString(); 21 | btnNo.Text = OptionsHelper.TranslationList["btnNo"].ToString(); 22 | btnNo.Visible = true; 23 | txtChanges.Text = OptionsHelper.TranslationList["btnChangelog"].ToString(); 24 | txtVersions.Text = $"{Program.GetCurrentVersionTostring()} → {latestVersion}"; 25 | txtVersions.Visible = true; 26 | 27 | btnOK.DialogResult = DialogResult.Yes; 28 | btnNo.DialogResult = DialogResult.No; 29 | 30 | txtInfo.Text = changelog; 31 | txtInfo.Visible = true; 32 | txtChanges.Visible = true; 33 | } 34 | else 35 | { 36 | this.Size = new Size(600, 188); 37 | btnOK.Text = OptionsHelper.TranslationList["btnAbout"].ToString(); 38 | btnNo.Visible = false; 39 | txtVersions.Visible = false; 40 | 41 | btnOK.DialogResult = DialogResult.OK; 42 | 43 | txtInfo.Visible = false; 44 | txtChanges.Visible = false; 45 | } 46 | } 47 | 48 | private void UpdateForm_Load(object sender, EventArgs e) 49 | { 50 | 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /Optimizer/Models/AppInfo.cs: -------------------------------------------------------------------------------- 1 | namespace Optimizer 2 | { 3 | /// 4 | /// Represents an app from feed, containing: 5 | /// - Title 6 | /// - Download link for both 32 and 64 bit variant 7 | /// - Image 8 | /// - Group 9 | /// 10 | public sealed class AppInfo 11 | { 12 | public string Title { get; set; } 13 | public string Link64 { get; set; } 14 | public string Link { get; set; } 15 | public string Tag { get; set; } 16 | public string Image { get; set; } 17 | public string Group { get; set; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Optimizer/Models/Enums.cs: -------------------------------------------------------------------------------- 1 | namespace Optimizer 2 | { 3 | internal enum LogType 4 | { 5 | Information, 6 | Error, 7 | } 8 | 9 | internal enum EventType 10 | { 11 | Modified, 12 | Renamed, 13 | Created, 14 | Deleted 15 | } 16 | 17 | internal enum WindowsVersion 18 | { 19 | Unsupported = 0, 20 | Windows7 = 7, 21 | Windows8 = 8, 22 | Windows10 = 10, 23 | Windows11 = 11 24 | } 25 | 26 | public enum StartupItemLocation 27 | { 28 | LMStartupFolder, 29 | CUStartupFolder, 30 | HKLM, 31 | HKLMWoW, 32 | HKCU 33 | } 34 | 35 | public enum StartupItemType 36 | { 37 | None, 38 | Run, 39 | RunOnce 40 | } 41 | 42 | internal enum MessageType 43 | { 44 | Error, 45 | Startup, 46 | Restart, 47 | Hosts, 48 | Integrator 49 | } 50 | 51 | internal enum DesktopItemType 52 | { 53 | Program, 54 | Folder, 55 | Link, 56 | File, 57 | Command 58 | } 59 | 60 | internal enum DesktopTypePosition 61 | { 62 | Top, 63 | Middle, 64 | Bottom 65 | } 66 | 67 | internal enum RecycleFlag : int 68 | { 69 | SHERB_NOCONFIRMATION = 0x00000001, 70 | SHERB_NOPROGRESSUI = 0x00000001, 71 | SHERB_NOSOUND = 0x00000004 72 | } 73 | 74 | public enum ToggleSwitchAlignment 75 | { 76 | Near, 77 | Center, 78 | Far 79 | } 80 | 81 | public enum ToggleSwitchButtonAlignment 82 | { 83 | Left, 84 | Center, 85 | Right 86 | } 87 | 88 | public enum RestartType 89 | { 90 | Normal, 91 | SafeMode, 92 | DisableDefender, 93 | EnableDefender 94 | } 95 | 96 | public enum LanguageCode 97 | { 98 | EN, // english 99 | RU, // russian 100 | EL, // hellenic 101 | TR, // turkish 102 | DE, // german 103 | ES, // spanish 104 | PT, // portuguese 105 | FR, // french 106 | IT, // italian 107 | CN, // chinese 108 | CZ, // czech 109 | TW, // taiwan 110 | KO, // korean 111 | PL, // polish 112 | AR, // arabic 113 | KU, // kurdish 114 | HU, // hungarian 115 | RO, // romanian 116 | NL, // dutch 117 | UA, // ukrainian 118 | JA, // japanese 119 | FA, // farsi 120 | NE, // nepali 121 | BG, // bulgarian 122 | VN, // vietnamese 123 | UR, // urdu 124 | ID, // indonesian 125 | HR // croatian 126 | } 127 | } 128 | -------------------------------------------------------------------------------- /Optimizer/Models/StartupBackupItem.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Optimizer 4 | { 5 | /// 6 | /// Represents a backup of a Windows base startup item 7 | /// 8 | [Serializable] 9 | public sealed class BackupStartupItem 10 | { 11 | public string Name { get; set; } 12 | public string FileLocation { get; set; } 13 | public string RegistryLocation { get; set; } 14 | public string StartupType { get; set; } 15 | 16 | public BackupStartupItem(string name, string fileLocation, string registryLocation, string startupType) 17 | { 18 | Name = name; 19 | FileLocation = fileLocation; 20 | RegistryLocation = registryLocation; 21 | StartupType = startupType; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Optimizer/Models/StartupItem.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Win32; 2 | using System; 3 | using System.IO; 4 | 5 | namespace Optimizer 6 | { 7 | /// 8 | /// Represents a base Windows startup item 9 | /// 10 | internal class StartupItem 11 | { 12 | internal string Name { get; set; } 13 | internal string FileLocation { get; set; } 14 | internal StartupItemLocation RegistryLocation { get; set; } 15 | internal StartupItemType StartupType { get; set; } 16 | 17 | internal virtual void Remove() { } 18 | internal virtual void LocateFile() { } 19 | internal virtual void LocateKey() { } 20 | 21 | public override string ToString() 22 | { 23 | if (RegistryLocation == StartupItemLocation.LMStartupFolder) return RegistryLocation.ToString(); 24 | return string.Format("{0}:{1}", RegistryLocation, StartupType); 25 | } 26 | } 27 | 28 | internal sealed class FolderStartupItem : StartupItem 29 | { 30 | internal string Shortcut { get; set; } 31 | 32 | internal override void Remove() 33 | { 34 | try 35 | { 36 | if (File.Exists(Shortcut)) 37 | { 38 | File.Delete(Shortcut); 39 | } 40 | } 41 | catch (Exception ex) 42 | { 43 | Logger.LogError("FolderStartupItem.Remove", ex.Message, ex.StackTrace); 44 | } 45 | } 46 | 47 | internal override void LocateFile() 48 | { 49 | try 50 | { 51 | Utilities.FindFile(FileLocation); 52 | } 53 | catch (Exception ex) 54 | { 55 | Logger.LogError("FolderStartupItem.LocateFile", ex.Message, ex.StackTrace); 56 | } 57 | } 58 | } 59 | 60 | internal sealed class RegistryStartupItem : StartupItem 61 | { 62 | internal RegistryKey Key { get; set; } 63 | 64 | internal override void LocateKey() 65 | { 66 | try 67 | { 68 | Utilities.FindKeyInRegistry(Key.ToString()); 69 | } 70 | catch (Exception ex) 71 | { 72 | Logger.LogError("RegistryStartupItem.LocateKey", ex.Message, ex.StackTrace); 73 | } 74 | } 75 | 76 | internal override void Remove() 77 | { 78 | try 79 | { 80 | Key.DeleteValue(Name, false); 81 | } 82 | catch (Exception ex) 83 | { 84 | Logger.LogError("RegistryStartupItem.Remove", ex.Message, ex.StackTrace); 85 | } 86 | } 87 | 88 | internal override void LocateFile() 89 | { 90 | try 91 | { 92 | Utilities.FindFile(SanitizePath(FileLocation)); 93 | } 94 | catch (Exception ex) 95 | { 96 | Logger.LogError("RegistryStartupItem.LocateFile", ex.Message, ex.StackTrace); 97 | } 98 | } 99 | 100 | internal string SanitizePath(string s) 101 | { 102 | s = s.Replace("\"", string.Empty); 103 | int i; 104 | 105 | while (s.Contains("/")) 106 | { 107 | i = s.LastIndexOf("/"); 108 | s = s.Substring(0, i); 109 | } 110 | 111 | i = s.IndexOf(".exe"); 112 | s = s.Substring(0, i + 4); 113 | 114 | return s.Trim(); 115 | } 116 | } 117 | } 118 | -------------------------------------------------------------------------------- /Optimizer/Models/TelemetryData.cs: -------------------------------------------------------------------------------- 1 | //using System; 2 | 3 | //namespace Optimizer 4 | //{ 5 | // [Serializable] 6 | // public sealed class TelemetryData 7 | // { 8 | // // General data 9 | // public string Timestamp { get; set; } 10 | // public string Country { get; set; } 11 | 12 | // // Windows environment info 13 | // public string WindowsVersion { get; set; } 14 | // public string DotNetVersion { get; set; } 15 | 16 | // // Optimizer-specific details 17 | // public string OptimizerVersion { get; set; } 18 | // public string LanguageCode { get; set; } 19 | // public string TelemetryID { get; set; } 20 | // public string UnsafeMode { get; set; } 21 | // public string ExperimentalBuild { get; set; } 22 | // public string SavedOptions { get; set; } 23 | 24 | // // Exception details 25 | // public string FunctionName { get; set; } 26 | // public string ErrorMessage { get; set; } 27 | // public string StackTrace { get; set; } 28 | // } 29 | 30 | // [Serializable] 31 | // public sealed class GeoLookupResult 32 | // { 33 | // public string status { get; set; } 34 | // public string country { get; set; } 35 | // } 36 | //} 37 | -------------------------------------------------------------------------------- /Optimizer/Models/WorkEvent.cs: -------------------------------------------------------------------------------- 1 | //using System; 2 | //using System.Collections.Generic; 3 | //using System.Linq; 4 | //using System.Text; 5 | //using System.Threading.Tasks; 6 | 7 | //namespace Optimizer.Models { 8 | // public sealed class WorkEvent : List { 9 | // static object _lockObject = new object(); 10 | // static object _syncRoot = new object(); 11 | // static volatile WorkEvent _instance; 12 | 13 | // private WorkEvent() { } 14 | 15 | // public static WorkEvent Instance { 16 | // get { 17 | // if (_instance == null) { 18 | // lock (_syncRoot) { 19 | // if (_instance == null) { 20 | // _instance = new WorkEvent(); 21 | // } 22 | // } 23 | // } 24 | 25 | // return _instance; 26 | // } 27 | // } 28 | 29 | // public new void Add(WorkEventArgs wea) { 30 | // lock (_lockObject) { 31 | // base.Add(wea); 32 | // } 33 | // } 34 | 35 | // public new void Remove(WorkEventArgs wea) { 36 | // lock (_lockObject) { 37 | // base.Remove(wea); 38 | // } 39 | // } 40 | 41 | // public WorkEventArgs GetEventObject() { 42 | // if (this.Count > 0) { 43 | // if (this[0] != null) { 44 | // WorkEventArgs dwoTemp = this[0]; 45 | // Remove(this[0]); 46 | // return dwoTemp; 47 | 48 | // } 49 | // else { 50 | // return null; 51 | // } 52 | // } 53 | // else { 54 | // return null; 55 | // } 56 | // } 57 | // } 58 | //} 59 | -------------------------------------------------------------------------------- /Optimizer/Models/WorkEventArgs.cs: -------------------------------------------------------------------------------- 1 | //using System; 2 | //using System.Collections.Generic; 3 | //using System.Linq; 4 | //using System.Text; 5 | //using System.Threading.Tasks; 6 | //using System.Windows.Forms; 7 | 8 | //namespace Optimizer.Models { 9 | // public sealed class WorkEventArgs { 10 | // string _fileName; 11 | // string _eventType; 12 | // ListViewItem _currentItem; 13 | 14 | // public WorkEventArgs(string fileName, string eventType, ListViewItem currentItem) { 15 | // _fileName = fileName; 16 | // _eventType = eventType; 17 | 18 | // if (currentItem != null) { 19 | // _currentItem = currentItem; 20 | // } 21 | // } 22 | 23 | // public string FileName { 24 | // get { 25 | // return _fileName; 26 | // } 27 | // } 28 | 29 | // public string EventType { 30 | // get { 31 | // return _eventType; 32 | // } 33 | // } 34 | 35 | // public ListViewItem CurrentItem { 36 | // get { 37 | // if (_currentItem != null) { 38 | // return _currentItem; 39 | // } 40 | // else { 41 | // return null; 42 | // } 43 | // } 44 | // } 45 | // } 46 | //} 47 | -------------------------------------------------------------------------------- /Optimizer/NetworkAdapter.cs: -------------------------------------------------------------------------------- 1 | //using System.Diagnostics; 2 | 3 | //namespace Optimizer 4 | //{ 5 | // public class NetworkAdapter 6 | // { 7 | // long _downloadSpeed, _uploadSpeed; 8 | // long _downloadValue, _uploadValue; 9 | // long _downloadValueOld, _uploadValueOld; 10 | 11 | // string _name; 12 | 13 | // internal PerformanceCounter DownloadCounter, UploadCounter; 14 | 15 | // internal NetworkAdapter(string name) 16 | // { 17 | // _name = name; 18 | // } 19 | 20 | // internal void Initialize() 21 | // { 22 | // _downloadValueOld = DownloadCounter.NextSample().RawValue; 23 | // _uploadValueOld = UploadCounter.NextSample().RawValue; 24 | // } 25 | 26 | // internal void Refresh() 27 | // { 28 | // _downloadValue = DownloadCounter.NextSample().RawValue; 29 | // _uploadValue = UploadCounter.NextSample().RawValue; 30 | 31 | // _downloadSpeed = _downloadValue - _downloadValueOld; 32 | // _uploadSpeed = _uploadValue - _uploadValueOld; 33 | 34 | // _downloadValueOld = _downloadValue; 35 | // _uploadValueOld = _uploadValue; 36 | // } 37 | 38 | // public override string ToString() 39 | // { 40 | // return _name; 41 | // } 42 | 43 | // public string Name 44 | // { 45 | // get { return _name; } 46 | // } 47 | 48 | // public long DownloadSpeed 49 | // { 50 | // get { return _downloadSpeed; } 51 | // } 52 | 53 | // public long UploadSpeed 54 | // { 55 | // get { return _uploadSpeed; } 56 | // } 57 | 58 | // public double DownloadSpeedKbps 59 | // { 60 | // get { return this._downloadSpeed / 1024.0; } 61 | // } 62 | 63 | // public double UploadSpeedKbps 64 | // { 65 | // get { return this._uploadSpeed / 1024.0; } 66 | // } 67 | 68 | // public double DownloadSpeedMbps 69 | // { 70 | // get { return this._downloadSpeed / 1024.0 / 1024.0; } 71 | // } 72 | 73 | // public double UploadSpeedMbps 74 | // { 75 | // get { return this._uploadSpeed / 1024.0 / 1024.0; } 76 | // } 77 | // } 78 | //} 79 | -------------------------------------------------------------------------------- /Optimizer/NetworkMonitor.cs: -------------------------------------------------------------------------------- 1 | //using System.Collections; 2 | //using System.Diagnostics; 3 | //using System.Timers; 4 | 5 | //namespace Optimizer 6 | //{ 7 | // public class NetworkMonitor 8 | // { 9 | // Timer _timer; 10 | // ArrayList _adapters; 11 | // ArrayList _monitoredAdapters; 12 | 13 | // public NetworkMonitor() 14 | // { 15 | // _adapters = new ArrayList(); 16 | // _monitoredAdapters = new ArrayList(); 17 | // EnumerateNetworkAdapters(); 18 | 19 | // _timer = new Timer(1000); 20 | // _timer.Elapsed += new ElapsedEventHandler(timer_Elapsed); 21 | // } 22 | 23 | // private void EnumerateNetworkAdapters() 24 | // { 25 | // PerformanceCounterCategory category = new PerformanceCounterCategory("Network Interface"); 26 | 27 | // foreach (string name in category.GetInstanceNames()) 28 | // { 29 | // if (name == "MS TCP Loopback interface") continue; 30 | // if (name.ToLowerInvariant().Contains("virtual")) continue; 31 | // if (name.ToLowerInvariant().Contains("hyper-v")) continue; 32 | 33 | // NetworkAdapter adapter = new NetworkAdapter(name); 34 | // adapter.DownloadCounter = new PerformanceCounter("Network Interface", "Bytes Received/sec", name); 35 | // adapter.UploadCounter = new PerformanceCounter("Network Interface", "Bytes Sent/sec", name); 36 | // _adapters.Add(adapter); 37 | // } 38 | // } 39 | 40 | // private void timer_Elapsed(object sender, ElapsedEventArgs e) 41 | // { 42 | // foreach (NetworkAdapter adapter in this._monitoredAdapters) 43 | // { 44 | // adapter.Refresh(); 45 | // } 46 | // } 47 | 48 | // public NetworkAdapter[] Adapters 49 | // { 50 | // get { return (NetworkAdapter[])_adapters.ToArray(typeof(NetworkAdapter)); } 51 | // } 52 | 53 | // public void StartMonitoring() 54 | // { 55 | // if (_adapters.Count > 0) 56 | // { 57 | // foreach (NetworkAdapter adapter in _adapters) 58 | // { 59 | // if (!_monitoredAdapters.Contains(adapter)) 60 | // { 61 | // _monitoredAdapters.Add(adapter); 62 | // adapter.Initialize(); 63 | // } 64 | // } 65 | 66 | // _timer.Enabled = true; 67 | // } 68 | // } 69 | 70 | // public void StartMonitoring(NetworkAdapter adapter) 71 | // { 72 | // if (!_monitoredAdapters.Contains(adapter)) 73 | // { 74 | // _monitoredAdapters.Add(adapter); 75 | // adapter.Initialize(); 76 | // } 77 | 78 | // _timer.Enabled = true; 79 | // } 80 | 81 | // public void StopMonitoring() 82 | // { 83 | // _monitoredAdapters.Clear(); 84 | // _timer.Enabled = false; 85 | // } 86 | 87 | // public void StopMonitoring(NetworkAdapter adapter) 88 | // { 89 | // if (_monitoredAdapters.Contains(adapter)) 90 | // { 91 | // _monitoredAdapters.Remove(adapter); 92 | // } 93 | 94 | // if (_monitoredAdapters.Count == 0) 95 | // { 96 | // _timer.Enabled = false; 97 | // } 98 | // } 99 | // } 100 | //} 101 | -------------------------------------------------------------------------------- /Optimizer/Newtonsoft.Json.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Newtonsoft.Json.dll -------------------------------------------------------------------------------- /Optimizer/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | [assembly: AssemblyTitle("Optimizer")] 8 | [assembly: AssemblyDescription("The Finest Windows Optimizer")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("deadmoon © ∞")] 11 | [assembly: AssemblyProduct("Optimizer")] 12 | [assembly: AssemblyCopyright("deadmoon © ∞")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // ∞ 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("96563750-9265-4acc-8e9e-61930a208a4d")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("0.0.0.0")] 36 | [assembly: AssemblyFileVersion("0.0.0.0")] 37 | -------------------------------------------------------------------------------- /Optimizer/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace Optimizer.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.5.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Optimizer/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Optimizer/Resources/Assets/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Assets/banner.png -------------------------------------------------------------------------------- /Optimizer/Resources/Assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Assets/logo.png -------------------------------------------------------------------------------- /Optimizer/Resources/Flags/brazil.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Flags/brazil.png -------------------------------------------------------------------------------- /Optimizer/Resources/Flags/bulgaria.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Flags/bulgaria.png -------------------------------------------------------------------------------- /Optimizer/Resources/Flags/china.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Flags/china.png -------------------------------------------------------------------------------- /Optimizer/Resources/Flags/croatia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Flags/croatia.png -------------------------------------------------------------------------------- /Optimizer/Resources/Flags/czech.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Flags/czech.png -------------------------------------------------------------------------------- /Optimizer/Resources/Flags/dutch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Flags/dutch.png -------------------------------------------------------------------------------- /Optimizer/Resources/Flags/egypt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Flags/egypt.png -------------------------------------------------------------------------------- /Optimizer/Resources/Flags/france.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Flags/france.png -------------------------------------------------------------------------------- /Optimizer/Resources/Flags/germany.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Flags/germany.png -------------------------------------------------------------------------------- /Optimizer/Resources/Flags/greece.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Flags/greece.png -------------------------------------------------------------------------------- /Optimizer/Resources/Flags/hungary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Flags/hungary.png -------------------------------------------------------------------------------- /Optimizer/Resources/Flags/indonesia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Flags/indonesia.png -------------------------------------------------------------------------------- /Optimizer/Resources/Flags/iran.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Flags/iran.png -------------------------------------------------------------------------------- /Optimizer/Resources/Flags/italy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Flags/italy.png -------------------------------------------------------------------------------- /Optimizer/Resources/Flags/japan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Flags/japan.png -------------------------------------------------------------------------------- /Optimizer/Resources/Flags/korea.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Flags/korea.png -------------------------------------------------------------------------------- /Optimizer/Resources/Flags/kurdish.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Flags/kurdish.png -------------------------------------------------------------------------------- /Optimizer/Resources/Flags/nepal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Flags/nepal.png -------------------------------------------------------------------------------- /Optimizer/Resources/Flags/pakistan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Flags/pakistan.png -------------------------------------------------------------------------------- /Optimizer/Resources/Flags/poland.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Flags/poland.png -------------------------------------------------------------------------------- /Optimizer/Resources/Flags/romania.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Flags/romania.png -------------------------------------------------------------------------------- /Optimizer/Resources/Flags/russia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Flags/russia.png -------------------------------------------------------------------------------- /Optimizer/Resources/Flags/spain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Flags/spain.png -------------------------------------------------------------------------------- /Optimizer/Resources/Flags/taiwan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Flags/taiwan.png -------------------------------------------------------------------------------- /Optimizer/Resources/Flags/turkey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Flags/turkey.png -------------------------------------------------------------------------------- /Optimizer/Resources/Flags/ukraine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Flags/ukraine.png -------------------------------------------------------------------------------- /Optimizer/Resources/Flags/united-kingdom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Flags/united-kingdom.png -------------------------------------------------------------------------------- /Optimizer/Resources/Flags/vietnam.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Flags/vietnam.png -------------------------------------------------------------------------------- /Optimizer/Resources/Fonts/Poppins-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Fonts/Poppins-Regular.ttf -------------------------------------------------------------------------------- /Optimizer/Resources/Scripts/AddOpenWithCMD.reg: -------------------------------------------------------------------------------- 1 | Windows Registry Editor Version 5.00 2 | 3 | [HKEY_CLASSES_ROOT\Directory\shell\OpenWithCMD] 4 | @="Open Command Prompt here" 5 | "Icon"="cmd.exe" 6 | "NoWorkingDirectory"="" 7 | 8 | [HKEY_CLASSES_ROOT\Directory\shell\OpenWithCMD\command] 9 | @="cmd.exe /s /k pushd \"%V\"" 10 | 11 | [HKEY_CLASSES_ROOT\Directory\Background\shell\OpenWithCMD] 12 | @="Open Command Prompt here" 13 | "Icon"="cmd.exe" 14 | "NoWorkingDirectory"="" 15 | 16 | [HKEY_CLASSES_ROOT\Directory\Background\shell\OpenWithCMD\command] 17 | @="cmd.exe /s /k pushd \"%V\"" 18 | 19 | [HKEY_CLASSES_ROOT\Drive\shell\OpenWithCMD] 20 | @="Open Command Prompt here" 21 | "Icon"="cmd.exe" 22 | "NoWorkingDirectory"="" 23 | 24 | [HKEY_CLASSES_ROOT\Drive\shell\OpenWithCMD\command] 25 | @="cmd.exe /s /k pushd \"%V\"" -------------------------------------------------------------------------------- /Optimizer/Resources/Scripts/DesktopShortcuts.reg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Scripts/DesktopShortcuts.reg -------------------------------------------------------------------------------- /Optimizer/Resources/Scripts/DisableClassicPhotoViewer.reg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Scripts/DisableClassicPhotoViewer.reg -------------------------------------------------------------------------------- /Optimizer/Resources/Scripts/DisableDefenderSafeMode1903Plus.bat: -------------------------------------------------------------------------------- 1 | rem USE AT OWN RISK AS IS WITHOUT WARRANTY OF ANY KIND !!!!! 2 | 3 | rem https://docs.microsoft.com/en-us/windows-hardware/customize/desktop/unattend/security-malware-windows-defender-disableantispyware 4 | rem "DisableAntiSpyware" is discontinued and will be ignored on client devices, as of the August 2020 (version 4.18.2007.8) update to Microsoft Defender Antivirus. 5 | 6 | rem Disable Tamper Protection First !!!!! 7 | rem https://www.tenforums.com/tutorials/123792-turn-off-tamper-protection-windows-defender-antivirus.html 8 | reg add "HKLM\Software\Microsoft\Windows Defender\Features" /v "TamperProtection" /t REG_DWORD /d "0" /f 9 | 10 | rem https://technet.microsoft.com/en-us/itpro/powershell/windows/defender/set-mppreference 11 | rem https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-0290 12 | 13 | rem Exclusion in WD can be easily set with an elevated cmd, so that makes it super easy to damage any pc. 14 | rem WMIC /NAMESPACE:\\root\Microsoft\Windows\Defender PATH MSFT_MpPreference call Add ExclusionPath="xxxxxx 15 | 16 | rem To disable System Guard Runtime Monitor Broker 17 | reg add "HKLM\System\CurrentControlSet\Services\SgrmBroker" /v "Start" /t REG_DWORD /d "4" /f 18 | 19 | rem To disable Windows Defender Security Center include this 20 | reg add "HKLM\System\CurrentControlSet\Services\SecurityHealthService" /v "Start" /t REG_DWORD /d "4" /f 21 | 22 | rem 1 - Disable Real-time protection 23 | reg delete "HKLM\Software\Policies\Microsoft\Windows Defender" /f 24 | reg add "HKLM\Software\Policies\Microsoft\Windows Defender" /v "DisableAntiSpyware" /t REG_DWORD /d "1" /f 25 | reg add "HKLM\Software\Policies\Microsoft\Windows Defender" /v "DisableAntiVirus" /t REG_DWORD /d "1" /f 26 | reg add "HKLM\Software\Policies\Microsoft\Windows Defender\MpEngine" /v "MpEnablePus" /t REG_DWORD /d "0" /f 27 | reg add "HKLM\Software\Policies\Microsoft\Windows Defender\Real-Time Protection" /v "DisableBehaviorMonitoring" /t REG_DWORD /d "1" /f 28 | reg add "HKLM\Software\Policies\Microsoft\Windows Defender\Real-Time Protection" /v "DisableIOAVProtection" /t REG_DWORD /d "1" /f 29 | reg add "HKLM\Software\Policies\Microsoft\Windows Defender\Real-Time Protection" /v "DisableOnAccessProtection" /t REG_DWORD /d "1" /f 30 | reg add "HKLM\Software\Policies\Microsoft\Windows Defender\Real-Time Protection" /v "DisableRealtimeMonitoring" /t REG_DWORD /d "1" /f 31 | reg add "HKLM\Software\Policies\Microsoft\Windows Defender\Real-Time Protection" /v "DisableRoutinelyTakingAction" /t REG_DWORD /d "1" /f 32 | reg add "HKLM\Software\Policies\Microsoft\Windows Defender\Real-Time Protection" /v "DisableScanOnRealtimeEnable" /t REG_DWORD /d "1" /f 33 | reg add "HKLM\Software\Policies\Microsoft\Windows Defender\Reporting" /v "DisableEnhancedNotifications" /t REG_DWORD /d "1" /f 34 | reg add "HKLM\Software\Policies\Microsoft\Windows Defender\SpyNet" /v "DisableBlockAtFirstSeen" /t REG_DWORD /d "1" /f 35 | reg add "HKLM\Software\Policies\Microsoft\Windows Defender\SpyNet" /v "SpynetReporting" /t REG_DWORD /d "0" /f 36 | reg add "HKLM\Software\Policies\Microsoft\Windows Defender\SpyNet" /v "SubmitSamplesConsent" /t REG_DWORD /d "2" /f 37 | 38 | rem 0 - Disable Logging 39 | reg add "HKLM\System\CurrentControlSet\Control\WMI\Autologger\DefenderApiLogger" /v "Start" /t REG_DWORD /d "0" /f 40 | reg add "HKLM\System\CurrentControlSet\Control\WMI\Autologger\DefenderAuditLogger" /v "Start" /t REG_DWORD /d "0" /f 41 | 42 | rem Disable WD Tasks 43 | schtasks /Change /TN "Microsoft\Windows\ExploitGuard\ExploitGuard MDM policy Refresh" /Disable 44 | schtasks /Change /TN "Microsoft\Windows\Windows Defender\Windows Defender Cache Maintenance" /Disable 45 | schtasks /Change /TN "Microsoft\Windows\Windows Defender\Windows Defender Cleanup" /Disable 46 | schtasks /Change /TN "Microsoft\Windows\Windows Defender\Windows Defender Scheduled Scan" /Disable 47 | schtasks /Change /TN "Microsoft\Windows\Windows Defender\Windows Defender Verification" /Disable 48 | 49 | rem Disable WD systray icon 50 | reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run" /v "SecurityHealth" /f 51 | reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\Run" /v "SecurityHealth" /f 52 | 53 | rem Remove WD context menu 54 | reg delete "HKCR\*\shellex\ContextMenuHandlers\EPP" /f 55 | reg delete "HKCR\Directory\shellex\ContextMenuHandlers\EPP" /f 56 | reg delete "HKCR\Drive\shellex\ContextMenuHandlers\EPP" /f 57 | 58 | rem Disable WD services 59 | rem reg add "HKLM\System\CurrentControlSet\Services\WdBoot" /v "Start" /t REG_DWORD /d "4" /f 60 | reg add "HKLM\System\CurrentControlSet\Services\WdFilter" /v "Start" /t REG_DWORD /d "4" /f 61 | reg add "HKLM\System\CurrentControlSet\Services\WdNisDrv" /v "Start" /t REG_DWORD /d "4" /f 62 | reg add "HKLM\System\CurrentControlSet\Services\WdNisSvc" /v "Start" /t REG_DWORD /d "4" /f 63 | reg add "HKLM\System\CurrentControlSet\Services\WinDefend" /v "Start" /t REG_DWORD /d "4" /f 64 | 65 | rem Run twice to disable WD services !!!!! 66 | -------------------------------------------------------------------------------- /Optimizer/Resources/Scripts/DisableOfficeTelemetry.reg: -------------------------------------------------------------------------------- 1 | Windows Registry Editor Version 5.00 2 | 3 | [HKEY_CURRENT_USER\Software\Policies\microsoft\office\16.0\osm\preventedapplications] 4 | "accesssolution"=dword:00000001 5 | "olksolution"=dword:00000001 6 | "onenotesolution"=dword:00000001 7 | "pptsolution"=dword:00000001 8 | "projectsolution"=dword:00000001 9 | "publishersolution"=dword:00000001 10 | "visiosolution"=dword:00000001 11 | "wdsolution"=dword:00000001 12 | "xlsolution"=dword:00000001 13 | 14 | [HKEY_CURRENT_USER\Software\Policies\microsoft\office\16.0\osm\preventedsolutiontypes] 15 | "agave"=dword:00000001 16 | "appaddins"=dword:00000001 17 | "comaddins"=dword:00000001 18 | "documentfiles"=dword:00000001 19 | "templatefiles"=dword:00000001 20 | -------------------------------------------------------------------------------- /Optimizer/Resources/Scripts/DisableOfficeTelemetryTasks.bat: -------------------------------------------------------------------------------- 1 | schtasks /end /tn "\Microsoft\Office\OfficeTelemetryAgentFallBack2016" 2 | schtasks /change /tn "\Microsoft\Office\OfficeTelemetryAgentFallBack2016" /disable 3 | schtasks /end /tn "\Microsoft\Office\OfficeTelemetryAgentLogOn2016" 4 | schtasks /change /tn "\Microsoft\Office\OfficeTelemetryAgentLogOn2016" /disable 5 | 6 | schtasks /end /tn "\Microsoft\Office\OfficeTelemetryAgentFallBack" 7 | schtasks /change /tn "\Microsoft\Office\OfficeTelemetryAgentFallBack" /disable 8 | schtasks /end /tn "\Microsoft\Office\OfficeTelemetryAgentLogOn" 9 | schtasks /change /tn "\Microsoft\Office\OfficeTelemetryAgentLogOn" /disable 10 | 11 | reg add "HKCU\SOFTWARE\Microsoft\Office\15.0\Outlook\Options\Mail" /v "EnableLogging" /t REG_DWORD /d 0 /f 12 | reg add "HKCU\SOFTWARE\Microsoft\Office\16.0\Outlook\Options\Mail" /v "EnableLogging" /t REG_DWORD /d 0 /f 13 | reg add "HKCU\SOFTWARE\Microsoft\Office\15.0\Outlook\Options\Calendar" /v "EnableCalendarLogging" /t REG_DWORD /d 0 /f 14 | reg add "HKCU\SOFTWARE\Microsoft\Office\16.0\Outlook\Options\Calendar" /v "EnableCalendarLogging" /t REG_DWORD /d 0 /f 15 | reg add "HKCU\SOFTWARE\Microsoft\Office\15.0\Word\Options" /v "EnableLogging" /t REG_DWORD /d 0 /f 16 | reg add "HKCU\SOFTWARE\Microsoft\Office\16.0\Word\Options" /v "EnableLogging" /t REG_DWORD /d 0 /f 17 | reg add "HKCU\SOFTWARE\Policies\Microsoft\Office\15.0\OSM" /v "EnableLogging" /t REG_DWORD /d 0 /f 18 | reg add "HKCU\SOFTWARE\Policies\Microsoft\Office\16.0\OSM" /v "EnableLogging" /t REG_DWORD /d 0 /f 19 | reg add "HKCU\SOFTWARE\Policies\Microsoft\Office\15.0\OSM" /v "EnableUpload" /t REG_DWORD /d 0 /f 20 | reg add "HKCU\SOFTWARE\Policies\Microsoft\Office\16.0\OSM" /v "EnableUpload" /t REG_DWORD /d 0 /f 21 | 22 | reg add "HKCU\SOFTWARE\Microsoft\Office\Common\ClientTelemetry" /v "DisableTelemetry" /t REG_DWORD /d 1 /f 23 | reg add "HKCU\SOFTWARE\Microsoft\Office\16.0\Common\ClientTelemetry" /v "DisableTelemetry" /t REG_DWORD /d 1 /f 24 | reg add "HKCU\SOFTWARE\Microsoft\Office\Common\ClientTelemetry" /v "VerboseLogging" /t REG_DWORD /d 0 /f 25 | reg add "HKCU\SOFTWARE\Microsoft\Office\16.0\Common\ClientTelemetry" /v "VerboseLogging" /t REG_DWORD /d 0 /f 26 | 27 | reg add "HKCU\SOFTWARE\Microsoft\Office\15.0\Common" /v "QMEnable" /t REG_DWORD /d 0 /f 28 | reg add "HKCU\SOFTWARE\Microsoft\Office\16.0\Common" /v "QMEnable" /t REG_DWORD /d 0 /f 29 | 30 | reg add "HKCU\SOFTWARE\Microsoft\Office\15.0\Common\Feedback" /v "Enabled" /t REG_DWORD /d 0 /f 31 | reg add "HKCU\SOFTWARE\Microsoft\Office\16.0\Common\Feedback" /v "Enabled" /t REG_DWORD /d 0 /f -------------------------------------------------------------------------------- /Optimizer/Resources/Scripts/DisableTelemetryTasks.bat: -------------------------------------------------------------------------------- 1 | schtasks /end /tn "\Microsoft\Windows\Customer Experience Improvement Program\Consolidator" 2 | schtasks /change /tn "\Microsoft\Windows\Customer Experience Improvement Program\Consolidator" /disable 3 | schtasks /end /tn "\Microsoft\Windows\Customer Experience Improvement Program\BthSQM" 4 | schtasks /change /tn "\Microsoft\Windows\Customer Experience Improvement Program\BthSQM" /disable 5 | schtasks /end /tn "\Microsoft\Windows\Customer Experience Improvement Program\KernelCeipTask" 6 | schtasks /change /tn "\Microsoft\Windows\Customer Experience Improvement Program\KernelCeipTask" /disable 7 | schtasks /end /tn "\Microsoft\Windows\Customer Experience Improvement Program\UsbCeip" 8 | schtasks /change /tn "\Microsoft\Windows\Customer Experience Improvement Program\UsbCeip" /disable 9 | schtasks /end /tn "\Microsoft\Windows\Customer Experience Improvement Program\Uploader" 10 | schtasks /change /tn "\Microsoft\Windows\Customer Experience Improvement Program\Uploader" /disable 11 | schtasks /end /tn "\Microsoft\Windows\Application Experience\Microsoft Compatibility Appraiser" 12 | schtasks /change /tn "\Microsoft\Windows\Application Experience\Microsoft Compatibility Appraiser" /disable 13 | schtasks /end /tn "\Microsoft\Windows\Application Experience\ProgramDataUpdater" 14 | schtasks /change /tn "\Microsoft\Windows\Application Experience\ProgramDataUpdater" /disable 15 | schtasks /end /tn "\Microsoft\Windows\Application Experience\StartupAppTask" 16 | schtasks /change /tn "\Microsoft\Windows\Application Experience\StartupAppTask" /disable" 17 | schtasks /end /tn "\Microsoft\Windows\DiskDiagnostic\Microsoft-Windows-DiskDiagnosticDataCollector" 18 | schtasks /change /tn "\Microsoft\Windows\DiskDiagnostic\Microsoft-Windows-DiskDiagnosticDataCollector" /disable 19 | schtasks /end /tn "\Microsoft\Windows\DiskDiagnostic\Microsoft-Windows-DiskDiagnosticResolver" 20 | schtasks /change /tn "\Microsoft\Windows\DiskDiagnostic\Microsoft-Windows-DiskDiagnosticResolver" /disable 21 | schtasks /end /tn "\Microsoft\Windows\Power Efficiency Diagnostics\AnalyzeSystem" 22 | schtasks /change /tn "\Microsoft\Windows\Power Efficiency Diagnostics\AnalyzeSystem" /disable 23 | schtasks /end /tn "\Microsoft\Windows\Shell\FamilySafetyMonitor" 24 | schtasks /change /tn "\Microsoft\Windows\Shell\FamilySafetyMonitor" /disable 25 | schtasks /end /tn "\Microsoft\Windows\Shell\FamilySafetyRefresh" 26 | schtasks /change /tn "\Microsoft\Windows\Shell\FamilySafetyRefresh" /disable 27 | schtasks /end /tn "\Microsoft\Windows\Shell\FamilySafetyUpload" 28 | schtasks /change /tn "\Microsoft\Windows\Shell\FamilySafetyUpload" /disable 29 | schtasks /end /tn "\Microsoft\Windows\Autochk\Proxy" 30 | schtasks /change /tn "\Microsoft\Windows\Autochk\Proxy" /disable 31 | schtasks /end /tn "\Microsoft\Windows\Maintenance\WinSAT" 32 | schtasks /change /tn "\Microsoft\Windows\Maintenance\WinSAT" /disable 33 | schtasks /end /tn "\Microsoft\Windows\Application Experience\AitAgent" 34 | schtasks /change /tn "\Microsoft\Windows\Application Experience\AitAgent" /disable 35 | schtasks /end /tn "\Microsoft\Windows\Windows Error Reporting\QueueReporting" 36 | schtasks /change /tn "\Microsoft\Windows\Windows Error Reporting\QueueReporting" /disable 37 | schtasks /end /tn "\Microsoft\Windows\CloudExperienceHost\CreateObjectTask" 38 | schtasks /change /tn "\Microsoft\Windows\CloudExperienceHost\CreateObjectTask" /disable 39 | schtasks /end /tn "\Microsoft\Windows\DiskFootprint\Diagnostics" 40 | schtasks /change /tn "\Microsoft\Windows\DiskFootprint\Diagnostics" /disable 41 | schtasks /end /tn "\Microsoft\Windows\FileHistory\File History (maintenance mode)" 42 | schtasks /change /tn "\Microsoft\Windows\FileHistory\File History (maintenance mode)" /disable 43 | schtasks /end /tn "\Microsoft\Windows\PI\Sqm-Tasks" 44 | schtasks /change /tn "\Microsoft\Windows\PI\Sqm-Tasks" /disable 45 | schtasks /end /tn "\Microsoft\Windows\NetTrace\GatherNetworkInfo" 46 | schtasks /change /tn "\Microsoft\Windows\NetTrace\GatherNetworkInfo" /disable 47 | schtasks /end /tn "\Microsoft\Windows\AppID\SmartScreenSpecific" 48 | schtasks /change /tn "\Microsoft\Windows\AppID\SmartScreenSpecific" /disable 49 | schtasks /Change /TN "\Microsoft\Windows\WindowsUpdate\Automatic App Update" /Disable 50 | schtasks /Change /TN "\Microsoft\Windows\Time Synchronization\ForceSynchronizeTime" /Disable 51 | schtasks /Change /TN "\Microsoft\Windows\Time Synchronization\SynchronizeTime" /Disable 52 | schtasks /end /tn "\Microsoft\Windows\HelloFace\FODCleanupTask" 53 | schtasks /change /tn "\Microsoft\Windows\HelloFace\FODCleanupTask" /disable 54 | schtasks /end /tn "\Microsoft\Windows\Feedback\Siuf\DmClient" 55 | schtasks /change /tn "\Microsoft\Windows\Feedback\Siuf\DmClient" /disable 56 | schtasks /end /tn "\Microsoft\Windows\Feedback\Siuf\DmClientOnScenarioDownload" 57 | schtasks /change /tn "\Microsoft\Windows\Feedback\Siuf\DmClientOnScenarioDownload" /disable 58 | schtasks /end /tn "\Microsoft\Windows\Application Experience\PcaPatchDbTask" 59 | schtasks /change /tn "\Microsoft\Windows\Application Experience\PcaPatchDbTask" /disable 60 | schtasks /end /tn "\Microsoft\Windows\Device Information\Device" 61 | schtasks /change /tn "\Microsoft\Windows\Device Information\Device" /disable 62 | schtasks /end /tn "\Microsoft\Windows\Device Information\Device User" 63 | schtasks /change /tn "\Microsoft\Windows\Device Information\Device User" /disable 64 | -------------------------------------------------------------------------------- /Optimizer/Resources/Scripts/DisableXboxTasks.bat: -------------------------------------------------------------------------------- 1 | schtasks /end /tn "\Microsoft\XblGameSave\XblGameSaveTask" 2 | schtasks /change /tn "\Microsoft\XblGameSave\XblGameSaveTask" /disable 3 | schtasks /end /tn "\Microsoft\XblGameSave\XblGameSaveTaskLogon" 4 | schtasks /change /tn "\Microsoft\XblGameSave\XblGameSaveTaskLogon" /disable 5 | -------------------------------------------------------------------------------- /Optimizer/Resources/Scripts/EnableDefenderSafeMode1903Plus.bat: -------------------------------------------------------------------------------- 1 | reg add "HKLM\Software\Microsoft\Windows Defender\Features" /v "TamperProtection" /t REG_DWORD /d "1" /f 2 | 3 | reg add "HKLM\System\CurrentControlSet\Services\SgrmBroker" /v "Start" /t REG_DWORD /d "2" /f 4 | 5 | reg add "HKLM\System\CurrentControlSet\Services\SecurityHealthService" /v "Start" /t REG_DWORD /d "2" /f 6 | 7 | rem 1 - Disable Real-time protection 8 | reg delete "HKLM\Software\Policies\Microsoft\Windows Defender" /f 9 | reg add "HKLM\Software\Policies\Microsoft\Windows Defender" /v "DisableAntiSpyware" /t REG_DWORD /d "0" /f 10 | reg add "HKLM\Software\Policies\Microsoft\Windows Defender" /v "DisableAntiVirus" /t REG_DWORD /d "0" /f 11 | reg add "HKLM\Software\Policies\Microsoft\Windows Defender\MpEngine" /v "MpEnablePus" /t REG_DWORD /d "1" /f 12 | reg add "HKLM\Software\Policies\Microsoft\Windows Defender\Real-Time Protection" /v "DisableBehaviorMonitoring" /t REG_DWORD /d "0" /f 13 | reg add "HKLM\Software\Policies\Microsoft\Windows Defender\Real-Time Protection" /v "DisableIOAVProtection" /t REG_DWORD /d "0" /f 14 | reg add "HKLM\Software\Policies\Microsoft\Windows Defender\Real-Time Protection" /v "DisableOnAccessProtection" /t REG_DWORD /d "0" /f 15 | reg add "HKLM\Software\Policies\Microsoft\Windows Defender\Real-Time Protection" /v "DisableRealtimeMonitoring" /t REG_DWORD /d "0" /f 16 | reg add "HKLM\Software\Policies\Microsoft\Windows Defender\Real-Time Protection" /v "DisableRoutinelyTakingAction" /t REG_DWORD /d "0" /f 17 | reg add "HKLM\Software\Policies\Microsoft\Windows Defender\Real-Time Protection" /v "DisableScanOnRealtimeEnable" /t REG_DWORD /d "0" /f 18 | reg add "HKLM\Software\Policies\Microsoft\Windows Defender\Reporting" /v "DisableEnhancedNotifications" /t REG_DWORD /d "0" /f 19 | reg add "HKLM\Software\Policies\Microsoft\Windows Defender\SpyNet" /v "DisableBlockAtFirstSeen" /t REG_DWORD /d "0" /f 20 | reg add "HKLM\Software\Policies\Microsoft\Windows Defender\SpyNet" /v "SpynetReporting" /t REG_DWORD /d "1" /f 21 | reg add "HKLM\Software\Policies\Microsoft\Windows Defender\SpyNet" /v "SubmitSamplesConsent" /t REG_DWORD /d "1" /f 22 | 23 | rem 0 - Disable Logging 24 | reg add "HKLM\System\CurrentControlSet\Control\WMI\Autologger\DefenderApiLogger" /v "Start" /t REG_DWORD /d "1" /f 25 | reg add "HKLM\System\CurrentControlSet\Control\WMI\Autologger\DefenderAuditLogger" /v "Start" /t REG_DWORD /d "1" /f 26 | 27 | rem Disable WD Tasks 28 | schtasks /Change /TN "Microsoft\Windows\ExploitGuard\ExploitGuard MDM policy Refresh" /Enable 29 | schtasks /Change /TN "Microsoft\Windows\Windows Defender\Windows Defender Cache Maintenance" /Enable 30 | schtasks /Change /TN "Microsoft\Windows\Windows Defender\Windows Defender Cleanup" /Enable 31 | schtasks /Change /TN "Microsoft\Windows\Windows Defender\Windows Defender Scheduled Scan" /Enable 32 | schtasks /Change /TN "Microsoft\Windows\Windows Defender\Windows Defender Verification" /Enable 33 | 34 | rem Disable WD services 35 | rem reg add "HKLM\System\CurrentControlSet\Services\WdBoot" /v "Start" /t REG_DWORD /d "4" /f 36 | reg add "HKLM\System\CurrentControlSet\Services\WdFilter" /v "Start" /t REG_DWORD /d "2" /f 37 | reg add "HKLM\System\CurrentControlSet\Services\WdNisDrv" /v "Start" /t REG_DWORD /d "2" /f 38 | reg add "HKLM\System\CurrentControlSet\Services\WdNisSvc" /v "Start" /t REG_DWORD /d "2" /f 39 | reg add "HKLM\System\CurrentControlSet\Services\WinDefend" /v "Start" /t REG_DWORD /d "2" /f 40 | 41 | rem Run twice to disable WD services !!!!! 42 | -------------------------------------------------------------------------------- /Optimizer/Resources/Scripts/EnableOfficeTelemetry.reg: -------------------------------------------------------------------------------- 1 | Windows Registry Editor Version 5.00 2 | 3 | [HKEY_CURRENT_USER\Software\Policies\microsoft\office\16.0\osm\preventedapplications] 4 | "accesssolution"=- 5 | "olksolution"=- 6 | "onenotesolution"=- 7 | "pptsolution"=- 8 | "projectsolution"=- 9 | "publishersolution"=- 10 | "visiosolution"=- 11 | "wdsolution"=- 12 | "xlsolution"=- 13 | 14 | [HKEY_CURRENT_USER\Software\Policies\microsoft\office\16.0\osm\preventedsolutiontypes] 15 | "agave"=- 16 | "appaddins"=- 17 | "comaddins"=- 18 | "documentfiles"=- 19 | "templatefiles"=- 20 | -------------------------------------------------------------------------------- /Optimizer/Resources/Scripts/EnableOfficeTelemetryTasks.bat: -------------------------------------------------------------------------------- 1 | schtasks /change /tn "\Microsoft\Office\OfficeTelemetryAgentFallBack2016" /enable 2 | schtasks /change /tn "\Microsoft\Office\OfficeTelemetryAgentLogOn2016" /enable 3 | 4 | schtasks /change /tn "\Microsoft\Office\OfficeTelemetryAgentFallBack" /enable 5 | schtasks /change /tn "\Microsoft\Office\OfficeTelemetryAgentLogOn" /enable 6 | 7 | reg add "HKCU\SOFTWARE\Microsoft\Office\15.0\Outlook\Options\Mail" /v "EnableLogging" /t REG_DWORD /d 1 /f 8 | reg add "HKCU\SOFTWARE\Microsoft\Office\16.0\Outlook\Options\Mail" /v "EnableLogging" /t REG_DWORD /d 1 /f 9 | reg add "HKCU\SOFTWARE\Microsoft\Office\15.0\Word\Options" /v "EnableLogging" /t REG_DWORD /d 1 /f 10 | reg add "HKCU\SOFTWARE\Microsoft\Office\16.0\Word\Options" /v "EnableLogging" /t REG_DWORD /d 1 /f 11 | reg add "HKCU\SOFTWARE\Microsoft\Office\15.0\Outlook\Options\Calendar" /v "EnableCalendarLogging" /t REG_DWORD /d 1 /f 12 | reg add "HKCU\SOFTWARE\Microsoft\Office\16.0\Outlook\Options\Calendar" /v "EnableCalendarLogging" /t REG_DWORD /d 1 /f 13 | reg add "HKCU\SOFTWARE\Policies\Microsoft\Office\15.0\OSM" /v "EnableLogging" /t REG_DWORD /d 1 /f 14 | reg add "HKCU\SOFTWARE\Policies\Microsoft\Office\16.0\OSM" /v "EnableLogging" /t REG_DWORD /d 1 /f 15 | reg add "HKCU\SOFTWARE\Policies\Microsoft\Office\15.0\OSM" /v "EnableUpload" /t REG_DWORD /d 1 /f 16 | reg add "HKCU\SOFTWARE\Policies\Microsoft\Office\16.0\OSM" /v "EnableUpload" /t REG_DWORD /d 1 /f 17 | 18 | reg add "HKCU\SOFTWARE\Microsoft\Office\Common\ClientTelemetry" /v "DisableTelemetry" /t REG_DWORD /d 0 /f 19 | reg add "HKCU\SOFTWARE\Microsoft\Office\16.0\Common\ClientTelemetry" /v "DisableTelemetry" /t REG_DWORD /d 0 /f 20 | reg add "HKCU\SOFTWARE\Microsoft\Office\Common\ClientTelemetry" /v "VerboseLogging" /t REG_DWORD /d 1 /f 21 | reg add "HKCU\SOFTWARE\Microsoft\Office\16.0\Common\ClientTelemetry" /v "VerboseLogging" /t REG_DWORD /d 1 /f 22 | 23 | reg add "HKCU\SOFTWARE\Microsoft\Office\15.0\Common" /v "QMEnable" /t REG_DWORD /d 1 /f 24 | reg add "HKCU\SOFTWARE\Microsoft\Office\16.0\Common" /v "QMEnable" /t REG_DWORD /d 1 /f 25 | 26 | reg add "HKCU\SOFTWARE\Microsoft\Office\15.0\Common\Feedback" /v "Enabled" /t REG_DWORD /d 1 /f 27 | reg add "HKCU\SOFTWARE\Microsoft\Office\16.0\Common\Feedback" /v "Enabled" /t REG_DWORD /d 1 /f -------------------------------------------------------------------------------- /Optimizer/Resources/Scripts/EnableTelemetryTasks.bat: -------------------------------------------------------------------------------- 1 | schtasks /change /tn "\Microsoft\Windows\Customer Experience Improvement Program\Consolidator" /enable 2 | schtasks /change /tn "\Microsoft\Windows\Customer Experience Improvement Program\BthSQM" /enable 3 | schtasks /change /tn "\Microsoft\Windows\Customer Experience Improvement Program\KernelCeipTask" /enable 4 | schtasks /change /tn "\Microsoft\Windows\Customer Experience Improvement Program\UsbCeip" /enable 5 | schtasks /change /tn "\Microsoft\Windows\Customer Experience Improvement Program\Uploader" /enable 6 | schtasks /change /tn "\Microsoft\Windows\Application Experience\Microsoft Compatibility Appraiser" /enable 7 | schtasks /change /tn "\Microsoft\Windows\Application Experience\ProgramDataUpdater" /enable 8 | schtasks /change /tn "\Microsoft\Windows\Application Experience\StartupAppTask" /enable" 9 | schtasks /change /tn "\Microsoft\Windows\DiskDiagnostic\Microsoft-Windows-DiskDiagnosticDataCollector" /enable 10 | schtasks /change /tn "\Microsoft\Windows\DiskDiagnostic\Microsoft-Windows-DiskDiagnosticResolver" /enable 11 | schtasks /change /tn "\Microsoft\Windows\Power Efficiency Diagnostics\AnalyzeSystem" /enable 12 | schtasks /change /tn "\Microsoft\Windows\Shell\FamilySafetyMonitor" /enable 13 | schtasks /change /tn "\Microsoft\Windows\Shell\FamilySafetyRefresh" /enable 14 | schtasks /change /tn "\Microsoft\Windows\Shell\FamilySafetyUpload" /enable 15 | schtasks /change /tn "\Microsoft\Windows\Autochk\Proxy" /enable 16 | schtasks /change /tn "\Microsoft\Windows\Maintenance\WinSAT" /enable 17 | schtasks /change /tn "\Microsoft\Windows\Application Experience\AitAgent" /enable 18 | schtasks /change /tn "\Microsoft\Windows\Windows Error Reporting\QueueReporting" /enable 19 | schtasks /change /tn "\Microsoft\Windows\CloudExperienceHost\CreateObjectTask" /enable 20 | schtasks /change /tn "\Microsoft\Windows\DiskFootprint\Diagnostics" /enable 21 | schtasks /change /tn "\Microsoft\Windows\FileHistory\File History (maintenance mode)" /enable 22 | schtasks /change /tn "\Microsoft\Windows\PI\Sqm-Tasks" /enable 23 | schtasks /change /tn "\Microsoft\Windows\NetTrace\GatherNetworkInfo" /enable 24 | schtasks /change /tn "\Microsoft\Windows\AppID\SmartScreenSpecific" /enable 25 | schtasks /change /tn "\Microsoft\Windows\HelloFace\FODCleanupTask" /enable 26 | schtasks /change /tn "\Microsoft\Windows\Feedback\Siuf\DmClientOnScenarioDownload" /enable 27 | schtasks /change /tn "\Microsoft\Windows\Feedback\Siuf\DmClient" /enable 28 | schtasks /change /tn "\Microsoft\Windows\Application Experience\PcaPatchDbTask" /enable 29 | schtasks /change /tn "\Microsoft\Windows\Device Information\Device" /enable 30 | schtasks /change /tn "\Microsoft\Windows\Device Information\Device User" /enable 31 | -------------------------------------------------------------------------------- /Optimizer/Resources/Scripts/EnableXboxTasks.bat: -------------------------------------------------------------------------------- 1 | schtasks /change /tn "\Microsoft\XblGameSave\XblGameSaveTask" /enable 2 | schtasks /change /tn "\Microsoft\XblGameSave\XblGameSaveTaskLogon" /enable 3 | -------------------------------------------------------------------------------- /Optimizer/Resources/Scripts/GPEditEnablerInHome.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | pushd "%~dp0" 3 | dir /b %SystemRoot%\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >List.txt 4 | dir /b %SystemRoot%\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Package~3*.mum >>List.txt 5 | for /f %%i in ('findstr /i . List.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i" 6 | -------------------------------------------------------------------------------- /Optimizer/Resources/Scripts/InstallTakeOwnership.reg: -------------------------------------------------------------------------------- 1 | Windows Registry Editor Version 5.00 2 | 3 | [HKEY_CLASSES_ROOT\*\shell\runas] 4 | @="Take Ownership" 5 | "NoWorkingDirectory"="" 6 | 7 | [HKEY_CLASSES_ROOT\*\shell\runas\command] 8 | @="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F" 9 | "IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F" 10 | 11 | [HKEY_CLASSES_ROOT\Directory\shell\runas] 12 | @="Take Ownership" 13 | "NoWorkingDirectory"="" 14 | 15 | [HKEY_CLASSES_ROOT\Directory\shell\runas\command] 16 | @="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t" 17 | "IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t" -------------------------------------------------------------------------------- /Optimizer/Resources/Scripts/OneDrive_Uninstaller.bin: -------------------------------------------------------------------------------- 1 | @echo off 2 | cls 3 | 4 | set x86="%SYSTEMROOT%\System32\OneDriveSetup.exe" 5 | set x64="%SYSTEMROOT%\SysWOW64\OneDriveSetup.exe" 6 | 7 | echo Closing OneDrive process. 8 | echo. 9 | taskkill /f /im OneDrive.exe > NUL 2>&1 10 | ping 127.0.0.1 -n 5 > NUL 2>&1 11 | 12 | echo Uninstalling OneDrive... 13 | echo. 14 | if exist %x64% ( 15 | %x64% /uninstall 16 | ) else ( 17 | %x86% /uninstall 18 | ) 19 | ping 127.0.0.1 -n 5 > NUL 2>&1 20 | 21 | echo Removing OneDrive leftovers... 22 | echo. 23 | rd "%USERPROFILE%\OneDrive" /Q /S > NUL 2>&1 24 | rd "C:\OneDriveTemp" /Q /S > NUL 2>&1 25 | rd "%LOCALAPPDATA%\Microsoft\OneDrive" /Q /S > NUL 2>&1 26 | rd "%LOCALAPPDATA%\OneDrive" /Q /S > NUL 2>&1 27 | rd "%PROGRAMDATA%\Microsoft OneDrive" /Q /S > NUL 2>&1 28 | 29 | echo Removing OneDrive from the Explorer Side Panel... 30 | echo. 31 | REG DELETE "HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" /f > NUL 2>&1 32 | REG DELETE "HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" /f > NUL 2>&1 33 | -------------------------------------------------------------------------------- /Optimizer/Resources/Scripts/PowerMenu.reg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Scripts/PowerMenu.reg -------------------------------------------------------------------------------- /Optimizer/Resources/Scripts/RemoveTakeOwnership.reg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Scripts/RemoveTakeOwnership.reg -------------------------------------------------------------------------------- /Optimizer/Resources/Scripts/RestoreClassicPhotoViewer.reg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Scripts/RestoreClassicPhotoViewer.reg -------------------------------------------------------------------------------- /Optimizer/Resources/Scripts/SystemShortcuts.reg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Scripts/SystemShortcuts.reg -------------------------------------------------------------------------------- /Optimizer/Resources/Scripts/SystemTools.reg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Scripts/SystemTools.reg -------------------------------------------------------------------------------- /Optimizer/Resources/Scripts/WindowsApps.reg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/Resources/Scripts/WindowsApps.reg -------------------------------------------------------------------------------- /Optimizer/Resources/Scripts/hosts: -------------------------------------------------------------------------------- 1 | # Copyright (c) 1993-2009 Microsoft Corp. 2 | # 3 | # This is a sample HOSTS file used by Microsoft TCP/IP for Windows. 4 | # 5 | # This file contains the mappings of IP addresses to host names. Each 6 | # entry should be kept on an individual line. The IP address should 7 | # be placed in the first column followed by the corresponding host name. 8 | # The IP address and the host name should be separated by at least one 9 | # space. 10 | # 11 | # Additionally, comments (such as these) may be inserted on individual 12 | # lines or following the machine name denoted by a '#' symbol. 13 | # 14 | # For example: 15 | # 16 | # 102.54.94.97 rhino.acme.com # source server 17 | # 38.25.63.10 x.acme.com # x client host 18 | 19 | # localhost name resolution is handled within DNS itself. 20 | 127.0.0.1 localhost 21 | ::1 localhost -------------------------------------------------------------------------------- /Optimizer/TelemetryHelper.cs: -------------------------------------------------------------------------------- 1 | //using Newtonsoft.Json; 2 | //using System; 3 | //using System.Net.Http; 4 | //using System.Net.Http.Headers; 5 | //using System.Text; 6 | //using System.Threading.Tasks; 7 | 8 | //namespace Optimizer 9 | //{ 10 | // internal static class TelemetryHelper 11 | // { 12 | // const string GEO_LOOKUP_URL = "http://ip-api.com/json/"; 13 | // static TelemetryData telemetryEntry = new TelemetryData(); 14 | 15 | // internal static HttpClient TelemetryClient; 16 | 17 | // internal const string TELEMETRY_API_URL = ""; 18 | // internal const string TELEMETRY_KEY = @"{OPTIMIZER-0EFC7B8A-D1FC-467F-B4B1-0117C643FE19-TELEMETRY}"; 19 | 20 | // internal static async void EnableTelemetryService() 21 | // { 22 | // TelemetryClient = new HttpClient(); 23 | // TelemetryClient.BaseAddress = new Uri(TELEMETRY_API_URL); 24 | // TelemetryClient.DefaultRequestHeaders.Add("Optimizertelemetrykey", TELEMETRY_KEY); 25 | // TelemetryClient.DefaultRequestHeaders 26 | // .Accept 27 | // .Add(new MediaTypeWithQualityHeaderValue("application/json")); 28 | 29 | // await CacheTelemetryData(); 30 | // } 31 | 32 | // internal static async Task GetSessionCountry() 33 | // { 34 | // try 35 | // { 36 | // string result = await TelemetryClient.GetStringAsync(GEO_LOOKUP_URL); 37 | // GeoLookupResult x = JsonConvert.DeserializeObject(result); 38 | // if (x.status == "success") 39 | // { 40 | // return x.country; 41 | // } 42 | // else 43 | // { 44 | // return "Unknown"; 45 | // } 46 | // } 47 | // catch 48 | // { 49 | // return "Unknown"; 50 | // } 51 | // } 52 | 53 | // internal static async Task CacheTelemetryData() 54 | // { 55 | // telemetryEntry.Country = await GetSessionCountry(); 56 | // telemetryEntry.WindowsVersion = Utilities.GetWindowsDetails(); 57 | // telemetryEntry.DotNetVersion = Utilities.GetNETFramework(); 58 | // telemetryEntry.OptimizerVersion = Program.GetCurrentVersionTostring(); 59 | // telemetryEntry.UnsafeMode = Program.UNSAFE_MODE.ToString(); 60 | // telemetryEntry.ExperimentalBuild = Program.EXPERIMENTAL_BUILD.ToString(); 61 | // telemetryEntry.TelemetryID = Options.CurrentOptions.TelemetryClientID; 62 | // } 63 | 64 | // internal static void GenerateTelemetryData(string functionName, string errorMessage, string errorStackTrace) 65 | // { 66 | // telemetryEntry.Timestamp = string.Format("{0:yyyy-MM-ddTHH:mm:ss.FFFZ}", DateTime.UtcNow); 67 | // telemetryEntry.LanguageCode = Enum.GetName(typeof(LanguageCode), Options.CurrentOptions.LanguageCode); 68 | // telemetryEntry.SavedOptions = JsonConvert.SerializeObject(Options.CurrentOptions, Formatting.Indented); 69 | // telemetryEntry.FunctionName = functionName; 70 | // telemetryEntry.ErrorMessage = errorMessage; 71 | // telemetryEntry.StackTrace = errorStackTrace; 72 | 73 | // SendTelemetryData(telemetryEntry); 74 | // } 75 | 76 | // internal static void SendTelemetryData(TelemetryData entry) 77 | // { 78 | // try 79 | // { 80 | // StringContent bodyContent = new StringContent(JsonConvert.SerializeObject(telemetryEntry, Formatting.Indented), Encoding.UTF8, "application/json"); 81 | // TelemetryClient.PostAsync(TelemetryClient.BaseAddress, bodyContent); 82 | // } 83 | // catch { } 84 | // } 85 | // } 86 | //} 87 | -------------------------------------------------------------------------------- /Optimizer/TokenPrivilegeHelper.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | using System.Security; 4 | 5 | namespace Optimizer 6 | { 7 | /* 8 | * Allows clients to obtain a Windows token privilege for a well-defined scope simply by "using" an instance of this class. 9 | */ 10 | sealed class TokenPrivilegeHelper : IDisposable 11 | { 12 | private enum PrivilegeAction : uint 13 | { 14 | Disable = 0x0, 15 | Enable = 0x2 16 | } 17 | 18 | public static TokenPrivilegeHelper Backup => new TokenPrivilegeHelper("SeBackupPrivilege"); 19 | public static TokenPrivilegeHelper Restore => new TokenPrivilegeHelper("SeRestorePrivilege"); 20 | public static TokenPrivilegeHelper TakeOwnership => new TokenPrivilegeHelper("SeTakeOwnershipPrivilege"); 21 | 22 | private readonly string privilegeName; 23 | 24 | private TokenPrivilegeHelper(string privilegeName) 25 | { 26 | this.privilegeName = privilegeName; 27 | Apply(PrivilegeAction.Enable); 28 | } 29 | 30 | private void Apply(PrivilegeAction action) 31 | { 32 | OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, out IntPtr tokenHandle); 33 | LookupPrivilegeValue(null, privilegeName, out Luid luid); 34 | var tokenPrivilege = new TokenPrivileges(luid, (uint)action); 35 | UpdateTokenPrivileges(tokenHandle, tokenPrivilege); 36 | } 37 | 38 | private void UpdateTokenPrivileges(IntPtr tokenHandle, TokenPrivileges privilegeInfo) 39 | { 40 | bool successful = AdjustTokenPrivileges(tokenHandle, false, ref privilegeInfo, 0, IntPtr.Zero, IntPtr.Zero); 41 | if (!successful || Marshal.GetLastWin32Error() == ERROR_NOT_ALL_ASSIGNED) 42 | throw new SecurityException($"Can't adjust token privilege {privilegeName}"); 43 | } 44 | 45 | public void Dispose() 46 | { 47 | Apply(PrivilegeAction.Disable); 48 | } 49 | 50 | #region P/Invoke structs and methods 51 | private const int ERROR_NOT_ALL_ASSIGNED = 1300; 52 | 53 | [StructLayout(LayoutKind.Sequential)] 54 | private struct TokenPrivileges 55 | { 56 | // We can use this struct only with one privilege since CLR doesn't support marshalling dynamic-sized arrays 57 | public TokenPrivileges(Luid luid, uint attributes) 58 | { 59 | Count = 1; 60 | Privileges = new[] { 61 | new LuidAndAttributes(luid, attributes) 62 | }; 63 | } 64 | 65 | private uint Count; 66 | [MarshalAs(UnmanagedType.ByValArray, SizeConst = 1)] 67 | private LuidAndAttributes[] Privileges; 68 | } 69 | 70 | [StructLayout(LayoutKind.Sequential)] 71 | private readonly struct LuidAndAttributes 72 | { 73 | public LuidAndAttributes(Luid luid, uint attributes) 74 | { 75 | Luid = luid; 76 | Attributes = attributes; 77 | } 78 | 79 | private readonly Luid Luid; 80 | private readonly uint Attributes; 81 | } 82 | 83 | [StructLayout(LayoutKind.Sequential)] 84 | private readonly struct Luid 85 | { 86 | private readonly uint LowPart; 87 | private readonly int HighPart; 88 | } 89 | 90 | private const int TOKEN_QUERY = 0x8; 91 | private const int TOKEN_ADJUST_PRIVILEGES = 0x20; 92 | 93 | [DllImport("advapi32.dll", SetLastError = true)] 94 | private static extern bool AdjustTokenPrivileges(IntPtr tokenHandle, 95 | bool disableAllPrivileges, 96 | ref TokenPrivileges newState, 97 | int bufferLength, 98 | IntPtr previousState, 99 | IntPtr returnLength); 100 | 101 | [DllImport("kernel32.dll")] 102 | private static extern IntPtr GetCurrentProcess(); 103 | 104 | [DllImport("advapi32.dll", SetLastError = true)] 105 | private static extern bool OpenProcessToken(IntPtr processHandle, int desiredAccess, out IntPtr tokenHandle); 106 | 107 | [DllImport("advapi32.dll", SetLastError = true)] 108 | private static extern bool LookupPrivilegeValue(string systemName, string privilegeName, out Luid privilegeLuid); 109 | #endregion 110 | } 111 | } 112 | -------------------------------------------------------------------------------- /Optimizer/UWPHelper.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Collections.ObjectModel; 3 | using System.Management.Automation; 4 | 5 | namespace Optimizer 6 | { 7 | internal static class UWPHelper 8 | { 9 | internal static List> GetUWPApps(bool showAll) 10 | { 11 | List> modernApps = new List>(); 12 | if (Utilities.CurrentWindowsVersion == WindowsVersion.Windows8) 13 | { 14 | showAll = true; 15 | } 16 | 17 | using (PowerShell script = PowerShell.Create()) 18 | { 19 | if (showAll) 20 | { 21 | script.AddScript("Get-AppxPackage | Select Name,InstallLocation"); 22 | } 23 | else 24 | { 25 | script.AddScript(@"Get-AppxPackage | Where {$_.NonRemovable -like ""False""} | Select Name,InstallLocation"); 26 | } 27 | 28 | string[] tmp; 29 | Collection psResult; 30 | try 31 | { 32 | psResult = script.Invoke(); 33 | } 34 | catch 35 | { 36 | return modernApps; 37 | } 38 | 39 | if (psResult == null) return modernApps; 40 | 41 | foreach (PSObject x in psResult) 42 | { 43 | tmp = x.ToString().Replace("@", string.Empty).Replace("{", string.Empty).Replace("}", string.Empty).Replace("Name=", string.Empty).Replace("InstallLocation=", string.Empty).Trim().Split(';'); 44 | if (!modernApps.Exists(i => i.Key == tmp[0])) 45 | { 46 | modernApps.Add(new KeyValuePair(tmp[0], tmp[1])); 47 | } 48 | } 49 | } 50 | 51 | return modernApps; 52 | } 53 | 54 | internal static bool UninstallUWPApp(string appName) 55 | { 56 | using (PowerShell script = PowerShell.Create()) 57 | { 58 | script.AddScript(string.Format("Get-AppxPackage -AllUsers '{0}' | Remove-AppxPackage", appName)); 59 | script.Invoke(); 60 | return script.Streams.Error.Count > 0; 61 | 62 | // not working on Windows 7 anymore 63 | //return script.HadErrors; 64 | } 65 | } 66 | 67 | internal static bool RestoreAllUWPApps() 68 | { 69 | string cmd = "Get-AppxPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register \"$($_.InstallLocation)\\AppXManifest.xml\"}"; 70 | 71 | using (PowerShell script = PowerShell.Create()) 72 | { 73 | script.AddScript(cmd); 74 | script.Invoke(); 75 | return script.Streams.Error.Count > 0; 76 | } 77 | } 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /Optimizer/optimizer.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/Optimizer/optimizer.ico -------------------------------------------------------------------------------- /Optimizer/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | Thank you for choosing the Optimizer! We take security seriously and are committed to providing a safe and reliable product. Please read through the following information to ensure you are using the Optimizer to its fullest potential while maintaining a secure environment. 4 | 5 | ## Supported Versions 6 | 7 | We actively support the following version of the Optimizer: 8 | 9 | | Version | Supported | 10 | | ------- | ------------------ | 11 | | 16.x | ✅ | 12 | 13 | If you are using a version older than 15.x, we highly recommend upgrading to the latest version to benefit from the latest security enhancements and features. 14 | 15 | ## Staying Up to Date 16 | 17 | To ensure you are benefiting from the latest improvements and security fixes, we strongly advise using the most recent version of the Optimizer. You can easily download the latest version from our official GitHub repository or directly within the app. 18 | 19 | The app is designed to automatically check for updates each time you run it. If an update is available, an icon will be displayed, alerting you to the new version. Before updating, you'll have the opportunity to review the upcoming changes to make an informed decision. 20 | 21 | ## Authenticity Verification 22 | 23 | It's important to ensure that you are using the official version of the Optimizer. To verify the authenticity of the application, please refer to the SHA256 hash provided on the main page of our GitHub repository. This hash acts as a fingerprint and guarantees that the application has not been tampered with. 24 | 25 | ## Reporting Security Vulnerabilities 26 | 27 | If you discover a vulnerability or have security concerns, we encourage you to report them promptly. You can do so by opening an issue on our GitHub repository and providing all the necessary details. We take security-related matters seriously and will promptly address your concerns. 28 | 29 | **Note:** We prioritize the security of our users. Therefore, security-related issues reported within the first 24 hours will receive immediate attention. Our dedicated team will work to provide an update as swiftly as possible, typically within 7-10 days. 30 | 31 | Thank you for choosing the Optimizer and being proactive about security. Your collaboration helps us maintain a secure environment for all users. 32 | -------------------------------------------------------------------------------- /banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/banner.png -------------------------------------------------------------------------------- /download-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/download-button.png -------------------------------------------------------------------------------- /flags.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/flags.png -------------------------------------------------------------------------------- /images/1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/1.PNG -------------------------------------------------------------------------------- /images/10.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/10.PNG -------------------------------------------------------------------------------- /images/11.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/11.PNG -------------------------------------------------------------------------------- /images/12.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/12.PNG -------------------------------------------------------------------------------- /images/2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/2.PNG -------------------------------------------------------------------------------- /images/3.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/3.PNG -------------------------------------------------------------------------------- /images/4.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/4.PNG -------------------------------------------------------------------------------- /images/5.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/5.PNG -------------------------------------------------------------------------------- /images/6.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/6.PNG -------------------------------------------------------------------------------- /images/7.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/7.PNG -------------------------------------------------------------------------------- /images/8.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/8.PNG -------------------------------------------------------------------------------- /images/9.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/9.PNG -------------------------------------------------------------------------------- /images/feed.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed.zip -------------------------------------------------------------------------------- /images/feed/7zip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/7zip.png -------------------------------------------------------------------------------- /images/feed/adobereader.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/adobereader.png -------------------------------------------------------------------------------- /images/feed/androidstudio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/androidstudio.png -------------------------------------------------------------------------------- /images/feed/antiexploit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/antiexploit.png -------------------------------------------------------------------------------- /images/feed/anydesk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/anydesk.png -------------------------------------------------------------------------------- /images/feed/atom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/atom.png -------------------------------------------------------------------------------- /images/feed/audacity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/audacity.png -------------------------------------------------------------------------------- /images/feed/balena.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/balena.png -------------------------------------------------------------------------------- /images/feed/bittorrent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/bittorrent.png -------------------------------------------------------------------------------- /images/feed/blender.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/blender.png -------------------------------------------------------------------------------- /images/feed/blizzard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/blizzard.png -------------------------------------------------------------------------------- /images/feed/brave.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/brave.png -------------------------------------------------------------------------------- /images/feed/bsplayer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/bsplayer.png -------------------------------------------------------------------------------- /images/feed/bulkcrapuninstaller.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/bulkcrapuninstaller.png -------------------------------------------------------------------------------- /images/feed/chrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/chrome.png -------------------------------------------------------------------------------- /images/feed/chromium.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/chromium.png -------------------------------------------------------------------------------- /images/feed/ddu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/ddu.png -------------------------------------------------------------------------------- /images/feed/deluge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/deluge.png -------------------------------------------------------------------------------- /images/feed/directx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/directx.png -------------------------------------------------------------------------------- /images/feed/discord.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/discord.png -------------------------------------------------------------------------------- /images/feed/dropbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/dropbox.png -------------------------------------------------------------------------------- /images/feed/eclipse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/eclipse.png -------------------------------------------------------------------------------- /images/feed/edge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/edge.png -------------------------------------------------------------------------------- /images/feed/epic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/epic.png -------------------------------------------------------------------------------- /images/feed/evernote.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/evernote.png -------------------------------------------------------------------------------- /images/feed/everything.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/everything.png -------------------------------------------------------------------------------- /images/feed/filezilla.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/filezilla.png -------------------------------------------------------------------------------- /images/feed/firefox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/firefox.png -------------------------------------------------------------------------------- /images/feed/flux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/flux.png -------------------------------------------------------------------------------- /images/feed/foobar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/foobar.png -------------------------------------------------------------------------------- /images/feed/foxit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/foxit.png -------------------------------------------------------------------------------- /images/feed/freetube.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/freetube.png -------------------------------------------------------------------------------- /images/feed/gimp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/gimp.png -------------------------------------------------------------------------------- /images/feed/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/github.png -------------------------------------------------------------------------------- /images/feed/gyazo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/gyazo.png -------------------------------------------------------------------------------- /images/feed/iobitdefrag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/iobitdefrag.png -------------------------------------------------------------------------------- /images/feed/iobitdrivers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/iobitdrivers.png -------------------------------------------------------------------------------- /images/feed/iobituninstall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/iobituninstall.png -------------------------------------------------------------------------------- /images/feed/iobitupdater.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/iobitupdater.png -------------------------------------------------------------------------------- /images/feed/irfanview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/irfanview.png -------------------------------------------------------------------------------- /images/feed/itunes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/itunes.png -------------------------------------------------------------------------------- /images/feed/java.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/java.png -------------------------------------------------------------------------------- /images/feed/klite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/klite.png -------------------------------------------------------------------------------- /images/feed/libreoffice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/libreoffice.png -------------------------------------------------------------------------------- /images/feed/lightshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/lightshot.png -------------------------------------------------------------------------------- /images/feed/malwarebytes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/malwarebytes.png -------------------------------------------------------------------------------- /images/feed/maxthon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/maxthon.png -------------------------------------------------------------------------------- /images/feed/mega.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/mega.png -------------------------------------------------------------------------------- /images/feed/motrix.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/motrix.png -------------------------------------------------------------------------------- /images/feed/mp3tag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/mp3tag.png -------------------------------------------------------------------------------- /images/feed/netfw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/netfw.png -------------------------------------------------------------------------------- /images/feed/nodejs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/nodejs.png -------------------------------------------------------------------------------- /images/feed/notepadpp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/notepadpp.png -------------------------------------------------------------------------------- /images/feed/obs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/obs.png -------------------------------------------------------------------------------- /images/feed/onedrive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/onedrive.png -------------------------------------------------------------------------------- /images/feed/openshell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/openshell.png -------------------------------------------------------------------------------- /images/feed/opera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/opera.png -------------------------------------------------------------------------------- /images/feed/origin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/origin.png -------------------------------------------------------------------------------- /images/feed/peazip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/peazip.png -------------------------------------------------------------------------------- /images/feed/photofiltre.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/photofiltre.png -------------------------------------------------------------------------------- /images/feed/postman.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/postman.png -------------------------------------------------------------------------------- /images/feed/potplayer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/potplayer.png -------------------------------------------------------------------------------- /images/feed/putty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/putty.png -------------------------------------------------------------------------------- /images/feed/python.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/python.png -------------------------------------------------------------------------------- /images/feed/qbittorrent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/qbittorrent.png -------------------------------------------------------------------------------- /images/feed/qview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/qview.png -------------------------------------------------------------------------------- /images/feed/revo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/revo.png -------------------------------------------------------------------------------- /images/feed/rufus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/rufus.png -------------------------------------------------------------------------------- /images/feed/rustdesk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/rustdesk.png -------------------------------------------------------------------------------- /images/feed/session.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/session.png -------------------------------------------------------------------------------- /images/feed/sharex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/sharex.png -------------------------------------------------------------------------------- /images/feed/signal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/signal.png -------------------------------------------------------------------------------- /images/feed/skype.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/skype.png -------------------------------------------------------------------------------- /images/feed/spotify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/spotify.png -------------------------------------------------------------------------------- /images/feed/steam.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/steam.png -------------------------------------------------------------------------------- /images/feed/sublimemerge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/sublimemerge.png -------------------------------------------------------------------------------- /images/feed/sublimetext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/sublimetext.png -------------------------------------------------------------------------------- /images/feed/sumatrapdf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/sumatrapdf.png -------------------------------------------------------------------------------- /images/feed/tcpoptimizer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/tcpoptimizer.png -------------------------------------------------------------------------------- /images/feed/teams.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/teams.png -------------------------------------------------------------------------------- /images/feed/teamviewer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/teamviewer.png -------------------------------------------------------------------------------- /images/feed/telegram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/telegram.png -------------------------------------------------------------------------------- /images/feed/thunderbird.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/thunderbird.png -------------------------------------------------------------------------------- /images/feed/tor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/tor.png -------------------------------------------------------------------------------- /images/feed/uplay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/uplay.png -------------------------------------------------------------------------------- /images/feed/utorrent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/utorrent.png -------------------------------------------------------------------------------- /images/feed/uui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/uui.png -------------------------------------------------------------------------------- /images/feed/viber.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/viber.png -------------------------------------------------------------------------------- /images/feed/viper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/viper.png -------------------------------------------------------------------------------- /images/feed/virtualbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/virtualbox.png -------------------------------------------------------------------------------- /images/feed/visualcpp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/visualcpp.png -------------------------------------------------------------------------------- /images/feed/visualstudio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/visualstudio.png -------------------------------------------------------------------------------- /images/feed/vivaldi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/vivaldi.png -------------------------------------------------------------------------------- /images/feed/vlc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/vlc.png -------------------------------------------------------------------------------- /images/feed/vscode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/vscode.png -------------------------------------------------------------------------------- /images/feed/vscodium.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/vscodium.png -------------------------------------------------------------------------------- /images/feed/winamp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/winamp.png -------------------------------------------------------------------------------- /images/feed/wincdemu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/wincdemu.png -------------------------------------------------------------------------------- /images/feed/winrar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/winrar.png -------------------------------------------------------------------------------- /images/feed/winscp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/winscp.png -------------------------------------------------------------------------------- /images/feed/wireshark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/wireshark.png -------------------------------------------------------------------------------- /images/feed/xampp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/xampp.png -------------------------------------------------------------------------------- /images/feed/zoom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/feed/zoom.png -------------------------------------------------------------------------------- /images/legacy.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hellzerg/optimizer/46e056f6a943b34050a8fe24a0a55e279d732401/images/legacy.PNG -------------------------------------------------------------------------------- /templates/template-windows10.json: -------------------------------------------------------------------------------- 1 | { 2 | "WindowsVersion": 10, 3 | "PostAction": { 4 | "Restart": null, 5 | "RestartType": "Normal" 6 | }, 7 | "Cleaner": { 8 | "TempFiles": null, 9 | "BsodDumps": null, 10 | "ErrorReports": null, 11 | "RecycleBin": null, 12 | "InternetExplorer": null, 13 | "GoogleChrome": { 14 | "Cache": null, 15 | "Cookies": null, 16 | "History": null, 17 | "Session": null, 18 | "Passwords": null 19 | }, 20 | "MozillaFirefox": { 21 | "Cache": null, 22 | "Cookies": null, 23 | "History": null 24 | }, 25 | "MicrosoftEdge": { 26 | "Cache": null, 27 | "Cookies": null, 28 | "History": null, 29 | "Session": null 30 | }, 31 | "BraveBrowser": { 32 | "Cache": null, 33 | "Cookies": null, 34 | "History": null, 35 | "Session": null, 36 | "Passwords": null 37 | } 38 | }, 39 | "Pinger": { 40 | "SetDNS": "", 41 | "CustomDNSv4": [], 42 | "CustomDNSv6": [], 43 | "FlushDNSCache": null 44 | }, 45 | "ProcessControl": { 46 | "Prevent": [], 47 | "Allow": [] 48 | }, 49 | "HostsEditor": { 50 | "Block": [], 51 | "Add": [], 52 | "Remove": [], 53 | "IncludeWwwCname": null 54 | }, 55 | "RegistryFix": { 56 | "TaskManager": null, 57 | "CommandPrompt": null, 58 | "ControlPanel": null, 59 | "FolderOptions": null, 60 | "RunDialog": null, 61 | "RightClickMenu": null, 62 | "WindowsFirewall": null, 63 | "RegistryEditor": null 64 | }, 65 | "Integrator": { 66 | "TakeOwnership": null, 67 | "OpenWithCMD": null 68 | }, 69 | "AdvancedTweaks": { 70 | "UnlockAllCores": null, 71 | "DisableHPET": null, 72 | "EnableLoginVerbose": null, 73 | "EnableRegistryBackups": null, 74 | "SvchostProcessSplitting": { 75 | "Disable": null, 76 | "RAM": null 77 | } 78 | }, 79 | "Tweaks": { 80 | "EnablePerformanceTweaks": null, 81 | "DisableNetworkThrottling": null, 82 | "DisableSystemRestore": null, 83 | "DisablePrintService": null, 84 | "DisableMediaPlayerSharing": null, 85 | "DisableErrorReporting": null, 86 | "DisableHomeGroup": null, 87 | "DisableSuperfetch": null, 88 | "DisableTelemetryTasks": null, 89 | "DisableOffice2016Telemetry": null, 90 | "DisableCompatibilityAssistant": null, 91 | "DisableHibernation": null, 92 | "DisableSMB1": null, 93 | "DisableSMB2": null, 94 | "DisableNTFSTimeStamp": null, 95 | "DisableFaxService": null, 96 | "DisableSmartScreen": null, 97 | "DisableStickyKeys": null, 98 | "DisableCloudClipboard": null, 99 | "EnableLegacyVolumeSlider": null, 100 | "DisableQuickAccessHistory": null, 101 | "DisableStartMenuAds": null, 102 | "UninstallOneDrive": null, 103 | "DisableMyPeople": null, 104 | "DisableAutomaticUpdates": null, 105 | "ExcludeDrivers": null, 106 | "DisableTelemetryServices": null, 107 | "DisablePrivacyOptions": null, 108 | "DisableCortana": null, 109 | "DisableSensorServices": null, 110 | "DisableWindowsInk": null, 111 | "DisableSpellingTyping": null, 112 | "DisableXboxLive": null, 113 | "DisableGameBar": null, 114 | "DisableInsiderService": null, 115 | "DisableStoreUpdates": null, 116 | "EnableLongPaths": null, 117 | "RemoveCastToDevice": null, 118 | "EnableGamingMode": null, 119 | "DisableTPMCheck": null, 120 | "DisableVirtualizationBasedTechnology": null, 121 | "DisableVisualStudioTelemetry": null, 122 | "DisableFirefoxTemeletry": null, 123 | "DisableChromeTelemetry": null, 124 | "DisableNVIDIATelemetry": null, 125 | "DisableSearch": null, 126 | "DisableEdgeDiscoverBar": null, 127 | "DisableEdgeTelemetry": null, 128 | "RestoreClassicPhotoViewer": null, 129 | "EnableUtcTime": null, 130 | "ShowAllTrayIcons": null, 131 | "RemoveMenusDelay": null, 132 | "DisableModernStandby": null, 133 | "HideTaskbarWeather": null, 134 | "HideTaskbarSearch": null, 135 | "DisableNewsInterests": null 136 | } 137 | } -------------------------------------------------------------------------------- /templates/template-windows11.json: -------------------------------------------------------------------------------- 1 | { 2 | "WindowsVersion": 11, 3 | "PostAction": { 4 | "Restart": null, 5 | "RestartType": "Normal" 6 | }, 7 | "Cleaner": { 8 | "TempFiles": null, 9 | "BsodDumps": null, 10 | "ErrorReports": null, 11 | "RecycleBin": null, 12 | "InternetExplorer": null, 13 | "GoogleChrome": { 14 | "Cache": null, 15 | "Cookies": null, 16 | "History": null, 17 | "Session": null, 18 | "Passwords": null 19 | }, 20 | "MozillaFirefox": { 21 | "Cache": null, 22 | "Cookies": null, 23 | "History": null 24 | }, 25 | "MicrosoftEdge": { 26 | "Cache": null, 27 | "Cookies": null, 28 | "History": null, 29 | "Session": null 30 | }, 31 | "BraveBrowser": { 32 | "Cache": null, 33 | "Cookies": null, 34 | "History": null, 35 | "Session": null, 36 | "Passwords": null 37 | } 38 | }, 39 | "Pinger": { 40 | "SetDNS": "", 41 | "CustomDNSv4": [], 42 | "CustomDNSv6": [], 43 | "FlushDNSCache": null 44 | }, 45 | "ProcessControl": { 46 | "Prevent": [], 47 | "Allow": [] 48 | }, 49 | "HostsEditor": { 50 | "Block": [], 51 | "Add": [], 52 | "Remove": [], 53 | "IncludeWwwCname": null 54 | }, 55 | "RegistryFix": { 56 | "TaskManager": null, 57 | "CommandPrompt": null, 58 | "ControlPanel": null, 59 | "FolderOptions": null, 60 | "RunDialog": null, 61 | "RightClickMenu": null, 62 | "WindowsFirewall": null, 63 | "RegistryEditor": null 64 | }, 65 | "Integrator": { 66 | "TakeOwnership": null, 67 | "OpenWithCMD": null 68 | }, 69 | "AdvancedTweaks": { 70 | "UnlockAllCores": null, 71 | "DisableHPET": null, 72 | "EnableRegistryBackups": null, 73 | "EnableLoginVerbose": null, 74 | "SvchostProcessSplitting": { 75 | "Disable": null, 76 | "RAM": null 77 | } 78 | }, 79 | "Tweaks": { 80 | "EnablePerformanceTweaks": null, 81 | "DisableNetworkThrottling": null, 82 | "DisableWindowsDefender": null, 83 | "DisableSystemRestore": null, 84 | "DisablePrintService": null, 85 | "DisableMediaPlayerSharing": null, 86 | "DisableErrorReporting": null, 87 | "DisableHomeGroup": null, 88 | "DisableSuperfetch": null, 89 | "DisableTelemetryTasks": null, 90 | "DisableOffice2016Telemetry": null, 91 | "DisableCompatibilityAssistant": null, 92 | "DisableHibernation": null, 93 | "DisableSMB1": null, 94 | "DisableSMB2": null, 95 | "DisableNTFSTimeStamp": null, 96 | "DisableFaxService": null, 97 | "DisableSmartScreen": null, 98 | "DisableStickyKeys": null, 99 | "DisableCloudClipboard": null, 100 | "EnableLegacyVolumeSlider": null, 101 | "DisableQuickAccessHistory": null, 102 | "DisableStartMenuAds": null, 103 | "UninstallOneDrive": null, 104 | "DisableMyPeople": null, 105 | "DisableAutomaticUpdates": null, 106 | "ExcludeDrivers": null, 107 | "DisableTelemetryServices": null, 108 | "DisablePrivacyOptions": null, 109 | "DisableCortana": null, 110 | "DisableSensorServices": null, 111 | "DisableWindowsInk": null, 112 | "DisableSpellingTyping": null, 113 | "DisableXboxLive": null, 114 | "DisableGameBar": null, 115 | "DisableInsiderService": null, 116 | "DisableStoreUpdates": null, 117 | "EnableLongPaths": null, 118 | "RemoveCastToDevice": null, 119 | "EnableGamingMode": null, 120 | "TaskbarToLeft": null, 121 | "DisableSnapAssist": null, 122 | "DisableWidgets": null, 123 | "DisableChat": null, 124 | "TaskbarSmaller": null, 125 | "DisableStickers": null, 126 | "ClassicRibbon": null, 127 | "ClassicMenu": null, 128 | "DisableTPMCheck": null, 129 | "CompactMode": null, 130 | "DisableVirtualizationBasedTechnology": null, 131 | "DisableVisualStudioTelemetry": null, 132 | "DisableFirefoxTemeletry": null, 133 | "DisableChromeTelemetry": null, 134 | "DisableNVIDIATelemetry": null, 135 | "DisableSearch": null, 136 | "DisableEdgeDiscoverBar": null, 137 | "DisableEdgeTelemetry": null, 138 | "DisableCoPilotAI": null, 139 | "RestoreClassicPhotoViewer": null, 140 | "EnableUtcTime": null, 141 | "ShowAllTrayIcons": null, 142 | "RemoveMenusDelay": null, 143 | "DisableModernStandby": null, 144 | "HideTaskbarWeather": null, 145 | "HideTaskbarSearch": null, 146 | "DisableNewsInterests": null 147 | } 148 | } -------------------------------------------------------------------------------- /templates/template-windows7.json: -------------------------------------------------------------------------------- 1 | { 2 | "WindowsVersion": 7, 3 | "PostAction": { 4 | "Restart": null, 5 | "RestartType": "Normal" 6 | }, 7 | "Cleaner": { 8 | "TempFiles": null, 9 | "BsodDumps": null, 10 | "ErrorReports": null, 11 | "RecycleBin": null, 12 | "InternetExplorer": null, 13 | "GoogleChrome": { 14 | "Cache": null, 15 | "Cookies": null, 16 | "History": null, 17 | "Session": null, 18 | "Passwords": null 19 | }, 20 | "MozillaFirefox": { 21 | "Cache": null, 22 | "Cookies": null, 23 | "History": null 24 | }, 25 | "MicrosoftEdge": { 26 | "Cache": null, 27 | "Cookies": null, 28 | "History": null, 29 | "Session": null 30 | }, 31 | "BraveBrowser": { 32 | "Cache": null, 33 | "Cookies": null, 34 | "History": null, 35 | "Session": null, 36 | "Passwords": null 37 | } 38 | }, 39 | "Pinger": { 40 | "SetDNS": "", 41 | "CustomDNSv4": [], 42 | "CustomDNSv6": [], 43 | "FlushDNSCache": null 44 | }, 45 | "ProcessControl": { 46 | "Prevent": [], 47 | "Allow": [] 48 | }, 49 | "HostsEditor": { 50 | "Block": [], 51 | "Add": [], 52 | "Remove": [], 53 | "IncludeWwwCname": null 54 | }, 55 | "RegistryFix": { 56 | "TaskManager": null, 57 | "CommandPrompt": null, 58 | "ControlPanel": null, 59 | "FolderOptions": null, 60 | "RunDialog": null, 61 | "RightClickMenu": null, 62 | "WindowsFirewall": null, 63 | "RegistryEditor": null 64 | }, 65 | "Integrator": { 66 | "TakeOwnership": null, 67 | "OpenWithCMD": null 68 | }, 69 | "AdvancedTweaks": { 70 | "UnlockAllCores": null, 71 | "DisableHPET": null, 72 | "EnableLoginVerbose": null 73 | }, 74 | "Tweaks": { 75 | "EnablePerformanceTweaks": null, 76 | "DisableNetworkThrottling": null, 77 | "DisableWindowsDefender": null, 78 | "DisableSystemRestore": null, 79 | "DisablePrintService": null, 80 | "DisableMediaPlayerSharing": null, 81 | "DisableErrorReporting": null, 82 | "DisableHomeGroup": null, 83 | "DisableSuperfetch": null, 84 | "DisableTelemetryTasks": null, 85 | "DisableOffice2016Telemetry": null, 86 | "DisableCompatibilityAssistant": null, 87 | "DisableHibernation": null, 88 | "DisableSMB1": null, 89 | "DisableSMB2": null, 90 | "DisableNTFSTimeStamp": null, 91 | "DisableFaxService": null, 92 | "DisableSmartScreen": null, 93 | "DisableStickyKeys": null, 94 | "DisableVisualStudioTelemetry": null, 95 | "DisableFirefoxTemeletry": null, 96 | "DisableChromeTelemetry": null, 97 | "DisableNVIDIATelemetry": null, 98 | "DisableSearch": null, 99 | "EnableUtcTime": null, 100 | "ShowAllTrayIcons": null, 101 | "RemoveMenusDelay": null 102 | } 103 | } -------------------------------------------------------------------------------- /templates/template-windows8.json: -------------------------------------------------------------------------------- 1 | { 2 | "WindowsVersion": 8, 3 | "PostAction": { 4 | "Restart": null, 5 | "RestartType": "Normal" 6 | }, 7 | "Cleaner": { 8 | "TempFiles": null, 9 | "BsodDumps": null, 10 | "ErrorReports": null, 11 | "RecycleBin": null, 12 | "InternetExplorer": null, 13 | "GoogleChrome": { 14 | "Cache": null, 15 | "Cookies": null, 16 | "History": null, 17 | "Session": null, 18 | "Passwords": null 19 | }, 20 | "MozillaFirefox": { 21 | "Cache": null, 22 | "Cookies": null, 23 | "History": null 24 | }, 25 | "MicrosoftEdge": { 26 | "Cache": null, 27 | "Cookies": null, 28 | "History": null, 29 | "Session": null 30 | }, 31 | "BraveBrowser": { 32 | "Cache": null, 33 | "Cookies": null, 34 | "History": null, 35 | "Session": null, 36 | "Passwords": null 37 | } 38 | }, 39 | "Pinger": { 40 | "SetDNS": "", 41 | "CustomDNSv4": [], 42 | "CustomDNSv6": [], 43 | "FlushDNSCache": null 44 | }, 45 | "ProcessControl": { 46 | "Prevent": [], 47 | "Allow": [] 48 | }, 49 | "HostsEditor": { 50 | "Block": [], 51 | "Add": [], 52 | "Remove": [], 53 | "IncludeWwwCname": null 54 | }, 55 | "RegistryFix": { 56 | "TaskManager": null, 57 | "CommandPrompt": null, 58 | "ControlPanel": null, 59 | "FolderOptions": null, 60 | "RunDialog": null, 61 | "RightClickMenu": null, 62 | "WindowsFirewall": null, 63 | "RegistryEditor": null 64 | }, 65 | "Integrator": { 66 | "TakeOwnership": null, 67 | "OpenWithCMD": null 68 | }, 69 | "AdvancedTweaks": { 70 | "UnlockAllCores": null, 71 | "DisableHPET": null, 72 | "EnableLoginVerbose": null 73 | }, 74 | "Tweaks": { 75 | "EnablePerformanceTweaks": null, 76 | "DisableNetworkThrottling": null, 77 | "DisableWindowsDefender": null, 78 | "DisableSystemRestore": null, 79 | "DisablePrintService": null, 80 | "DisableMediaPlayerSharing": null, 81 | "DisableErrorReporting": null, 82 | "DisableHomeGroup": null, 83 | "DisableSuperfetch": null, 84 | "DisableTelemetryTasks": null, 85 | "DisableOffice2016Telemetry": null, 86 | "DisableCompatibilityAssistant": null, 87 | "DisableHibernation": null, 88 | "DisableSMB1": null, 89 | "DisableSMB2": null, 90 | "DisableNTFSTimeStamp": null, 91 | "DisableFaxService": null, 92 | "DisableSmartScreen": null, 93 | "DisableStickyKeys": null, 94 | "DisableVisualStudioTelemetry": null, 95 | "DisableFirefoxTemeletry": null, 96 | "DisableChromeTelemetry": null, 97 | "DisableNVIDIATelemetry": null, 98 | "DisableSearch": null, 99 | "EnableUtcTime": null, 100 | "ShowAllTrayIcons": null, 101 | "RemoveMenusDelay": null, 102 | "DisableOneDrive": null 103 | } 104 | } -------------------------------------------------------------------------------- /version.txt: -------------------------------------------------------------------------------- 1 | 16.7 --------------------------------------------------------------------------------