├── version.txt
├── flags.png
├── banner.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
│ ├── ddu.png
│ ├── obs.png
│ ├── tor.png
│ ├── uui.png
│ ├── vlc.png
│ ├── 7zip.png
│ ├── atom.png
│ ├── brave.png
│ ├── edge.png
│ ├── epic.png
│ ├── flux.png
│ ├── foxit.png
│ ├── gimp.png
│ ├── gyazo.png
│ ├── java.png
│ ├── klite.png
│ ├── mega.png
│ ├── netfw.png
│ ├── opera.png
│ ├── putty.png
│ ├── qview.png
│ ├── revo.png
│ ├── rufus.png
│ ├── skype.png
│ ├── steam.png
│ ├── teams.png
│ ├── uplay.png
│ ├── viber.png
│ ├── viper.png
│ ├── xampp.png
│ ├── zoom.png
│ ├── anydesk.png
│ ├── audacity.png
│ ├── balena.png
│ ├── blender.png
│ ├── blizzard.png
│ ├── bsplayer.png
│ ├── chrome.png
│ ├── chromium.png
│ ├── deluge.png
│ ├── directx.png
│ ├── discord.png
│ ├── dropbox.png
│ ├── eclipse.png
│ ├── evernote.png
│ ├── firefox.png
│ ├── foobar.png
│ ├── freetube.png
│ ├── github.png
│ ├── itunes.png
│ ├── maxthon.png
│ ├── motrix.png
│ ├── mp3tag.png
│ ├── nodejs.png
│ ├── onedrive.png
│ ├── origin.png
│ ├── peazip.png
│ ├── postman.png
│ ├── python.png
│ ├── rustdesk.png
│ ├── session.png
│ ├── sharex.png
│ ├── signal.png
│ ├── spotify.png
│ ├── telegram.png
│ ├── utorrent.png
│ ├── vivaldi.png
│ ├── vscode.png
│ ├── vscodium.png
│ ├── winamp.png
│ ├── wincdemu.png
│ ├── winrar.png
│ ├── winscp.png
│ ├── bittorrent.png
│ ├── everything.png
│ ├── filezilla.png
│ ├── irfanview.png
│ ├── lightshot.png
│ ├── notepadpp.png
│ ├── openshell.png
│ ├── potplayer.png
│ ├── sumatrapdf.png
│ ├── teamviewer.png
│ ├── virtualbox.png
│ ├── visualcpp.png
│ ├── wireshark.png
│ ├── adobereader.png
│ ├── androidstudio.png
│ ├── antiexploit.png
│ ├── iobitdefrag.png
│ ├── iobitdrivers.png
│ ├── iobitupdater.png
│ ├── libreoffice.png
│ ├── malwarebytes.png
│ ├── photofiltre.png
│ ├── qbittorrent.png
│ ├── sublimemerge.png
│ ├── sublimetext.png
│ ├── tcpoptimizer.png
│ ├── thunderbird.png
│ ├── visualstudio.png
│ ├── iobituninstall.png
│ └── bulkcrapuninstaller.png
└── legacy.PNG
├── download-button.png
├── LEGACY.md
├── Optimizer
├── optimizer.ico
├── Newtonsoft.Json.dll
├── Resources
│ ├── Flags
│ │ ├── iran.png
│ │ ├── brazil.png
│ │ ├── china.png
│ │ ├── czech.png
│ │ ├── dutch.png
│ │ ├── egypt.png
│ │ ├── france.png
│ │ ├── greece.png
│ │ ├── italy.png
│ │ ├── japan.png
│ │ ├── korea.png
│ │ ├── nepal.png
│ │ ├── poland.png
│ │ ├── russia.png
│ │ ├── spain.png
│ │ ├── taiwan.png
│ │ ├── turkey.png
│ │ ├── bulgaria.png
│ │ ├── croatia.png
│ │ ├── germany.png
│ │ ├── hungary.png
│ │ ├── indonesia.png
│ │ ├── kurdish.png
│ │ ├── pakistan.png
│ │ ├── romania.png
│ │ ├── ukraine.png
│ │ ├── vietnam.png
│ │ └── united-kingdom.png
│ ├── Assets
│ │ ├── logo.png
│ │ └── banner.png
│ ├── Scripts
│ │ ├── PowerMenu.reg
│ │ ├── SystemTools.reg
│ │ ├── WindowsApps.reg
│ │ ├── DesktopShortcuts.reg
│ │ ├── SystemShortcuts.reg
│ │ ├── RemoveTakeOwnership.reg
│ │ ├── DisableClassicPhotoViewer.reg
│ │ ├── RestoreClassicPhotoViewer.reg
│ │ ├── EnableXboxTasks.bat
│ │ ├── DisableXboxTasks.bat
│ │ ├── GPEditEnablerInHome.bat
│ │ ├── EnableOfficeTelemetry.reg
│ │ ├── InstallTakeOwnership.reg
│ │ ├── DisableOfficeTelemetry.reg
│ │ ├── AddOpenWithCMD.reg
│ │ ├── hosts
│ │ ├── OneDrive_Uninstaller.bin
│ │ ├── EnableOfficeTelemetryTasks.bat
│ │ ├── DisableOfficeTelemetryTasks.bat
│ │ ├── EnableTelemetryTasks.bat
│ │ ├── EnableDefenderSafeMode1903Plus.bat
│ │ ├── DisableDefenderSafeMode1903Plus.bat
│ │ └── DisableTelemetryTasks.bat
│ └── Fonts
│ │ └── Poppins-Regular.ttf
├── packages.config
├── App.config
├── Controls
│ ├── AppCard.cs
│ ├── MoonCheck.cs
│ ├── MoonRadio.cs
│ ├── MoonProgress.cs
│ ├── MoonCheckList.cs
│ ├── MoonList.cs
│ ├── ListViewColumnSorter.cs
│ ├── MoonTree.cs
│ ├── MoonSelect.cs
│ ├── ToggleCard.cs
│ ├── MoonToggle.cs
│ ├── AppCard.Designer.cs
│ ├── MoonMenuRenderer.cs
│ └── ToggleCard.Designer.cs
├── Properties
│ ├── Settings.settings
│ ├── Settings.Designer.cs
│ └── AssemblyInfo.cs
├── Forms
│ ├── SplashForm.cs
│ ├── SubForm.cs
│ ├── InfoForm.cs
│ ├── UpdateForm.cs
│ ├── HostsEditorForm.cs
│ ├── FileUnlockForm.cs
│ ├── StartupPreviewForm.cs
│ ├── HelperForm.cs
│ ├── StartupPreviewForm.Designer.cs
│ ├── AboutForm.cs
│ └── SplashForm.Designer.cs
├── Models
│ ├── AppInfo.cs
│ ├── StartupBackupItem.cs
│ ├── TelemetryData.cs
│ ├── WorkEventArgs.cs
│ ├── WorkEvent.cs
│ ├── Enums.cs
│ ├── StartupItem.cs
│ └── Hardware.cs
├── DebugHelper.cs
├── NetworkAdapter.cs
├── ByteSize
│ ├── DecimalByteSize.cs
│ └── BinaryByteSize.cs
├── Constants.cs
├── EmbeddedAssembly.cs
├── UWPHelper.cs
├── NetworkMonitor.cs
├── TelemetryHelper.cs
├── ErrorLogger.cs
├── FileHandleHelper.cs
└── TokenPrivilegeHelper.cs
├── .github
├── workflows
│ └── build.yml
└── ISSUE_TEMPLATE
│ ├── bug_report.md
│ └── feature_request.md
├── IMAGES.md
├── Optimizer.sln
├── FEED.md
├── SECURITY.md
├── CONFS.md
├── .gitattributes
├── templates
├── template-windows7.json
├── template-windows8.json
├── template-windows10.json
└── template-windows11.json
├── FAQ.md
└── AUTOMATION.md
/version.txt:
--------------------------------------------------------------------------------
1 | 16.7
--------------------------------------------------------------------------------
/flags.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/flags.png
--------------------------------------------------------------------------------
/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/banner.png
--------------------------------------------------------------------------------
/images/1.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/1.PNG
--------------------------------------------------------------------------------
/images/10.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/10.PNG
--------------------------------------------------------------------------------
/images/11.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/11.PNG
--------------------------------------------------------------------------------
/images/12.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/12.PNG
--------------------------------------------------------------------------------
/images/2.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/2.PNG
--------------------------------------------------------------------------------
/images/3.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/3.PNG
--------------------------------------------------------------------------------
/images/4.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/4.PNG
--------------------------------------------------------------------------------
/images/5.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/5.PNG
--------------------------------------------------------------------------------
/images/6.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/6.PNG
--------------------------------------------------------------------------------
/images/7.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/7.PNG
--------------------------------------------------------------------------------
/images/8.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/8.PNG
--------------------------------------------------------------------------------
/images/9.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/9.PNG
--------------------------------------------------------------------------------
/images/feed.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed.zip
--------------------------------------------------------------------------------
/download-button.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/download-button.png
--------------------------------------------------------------------------------
/images/feed/ddu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/ddu.png
--------------------------------------------------------------------------------
/images/feed/obs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/obs.png
--------------------------------------------------------------------------------
/images/feed/tor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/tor.png
--------------------------------------------------------------------------------
/images/feed/uui.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/uui.png
--------------------------------------------------------------------------------
/images/feed/vlc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/vlc.png
--------------------------------------------------------------------------------
/images/legacy.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/legacy.PNG
--------------------------------------------------------------------------------
/images/feed/7zip.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/7zip.png
--------------------------------------------------------------------------------
/images/feed/atom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/atom.png
--------------------------------------------------------------------------------
/images/feed/brave.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/brave.png
--------------------------------------------------------------------------------
/images/feed/edge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/edge.png
--------------------------------------------------------------------------------
/images/feed/epic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/epic.png
--------------------------------------------------------------------------------
/images/feed/flux.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/flux.png
--------------------------------------------------------------------------------
/images/feed/foxit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/foxit.png
--------------------------------------------------------------------------------
/images/feed/gimp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/gimp.png
--------------------------------------------------------------------------------
/images/feed/gyazo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/gyazo.png
--------------------------------------------------------------------------------
/images/feed/java.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/java.png
--------------------------------------------------------------------------------
/images/feed/klite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/klite.png
--------------------------------------------------------------------------------
/images/feed/mega.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/mega.png
--------------------------------------------------------------------------------
/images/feed/netfw.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/netfw.png
--------------------------------------------------------------------------------
/images/feed/opera.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/opera.png
--------------------------------------------------------------------------------
/images/feed/putty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/putty.png
--------------------------------------------------------------------------------
/images/feed/qview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/qview.png
--------------------------------------------------------------------------------
/images/feed/revo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/revo.png
--------------------------------------------------------------------------------
/images/feed/rufus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/rufus.png
--------------------------------------------------------------------------------
/images/feed/skype.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/skype.png
--------------------------------------------------------------------------------
/images/feed/steam.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/steam.png
--------------------------------------------------------------------------------
/images/feed/teams.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/teams.png
--------------------------------------------------------------------------------
/images/feed/uplay.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/uplay.png
--------------------------------------------------------------------------------
/images/feed/viber.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/viber.png
--------------------------------------------------------------------------------
/images/feed/viper.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/viper.png
--------------------------------------------------------------------------------
/images/feed/xampp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/xampp.png
--------------------------------------------------------------------------------
/images/feed/zoom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/zoom.png
--------------------------------------------------------------------------------
/LEGACY.md:
--------------------------------------------------------------------------------
1 | 
2 |
--------------------------------------------------------------------------------
/Optimizer/optimizer.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/optimizer.ico
--------------------------------------------------------------------------------
/images/feed/anydesk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/anydesk.png
--------------------------------------------------------------------------------
/images/feed/audacity.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/audacity.png
--------------------------------------------------------------------------------
/images/feed/balena.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/balena.png
--------------------------------------------------------------------------------
/images/feed/blender.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/blender.png
--------------------------------------------------------------------------------
/images/feed/blizzard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/blizzard.png
--------------------------------------------------------------------------------
/images/feed/bsplayer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/bsplayer.png
--------------------------------------------------------------------------------
/images/feed/chrome.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/chrome.png
--------------------------------------------------------------------------------
/images/feed/chromium.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/chromium.png
--------------------------------------------------------------------------------
/images/feed/deluge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/deluge.png
--------------------------------------------------------------------------------
/images/feed/directx.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/directx.png
--------------------------------------------------------------------------------
/images/feed/discord.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/discord.png
--------------------------------------------------------------------------------
/images/feed/dropbox.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/dropbox.png
--------------------------------------------------------------------------------
/images/feed/eclipse.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/eclipse.png
--------------------------------------------------------------------------------
/images/feed/evernote.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/evernote.png
--------------------------------------------------------------------------------
/images/feed/firefox.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/firefox.png
--------------------------------------------------------------------------------
/images/feed/foobar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/foobar.png
--------------------------------------------------------------------------------
/images/feed/freetube.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/freetube.png
--------------------------------------------------------------------------------
/images/feed/github.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/github.png
--------------------------------------------------------------------------------
/images/feed/itunes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/itunes.png
--------------------------------------------------------------------------------
/images/feed/maxthon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/maxthon.png
--------------------------------------------------------------------------------
/images/feed/motrix.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/motrix.png
--------------------------------------------------------------------------------
/images/feed/mp3tag.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/mp3tag.png
--------------------------------------------------------------------------------
/images/feed/nodejs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/nodejs.png
--------------------------------------------------------------------------------
/images/feed/onedrive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/onedrive.png
--------------------------------------------------------------------------------
/images/feed/origin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/origin.png
--------------------------------------------------------------------------------
/images/feed/peazip.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/peazip.png
--------------------------------------------------------------------------------
/images/feed/postman.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/postman.png
--------------------------------------------------------------------------------
/images/feed/python.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/python.png
--------------------------------------------------------------------------------
/images/feed/rustdesk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/rustdesk.png
--------------------------------------------------------------------------------
/images/feed/session.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/session.png
--------------------------------------------------------------------------------
/images/feed/sharex.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/sharex.png
--------------------------------------------------------------------------------
/images/feed/signal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/signal.png
--------------------------------------------------------------------------------
/images/feed/spotify.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/spotify.png
--------------------------------------------------------------------------------
/images/feed/telegram.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/telegram.png
--------------------------------------------------------------------------------
/images/feed/utorrent.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/utorrent.png
--------------------------------------------------------------------------------
/images/feed/vivaldi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/vivaldi.png
--------------------------------------------------------------------------------
/images/feed/vscode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/vscode.png
--------------------------------------------------------------------------------
/images/feed/vscodium.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/vscodium.png
--------------------------------------------------------------------------------
/images/feed/winamp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/winamp.png
--------------------------------------------------------------------------------
/images/feed/wincdemu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/wincdemu.png
--------------------------------------------------------------------------------
/images/feed/winrar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/winrar.png
--------------------------------------------------------------------------------
/images/feed/winscp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/winscp.png
--------------------------------------------------------------------------------
/images/feed/bittorrent.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/bittorrent.png
--------------------------------------------------------------------------------
/images/feed/everything.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/everything.png
--------------------------------------------------------------------------------
/images/feed/filezilla.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/filezilla.png
--------------------------------------------------------------------------------
/images/feed/irfanview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/irfanview.png
--------------------------------------------------------------------------------
/images/feed/lightshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/lightshot.png
--------------------------------------------------------------------------------
/images/feed/notepadpp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/notepadpp.png
--------------------------------------------------------------------------------
/images/feed/openshell.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/openshell.png
--------------------------------------------------------------------------------
/images/feed/potplayer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/potplayer.png
--------------------------------------------------------------------------------
/images/feed/sumatrapdf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/sumatrapdf.png
--------------------------------------------------------------------------------
/images/feed/teamviewer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/teamviewer.png
--------------------------------------------------------------------------------
/images/feed/virtualbox.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/virtualbox.png
--------------------------------------------------------------------------------
/images/feed/visualcpp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/visualcpp.png
--------------------------------------------------------------------------------
/images/feed/wireshark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/wireshark.png
--------------------------------------------------------------------------------
/Optimizer/Newtonsoft.Json.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Newtonsoft.Json.dll
--------------------------------------------------------------------------------
/images/feed/adobereader.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/adobereader.png
--------------------------------------------------------------------------------
/images/feed/androidstudio.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/androidstudio.png
--------------------------------------------------------------------------------
/images/feed/antiexploit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/antiexploit.png
--------------------------------------------------------------------------------
/images/feed/iobitdefrag.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/iobitdefrag.png
--------------------------------------------------------------------------------
/images/feed/iobitdrivers.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/iobitdrivers.png
--------------------------------------------------------------------------------
/images/feed/iobitupdater.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/iobitupdater.png
--------------------------------------------------------------------------------
/images/feed/libreoffice.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/libreoffice.png
--------------------------------------------------------------------------------
/images/feed/malwarebytes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/malwarebytes.png
--------------------------------------------------------------------------------
/images/feed/photofiltre.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/photofiltre.png
--------------------------------------------------------------------------------
/images/feed/qbittorrent.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/qbittorrent.png
--------------------------------------------------------------------------------
/images/feed/sublimemerge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/sublimemerge.png
--------------------------------------------------------------------------------
/images/feed/sublimetext.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/sublimetext.png
--------------------------------------------------------------------------------
/images/feed/tcpoptimizer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/tcpoptimizer.png
--------------------------------------------------------------------------------
/images/feed/thunderbird.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/thunderbird.png
--------------------------------------------------------------------------------
/images/feed/visualstudio.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/visualstudio.png
--------------------------------------------------------------------------------
/images/feed/iobituninstall.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/iobituninstall.png
--------------------------------------------------------------------------------
/Optimizer/Resources/Flags/iran.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Flags/iran.png
--------------------------------------------------------------------------------
/Optimizer/Resources/Assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Assets/logo.png
--------------------------------------------------------------------------------
/Optimizer/Resources/Flags/brazil.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Flags/brazil.png
--------------------------------------------------------------------------------
/Optimizer/Resources/Flags/china.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Flags/china.png
--------------------------------------------------------------------------------
/Optimizer/Resources/Flags/czech.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Flags/czech.png
--------------------------------------------------------------------------------
/Optimizer/Resources/Flags/dutch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Flags/dutch.png
--------------------------------------------------------------------------------
/Optimizer/Resources/Flags/egypt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Flags/egypt.png
--------------------------------------------------------------------------------
/Optimizer/Resources/Flags/france.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Flags/france.png
--------------------------------------------------------------------------------
/Optimizer/Resources/Flags/greece.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Flags/greece.png
--------------------------------------------------------------------------------
/Optimizer/Resources/Flags/italy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Flags/italy.png
--------------------------------------------------------------------------------
/Optimizer/Resources/Flags/japan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Flags/japan.png
--------------------------------------------------------------------------------
/Optimizer/Resources/Flags/korea.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Flags/korea.png
--------------------------------------------------------------------------------
/Optimizer/Resources/Flags/nepal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Flags/nepal.png
--------------------------------------------------------------------------------
/Optimizer/Resources/Flags/poland.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Flags/poland.png
--------------------------------------------------------------------------------
/Optimizer/Resources/Flags/russia.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Flags/russia.png
--------------------------------------------------------------------------------
/Optimizer/Resources/Flags/spain.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Flags/spain.png
--------------------------------------------------------------------------------
/Optimizer/Resources/Flags/taiwan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Flags/taiwan.png
--------------------------------------------------------------------------------
/Optimizer/Resources/Flags/turkey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Flags/turkey.png
--------------------------------------------------------------------------------
/images/feed/bulkcrapuninstaller.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/images/feed/bulkcrapuninstaller.png
--------------------------------------------------------------------------------
/Optimizer/Resources/Assets/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Assets/banner.png
--------------------------------------------------------------------------------
/Optimizer/Resources/Flags/bulgaria.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Flags/bulgaria.png
--------------------------------------------------------------------------------
/Optimizer/Resources/Flags/croatia.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Flags/croatia.png
--------------------------------------------------------------------------------
/Optimizer/Resources/Flags/germany.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Flags/germany.png
--------------------------------------------------------------------------------
/Optimizer/Resources/Flags/hungary.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Flags/hungary.png
--------------------------------------------------------------------------------
/Optimizer/Resources/Flags/indonesia.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Flags/indonesia.png
--------------------------------------------------------------------------------
/Optimizer/Resources/Flags/kurdish.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Flags/kurdish.png
--------------------------------------------------------------------------------
/Optimizer/Resources/Flags/pakistan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Flags/pakistan.png
--------------------------------------------------------------------------------
/Optimizer/Resources/Flags/romania.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Flags/romania.png
--------------------------------------------------------------------------------
/Optimizer/Resources/Flags/ukraine.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Flags/ukraine.png
--------------------------------------------------------------------------------
/Optimizer/Resources/Flags/vietnam.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Flags/vietnam.png
--------------------------------------------------------------------------------
/Optimizer/Resources/Scripts/PowerMenu.reg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Scripts/PowerMenu.reg
--------------------------------------------------------------------------------
/Optimizer/Resources/Flags/united-kingdom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Flags/united-kingdom.png
--------------------------------------------------------------------------------
/Optimizer/Resources/Scripts/SystemTools.reg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Scripts/SystemTools.reg
--------------------------------------------------------------------------------
/Optimizer/Resources/Scripts/WindowsApps.reg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Scripts/WindowsApps.reg
--------------------------------------------------------------------------------
/Optimizer/Resources/Fonts/Poppins-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Fonts/Poppins-Regular.ttf
--------------------------------------------------------------------------------
/Optimizer/Resources/Scripts/DesktopShortcuts.reg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Scripts/DesktopShortcuts.reg
--------------------------------------------------------------------------------
/Optimizer/Resources/Scripts/SystemShortcuts.reg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Scripts/SystemShortcuts.reg
--------------------------------------------------------------------------------
/Optimizer/Resources/Scripts/RemoveTakeOwnership.reg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Scripts/RemoveTakeOwnership.reg
--------------------------------------------------------------------------------
/Optimizer/Resources/Scripts/DisableClassicPhotoViewer.reg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Scripts/DisableClassicPhotoViewer.reg
--------------------------------------------------------------------------------
/Optimizer/Resources/Scripts/RestoreClassicPhotoViewer.reg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/befoulers/optimizer/HEAD/Optimizer/Resources/Scripts/RestoreClassicPhotoViewer.reg
--------------------------------------------------------------------------------
/Optimizer/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Optimizer/Resources/Scripts/EnableXboxTasks.bat:
--------------------------------------------------------------------------------
1 | schtasks /change /tn "\Microsoft\XblGameSave\XblGameSaveTask" /enable
2 | schtasks /change /tn "\Microsoft\XblGameSave\XblGameSaveTaskLogon" /enable
3 |
--------------------------------------------------------------------------------
/Optimizer/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/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/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/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/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/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/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/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 |
--------------------------------------------------------------------------------
/.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 |
--------------------------------------------------------------------------------
/.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 |
--------------------------------------------------------------------------------
/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/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/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/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/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/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/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/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 |
--------------------------------------------------------------------------------
/IMAGES.md:
--------------------------------------------------------------------------------
1 | 
2 | 
3 | 
4 | 
5 | 
6 | 
7 | 
8 | 
9 | 
10 | 
11 | 
12 | 
13 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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/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/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/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 |
--------------------------------------------------------------------------------
/.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 |
--------------------------------------------------------------------------------
/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/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/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/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/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/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/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 |
--------------------------------------------------------------------------------
/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 | }
--------------------------------------------------------------------------------
/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/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/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/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/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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/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/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/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 | }
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 | }
--------------------------------------------------------------------------------
/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/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/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 |
--------------------------------------------------------------------------------
/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 | }
--------------------------------------------------------------------------------
/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/Models/Hardware.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 |
4 | namespace Optimizer
5 | {
6 | ///
7 | /// A full representation of all the computer components with the most usual details
8 | ///
9 |
10 | public sealed class CPU
11 | {
12 | public string Name { get; set; }
13 | public ByteSize L2CacheSize { get; set; }
14 | public ByteSize L3CacheSize { get; set; }
15 | public UInt32 Cores { get; set; }
16 | public UInt32 Threads { get; set; }
17 | public UInt32 LogicalCpus { get; set; }
18 | public string Virtualization { get; set; }
19 | public string DataExecutionPrevention { get; set; }
20 | public string Stepping { get; set; }
21 | public string Revision { get; set; }
22 | }
23 |
24 | public sealed class RAM
25 | {
26 | public string BankLabel { get; set; }
27 | public ByteSize Capacity { get; set; }
28 | public string FormFactor { get; set; }
29 | public string Manufacturer { get; set; }
30 | public string MemoryType { get; set; }
31 | public UInt32 Speed { get; set; }
32 | }
33 |
34 | public sealed class VirtualMemory
35 | {
36 | public ByteSize TotalVirtualMemory { get; set; }
37 | public ByteSize AvailableVirtualMemory { get; set; }
38 | public ByteSize UsedVirtualMemory { get; set; }
39 | }
40 |
41 | public sealed class GPU
42 | {
43 | public string Name { get; set; }
44 | public ByteSize Memory { get; set; }
45 | public UInt32 ResolutionX { get; set; }
46 | public UInt32 ResolutionY { get; set; }
47 | public UInt32 RefreshRate { get; set; }
48 | public string DACType { get; set; }
49 | public string VideoMemoryType { get; set; }
50 | }
51 |
52 | public sealed class Disk
53 | {
54 | public UInt32 BytesPerSector { get; set; }
55 | public string FirmwareRevision { get; set; }
56 | public string MediaType { get; set; }
57 | public string Model { get; set; }
58 | public ByteSize Capacity { get; set; }
59 | }
60 |
61 | public sealed class Volume
62 | {
63 | public UInt64 BlockSize { get; set; }
64 | public ByteSize Capacity { get; set; }
65 | public string Compressed { get; set; }
66 | public string DriveLetter { get; set; }
67 | public string DriveType { get; set; }
68 | public string FileSystem { get; set; }
69 | public ByteSize FreeSpace { get; set; }
70 | public ByteSize UsedSpace { get; set; }
71 | public string Indexing { get; set; }
72 | public string Label { get; set; }
73 | }
74 |
75 | public sealed class NetworkDevice
76 | {
77 | public string AdapterType { get; set; }
78 | public string Manufacturer { get; set; }
79 | public string ProductName { get; set; }
80 | public string PhysicalAdapter { get; set; }
81 | public string MacAddress { get; set; }
82 | public string ServiceName { get; set; }
83 | }
84 |
85 | public sealed class Keyboard
86 | {
87 | public string Name { get; set; }
88 | public string Layout { get; set; }
89 | public string Status { get; set; }
90 | public UInt16 FunctionKeys { get; set; }
91 | public string Locked { get; set; }
92 | }
93 |
94 | public sealed class PointingDevice
95 | {
96 | public string Name { get; set; }
97 | public string Manufacturer { get; set; }
98 | public string Status { get; set; }
99 | public UInt16 Buttons { get; set; }
100 | public string Locked { get; set; }
101 | public string HardwareType { get; set; }
102 | public string PointingType { get; set; }
103 | public string DeviceInterface { get; set; }
104 | }
105 |
106 | public sealed class AudioDevice
107 | {
108 | public string ProductName { get; set; }
109 | public string Manufacturer { get; set; }
110 | public string Status { get; set; }
111 | }
112 |
113 | public sealed class Motherboard
114 | {
115 | public string Model { get; set; }
116 | public string Manufacturer { get; set; }
117 | public string Chipset { get; set; }
118 | public string Product { get; set; }
119 | public string Version { get; set; }
120 | public string Revision { get; set; }
121 | public string SystemModel { get; set; }
122 |
123 | public string BIOSName { get; set; }
124 | public string BIOSManufacturer { get; set; }
125 | public string BIOSVersion { get; set; }
126 | public string BIOSBuildNumber { get; set; }
127 | }
128 |
129 | public static class HardwareSummary
130 | {
131 | public static List CPUs = new List();
132 | public static string TotalRAM = string.Empty;
133 | public static List Motherboards = new List();
134 | public static List GPUs = new List();
135 | public static List Disks = new List();
136 | public static List NetworkAdapters = new List();
137 | public static List BIOS = new List();
138 | public static List OSInfo = new List();
139 | }
140 | }
141 |
--------------------------------------------------------------------------------