├── .github
└── workflows
│ └── winget.yml
├── .gitignore
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── Licence.txt
├── NOTICE
├── PrivacyPolicy.txt
├── README.md
├── doc
├── BCU_manual.html
├── BCU_manual.odt
├── Preview.png
└── SimplifiedClassDiagram.png
├── installer
├── .gitignore
├── BcuSetup.iss
├── bigImage.bmp
├── bigImage.pdn
├── lang
│ ├── ChineseSimplified.isl
│ ├── Hindi.isl
│ ├── Hungarian.isl
│ ├── Turkish.isl
│ └── Vietnamese.isl
├── logo.ico
├── scripts
│ ├── Ngen.iss
│ ├── PortableIcons.iss
│ ├── PortablePage.iss
│ ├── isxdl
│ │ ├── Hindi.ini
│ │ ├── Turkish.ini
│ │ ├── chinese.ini
│ │ ├── czech.ini
│ │ ├── english.ini
│ │ ├── french.ini
│ │ ├── french2.ini
│ │ ├── french3.ini
│ │ ├── german.ini
│ │ ├── german2.ini
│ │ ├── german3.ini
│ │ ├── isxdl.dll
│ │ ├── isxdl.iss
│ │ ├── norwegian.ini
│ │ ├── polish.ini
│ │ ├── portugues.ini
│ │ ├── portuguese.ini
│ │ ├── russian.ini
│ │ ├── spanish.ini
│ │ └── swedish.ini
│ ├── products.iss
│ └── products
│ │ ├── dotnetfx11.iss
│ │ ├── dotnetfx11lp.iss
│ │ ├── dotnetfx11sp1.iss
│ │ ├── dotnetfx20.iss
│ │ ├── dotnetfx20lp.iss
│ │ ├── dotnetfx20sp1.iss
│ │ ├── dotnetfx20sp1lp.iss
│ │ ├── dotnetfx20sp2.iss
│ │ ├── dotnetfx20sp2lp.iss
│ │ ├── dotnetfx35.iss
│ │ ├── dotnetfx35lp.iss
│ │ ├── dotnetfx35sp1.iss
│ │ ├── dotnetfx35sp1lp.iss
│ │ ├── dotnetfx40client.iss
│ │ ├── dotnetfx40full.iss
│ │ ├── dotnetfx45.iss
│ │ ├── dotnetfxversion.iss
│ │ ├── fileversion.iss
│ │ ├── ie6.iss
│ │ ├── iis.iss
│ │ ├── jet4sp8.iss
│ │ ├── kb835732.iss
│ │ ├── mdac28.iss
│ │ ├── msi20.iss
│ │ ├── msi31.iss
│ │ ├── msi45.iss
│ │ ├── msiproduct.iss
│ │ ├── sql2005express.iss
│ │ ├── sql2008express.iss
│ │ ├── sqlcompact35sp2.iss
│ │ ├── stringversion.iss
│ │ ├── vcredist2005.iss
│ │ ├── vcredist2008.iss
│ │ ├── vcredist2010.iss
│ │ ├── vcredist2012.iss
│ │ ├── vcredist2013.iss
│ │ ├── wic.iss
│ │ └── winversion.iss
└── smallImage.bmp
├── publish.bat
└── source
├── BCU-console
├── BCU-console.csproj
├── Program.cs
└── Properties
│ ├── AssemblyInfo.cs
│ ├── PublishProfiles
│ └── FolderProfile.pubxml
│ └── app.manifest
├── BCU-launcher
├── BCU-launcher.rc
├── BCU-launcher.vcxproj
├── main.cpp
└── resource.h
├── BulkCrapUninstaller.sln
├── BulkCrapUninstaller
├── BulkCrapUninstaller.csproj
├── BulkCrapUninstaller.csproj.DotSettings
├── CleanLogs.bat
├── Controls
│ ├── AdvancedClipboardCopy.Designer.cs
│ ├── AdvancedClipboardCopy.ar.resx
│ ├── AdvancedClipboardCopy.cs
│ ├── AdvancedClipboardCopy.cs.resx
│ ├── AdvancedClipboardCopy.de.resx
│ ├── AdvancedClipboardCopy.es.resx
│ ├── AdvancedClipboardCopy.fr.resx
│ ├── AdvancedClipboardCopy.hu.resx
│ ├── AdvancedClipboardCopy.it.resx
│ ├── AdvancedClipboardCopy.ja.resx
│ ├── AdvancedClipboardCopy.nl.resx
│ ├── AdvancedClipboardCopy.pl.resx
│ ├── AdvancedClipboardCopy.pt-BR.resx
│ ├── AdvancedClipboardCopy.pt.resx
│ ├── AdvancedClipboardCopy.resx
│ ├── AdvancedClipboardCopy.ru.resx
│ ├── AdvancedClipboardCopy.sl.resx
│ ├── AdvancedClipboardCopy.sv.resx
│ ├── AdvancedClipboardCopy.tr.resx
│ ├── AdvancedClipboardCopy.vi.resx
│ ├── AdvancedClipboardCopy.zh-Hans.resx
│ ├── AdvancedClipboardCopy.zh-Hant.resx
│ ├── ClipboardCopyItem.cs
│ ├── FileTargeter.Designer.cs
│ ├── FileTargeter.ar.resx
│ ├── FileTargeter.cs
│ ├── FileTargeter.cs.resx
│ ├── FileTargeter.de.resx
│ ├── FileTargeter.es.resx
│ ├── FileTargeter.fr.resx
│ ├── FileTargeter.hu.resx
│ ├── FileTargeter.it.resx
│ ├── FileTargeter.ja.resx
│ ├── FileTargeter.nl.resx
│ ├── FileTargeter.pl.resx
│ ├── FileTargeter.pt-BR.resx
│ ├── FileTargeter.pt.resx
│ ├── FileTargeter.resx
│ ├── FileTargeter.ru.resx
│ ├── FileTargeter.sl.resx
│ ├── FileTargeter.sv.resx
│ ├── FileTargeter.tr.resx
│ ├── FileTargeter.vi.resx
│ ├── FileTargeter.zh-Hans.resx
│ ├── FileTargeter.zh-Hant.resx
│ ├── ListLegend.Designer.cs
│ ├── ListLegend.ar.resx
│ ├── ListLegend.cs
│ ├── ListLegend.cs.resx
│ ├── ListLegend.de.resx
│ ├── ListLegend.es.resx
│ ├── ListLegend.fr.resx
│ ├── ListLegend.hu.resx
│ ├── ListLegend.it.resx
│ ├── ListLegend.ja.resx
│ ├── ListLegend.nl.resx
│ ├── ListLegend.pl.resx
│ ├── ListLegend.pt-BR.resx
│ ├── ListLegend.pt.resx
│ ├── ListLegend.resx
│ ├── ListLegend.ru.resx
│ ├── ListLegend.sl.resx
│ ├── ListLegend.sv.resx
│ ├── ListLegend.tr.resx
│ ├── ListLegend.vi.resx
│ ├── ListLegend.zh-Hans.resx
│ ├── ListLegend.zh-Hant.resx
│ ├── RelatedUninstallerAdder.Designer.cs
│ ├── RelatedUninstallerAdder.ar.resx
│ ├── RelatedUninstallerAdder.cs
│ ├── RelatedUninstallerAdder.cs.resx
│ ├── RelatedUninstallerAdder.de.resx
│ ├── RelatedUninstallerAdder.es.resx
│ ├── RelatedUninstallerAdder.fr.resx
│ ├── RelatedUninstallerAdder.hu.resx
│ ├── RelatedUninstallerAdder.it.resx
│ ├── RelatedUninstallerAdder.ja.resx
│ ├── RelatedUninstallerAdder.nl.resx
│ ├── RelatedUninstallerAdder.pl.resx
│ ├── RelatedUninstallerAdder.pt-BR.resx
│ ├── RelatedUninstallerAdder.pt.resx
│ ├── RelatedUninstallerAdder.resx
│ ├── RelatedUninstallerAdder.ru.resx
│ ├── RelatedUninstallerAdder.sl.resx
│ ├── RelatedUninstallerAdder.tr.resx
│ ├── RelatedUninstallerAdder.vi.resx
│ ├── RelatedUninstallerAdder.zh-Hans.resx
│ ├── RelatedUninstallerAdder.zh-Hant.resx
│ ├── Settings
│ │ ├── AdvancedFilters.Designer.cs
│ │ ├── AdvancedFilters.ar.resx
│ │ ├── AdvancedFilters.cs
│ │ ├── AdvancedFilters.cs.resx
│ │ ├── AdvancedFilters.de.resx
│ │ ├── AdvancedFilters.es.resx
│ │ ├── AdvancedFilters.fr.resx
│ │ ├── AdvancedFilters.hu.resx
│ │ ├── AdvancedFilters.it.resx
│ │ ├── AdvancedFilters.ja.resx
│ │ ├── AdvancedFilters.nl.resx
│ │ ├── AdvancedFilters.pl.resx
│ │ ├── AdvancedFilters.pt-BR.resx
│ │ ├── AdvancedFilters.pt.resx
│ │ ├── AdvancedFilters.resx
│ │ ├── AdvancedFilters.ru.resx
│ │ ├── AdvancedFilters.sl.resx
│ │ ├── AdvancedFilters.sv.resx
│ │ ├── AdvancedFilters.tr.resx
│ │ ├── AdvancedFilters.vi.resx
│ │ ├── AdvancedFilters.zh-Hans.resx
│ │ ├── AdvancedFilters.zh-Hant.resx
│ │ ├── CacheSettings.Designer.cs
│ │ ├── CacheSettings.ar.resx
│ │ ├── CacheSettings.cs
│ │ ├── CacheSettings.cs.resx
│ │ ├── CacheSettings.de.resx
│ │ ├── CacheSettings.es.resx
│ │ ├── CacheSettings.fr.resx
│ │ ├── CacheSettings.hu.resx
│ │ ├── CacheSettings.it.resx
│ │ ├── CacheSettings.ja.resx
│ │ ├── CacheSettings.nl.resx
│ │ ├── CacheSettings.pl.resx
│ │ ├── CacheSettings.pt-BR.resx
│ │ ├── CacheSettings.pt.resx
│ │ ├── CacheSettings.resx
│ │ ├── CacheSettings.ru.resx
│ │ ├── CacheSettings.sl.resx
│ │ ├── CacheSettings.sv.resx
│ │ ├── CacheSettings.tr.resx
│ │ ├── CacheSettings.vi.resx
│ │ ├── CacheSettings.zh-Hans.resx
│ │ ├── CacheSettings.zh-Hant.resx
│ │ ├── PropertiesSidebar.Designer.cs
│ │ ├── PropertiesSidebar.ar.resx
│ │ ├── PropertiesSidebar.cs
│ │ ├── PropertiesSidebar.cs.resx
│ │ ├── PropertiesSidebar.de.resx
│ │ ├── PropertiesSidebar.es.resx
│ │ ├── PropertiesSidebar.fr.resx
│ │ ├── PropertiesSidebar.hu.resx
│ │ ├── PropertiesSidebar.it.resx
│ │ ├── PropertiesSidebar.ja.resx
│ │ ├── PropertiesSidebar.nl.resx
│ │ ├── PropertiesSidebar.pl.resx
│ │ ├── PropertiesSidebar.pt-BR.resx
│ │ ├── PropertiesSidebar.pt.resx
│ │ ├── PropertiesSidebar.resx
│ │ ├── PropertiesSidebar.ru.resx
│ │ ├── PropertiesSidebar.sl.resx
│ │ ├── PropertiesSidebar.sv.resx
│ │ ├── PropertiesSidebar.tr.resx
│ │ ├── PropertiesSidebar.vi.resx
│ │ ├── PropertiesSidebar.zh-Hans.resx
│ │ ├── PropertiesSidebar.zh-Hant.resx
│ │ ├── UninstallationSettings.Designer.cs
│ │ ├── UninstallationSettings.ar.resx
│ │ ├── UninstallationSettings.cs
│ │ ├── UninstallationSettings.cs.resx
│ │ ├── UninstallationSettings.de.resx
│ │ ├── UninstallationSettings.es.resx
│ │ ├── UninstallationSettings.fr.resx
│ │ ├── UninstallationSettings.hu.resx
│ │ ├── UninstallationSettings.it.resx
│ │ ├── UninstallationSettings.ja.resx
│ │ ├── UninstallationSettings.nl.resx
│ │ ├── UninstallationSettings.pl.resx
│ │ ├── UninstallationSettings.pt-BR.resx
│ │ ├── UninstallationSettings.pt.resx
│ │ ├── UninstallationSettings.resx
│ │ ├── UninstallationSettings.ru.resx
│ │ ├── UninstallationSettings.sl.resx
│ │ ├── UninstallationSettings.sv.resx
│ │ ├── UninstallationSettings.tr.resx
│ │ ├── UninstallationSettings.vi.resx
│ │ ├── UninstallationSettings.zh-Hans.resx
│ │ └── UninstallationSettings.zh-Hant.resx
│ ├── TabControlWithoutHeader.cs
│ ├── UninstallConfirmation.Designer.cs
│ ├── UninstallConfirmation.ar.resx
│ ├── UninstallConfirmation.cs
│ ├── UninstallConfirmation.cs.resx
│ ├── UninstallConfirmation.de.resx
│ ├── UninstallConfirmation.es.resx
│ ├── UninstallConfirmation.fr.resx
│ ├── UninstallConfirmation.hu.resx
│ ├── UninstallConfirmation.it.resx
│ ├── UninstallConfirmation.ja.resx
│ ├── UninstallConfirmation.nl.resx
│ ├── UninstallConfirmation.pl.resx
│ ├── UninstallConfirmation.pt-BR.resx
│ ├── UninstallConfirmation.pt.resx
│ ├── UninstallConfirmation.resx
│ ├── UninstallConfirmation.ru.resx
│ ├── UninstallConfirmation.sl.resx
│ ├── UninstallConfirmation.sv.resx
│ ├── UninstallConfirmation.tr.resx
│ ├── UninstallConfirmation.vi.resx
│ ├── UninstallConfirmation.zh-Hans.resx
│ └── UninstallConfirmation.zh-Hant.resx
├── CultureConfigurator.cs
├── EntryPoint.cs
├── Forms
│ ├── Helpers
│ │ ├── AdvancedClipboardCopyWindow.Designer.cs
│ │ ├── AdvancedClipboardCopyWindow.ar.resx
│ │ ├── AdvancedClipboardCopyWindow.cs
│ │ ├── AdvancedClipboardCopyWindow.cs.resx
│ │ ├── AdvancedClipboardCopyWindow.de.resx
│ │ ├── AdvancedClipboardCopyWindow.es.resx
│ │ ├── AdvancedClipboardCopyWindow.fr.resx
│ │ ├── AdvancedClipboardCopyWindow.hu.resx
│ │ ├── AdvancedClipboardCopyWindow.it.resx
│ │ ├── AdvancedClipboardCopyWindow.ja.resx
│ │ ├── AdvancedClipboardCopyWindow.nl.resx
│ │ ├── AdvancedClipboardCopyWindow.pl.resx
│ │ ├── AdvancedClipboardCopyWindow.pt-BR.resx
│ │ ├── AdvancedClipboardCopyWindow.pt.resx
│ │ ├── AdvancedClipboardCopyWindow.resx
│ │ ├── AdvancedClipboardCopyWindow.ru.resx
│ │ ├── AdvancedClipboardCopyWindow.sl.resx
│ │ ├── AdvancedClipboardCopyWindow.sv.resx
│ │ ├── AdvancedClipboardCopyWindow.tr.resx
│ │ ├── AdvancedClipboardCopyWindow.vi.resx
│ │ ├── AdvancedClipboardCopyWindow.zh-Hans.resx
│ │ ├── AdvancedClipboardCopyWindow.zh-Hant.resx
│ │ ├── DebugWindow.Designer.cs
│ │ ├── DebugWindow.cs
│ │ ├── DebugWindow.resx
│ │ ├── FeedbackBox.Designer.cs
│ │ ├── FeedbackBox.ar.resx
│ │ ├── FeedbackBox.cs
│ │ ├── FeedbackBox.cs.resx
│ │ ├── FeedbackBox.de.resx
│ │ ├── FeedbackBox.es.resx
│ │ ├── FeedbackBox.fr.resx
│ │ ├── FeedbackBox.hu.resx
│ │ ├── FeedbackBox.it.resx
│ │ ├── FeedbackBox.ja.resx
│ │ ├── FeedbackBox.nl.resx
│ │ ├── FeedbackBox.pl.resx
│ │ ├── FeedbackBox.pt-BR.resx
│ │ ├── FeedbackBox.pt.resx
│ │ ├── FeedbackBox.resx
│ │ ├── FeedbackBox.ru.resx
│ │ ├── FeedbackBox.sl.resx
│ │ ├── FeedbackBox.sv.resx
│ │ ├── FeedbackBox.tr.resx
│ │ ├── FeedbackBox.vi.resx
│ │ ├── FeedbackBox.zh-Hans.resx
│ │ ├── FeedbackBox.zh-Hant.resx
│ │ ├── FeedbackWindow.Designer.cs
│ │ ├── FeedbackWindow.ar.resx
│ │ ├── FeedbackWindow.cs
│ │ ├── FeedbackWindow.cs.resx
│ │ ├── FeedbackWindow.de.resx
│ │ ├── FeedbackWindow.es.resx
│ │ ├── FeedbackWindow.fr.resx
│ │ ├── FeedbackWindow.hu.resx
│ │ ├── FeedbackWindow.it.resx
│ │ ├── FeedbackWindow.ja.resx
│ │ ├── FeedbackWindow.nl.resx
│ │ ├── FeedbackWindow.pl.resx
│ │ ├── FeedbackWindow.pt-BR.resx
│ │ ├── FeedbackWindow.pt.resx
│ │ ├── FeedbackWindow.resx
│ │ ├── FeedbackWindow.ru.resx
│ │ ├── FeedbackWindow.sl.resx
│ │ ├── FeedbackWindow.sv.resx
│ │ ├── FeedbackWindow.tr.resx
│ │ ├── FeedbackWindow.vi.resx
│ │ ├── FeedbackWindow.zh-Hans.resx
│ │ ├── FeedbackWindow.zh-Hant.resx
│ │ ├── ListLegendWindow.Designer.cs
│ │ ├── ListLegendWindow.cs
│ │ ├── ListLegendWindow.hu.resx
│ │ ├── ListLegendWindow.resx
│ │ ├── NewsPopup.Designer.cs
│ │ ├── NewsPopup.ar.resx
│ │ ├── NewsPopup.cs
│ │ ├── NewsPopup.cs.resx
│ │ ├── NewsPopup.de.resx
│ │ ├── NewsPopup.es.resx
│ │ ├── NewsPopup.fr.resx
│ │ ├── NewsPopup.hu.resx
│ │ ├── NewsPopup.it.resx
│ │ ├── NewsPopup.ja.resx
│ │ ├── NewsPopup.nl.resx
│ │ ├── NewsPopup.pl.resx
│ │ ├── NewsPopup.pt-br.resx
│ │ ├── NewsPopup.pt.resx
│ │ ├── NewsPopup.resx
│ │ ├── NewsPopup.ru.resx
│ │ ├── NewsPopup.sl.resx
│ │ ├── NewsPopup.sv.resx
│ │ ├── NewsPopup.tr.resx
│ │ ├── NewsPopup.vi.resx
│ │ ├── NewsPopup.zh-Hans.resx
│ │ ├── NewsPopup.zh-Hant.resx
│ │ ├── PropertiesWindow.Designer.cs
│ │ ├── PropertiesWindow.ar.resx
│ │ ├── PropertiesWindow.cs
│ │ ├── PropertiesWindow.cs.resx
│ │ ├── PropertiesWindow.de.resx
│ │ ├── PropertiesWindow.es.resx
│ │ ├── PropertiesWindow.fr.resx
│ │ ├── PropertiesWindow.hu.resx
│ │ ├── PropertiesWindow.it.resx
│ │ ├── PropertiesWindow.ja.resx
│ │ ├── PropertiesWindow.nl.resx
│ │ ├── PropertiesWindow.pl.resx
│ │ ├── PropertiesWindow.pt-BR.resx
│ │ ├── PropertiesWindow.pt.resx
│ │ ├── PropertiesWindow.resx
│ │ ├── PropertiesWindow.ru.resx
│ │ ├── PropertiesWindow.sl.resx
│ │ ├── PropertiesWindow.sv.resx
│ │ ├── PropertiesWindow.tr.resx
│ │ ├── PropertiesWindow.vi.resx
│ │ ├── PropertiesWindow.zh-Hans.resx
│ │ ├── PropertiesWindow.zh-Hant.resx
│ │ ├── RatingPopup.Designer.cs
│ │ ├── RatingPopup.ar.resx
│ │ ├── RatingPopup.cs
│ │ ├── RatingPopup.cs.resx
│ │ ├── RatingPopup.de.resx
│ │ ├── RatingPopup.es.resx
│ │ ├── RatingPopup.fr.resx
│ │ ├── RatingPopup.hu.resx
│ │ ├── RatingPopup.it.resx
│ │ ├── RatingPopup.ja.resx
│ │ ├── RatingPopup.nl.resx
│ │ ├── RatingPopup.pl.resx
│ │ ├── RatingPopup.pt-BR.resx
│ │ ├── RatingPopup.pt.resx
│ │ ├── RatingPopup.resx
│ │ ├── RatingPopup.ru.resx
│ │ ├── RatingPopup.sl.resx
│ │ ├── RatingPopup.sv.resx
│ │ ├── RatingPopup.tr.resx
│ │ ├── RatingPopup.vi.resx
│ │ ├── RatingPopup.zh-Hans.resx
│ │ ├── RatingPopup.zh-Hant.resx
│ │ ├── TargetWindow.Designer.cs
│ │ ├── TargetWindow.ar.resx
│ │ ├── TargetWindow.cs
│ │ ├── TargetWindow.cs.resx
│ │ ├── TargetWindow.de.resx
│ │ ├── TargetWindow.es.resx
│ │ ├── TargetWindow.fr.resx
│ │ ├── TargetWindow.hu.resx
│ │ ├── TargetWindow.it.resx
│ │ ├── TargetWindow.ja.resx
│ │ ├── TargetWindow.nl.resx
│ │ ├── TargetWindow.pl.resx
│ │ ├── TargetWindow.pt-BR.resx
│ │ ├── TargetWindow.pt.resx
│ │ ├── TargetWindow.resx
│ │ ├── TargetWindow.ru.resx
│ │ ├── TargetWindow.sl.resx
│ │ ├── TargetWindow.sv.resx
│ │ ├── TargetWindow.tr.resx
│ │ ├── TargetWindow.vi.resx
│ │ ├── TargetWindow.zh-Hans.resx
│ │ └── TargetWindow.zh-Hant.resx
│ ├── UninstallerListDoubleClickAction.cs
│ ├── Windows
│ │ ├── AboutBox.Designer.cs
│ │ ├── AboutBox.ar.resx
│ │ ├── AboutBox.cs
│ │ ├── AboutBox.cs.resx
│ │ ├── AboutBox.de.resx
│ │ ├── AboutBox.es.resx
│ │ ├── AboutBox.fr.resx
│ │ ├── AboutBox.hu.resx
│ │ ├── AboutBox.it.resx
│ │ ├── AboutBox.ja.resx
│ │ ├── AboutBox.nl.resx
│ │ ├── AboutBox.pl.resx
│ │ ├── AboutBox.pt-BR.resx
│ │ ├── AboutBox.pt.resx
│ │ ├── AboutBox.resx
│ │ ├── AboutBox.ru.resx
│ │ ├── AboutBox.sl.resx
│ │ ├── AboutBox.sv.resx
│ │ ├── AboutBox.tr.resx
│ │ ├── AboutBox.vi.resx
│ │ ├── AboutBox.zh-Hans.resx
│ │ ├── AboutBox.zh-Hant.resx
│ │ ├── JunkRemoveWindow.Designer.cs
│ │ ├── JunkRemoveWindow.ar.resx
│ │ ├── JunkRemoveWindow.cs
│ │ ├── JunkRemoveWindow.cs.resx
│ │ ├── JunkRemoveWindow.de.resx
│ │ ├── JunkRemoveWindow.es.resx
│ │ ├── JunkRemoveWindow.fr.resx
│ │ ├── JunkRemoveWindow.hu.resx
│ │ ├── JunkRemoveWindow.it.resx
│ │ ├── JunkRemoveWindow.ja.resx
│ │ ├── JunkRemoveWindow.nl.resx
│ │ ├── JunkRemoveWindow.pl.resx
│ │ ├── JunkRemoveWindow.pt-BR.resx
│ │ ├── JunkRemoveWindow.pt.resx
│ │ ├── JunkRemoveWindow.resx
│ │ ├── JunkRemoveWindow.ru.resx
│ │ ├── JunkRemoveWindow.sl.resx
│ │ ├── JunkRemoveWindow.sv.resx
│ │ ├── JunkRemoveWindow.tr.resx
│ │ ├── JunkRemoveWindow.vi.resx
│ │ ├── JunkRemoveWindow.zh-Hans.resx
│ │ ├── JunkRemoveWindow.zh-Hant.resx
│ │ ├── MainWindow.Designer.cs
│ │ ├── MainWindow.ar.resx
│ │ ├── MainWindow.cs
│ │ ├── MainWindow.cs.resx
│ │ ├── MainWindow.de.resx
│ │ ├── MainWindow.es.resx
│ │ ├── MainWindow.fr.resx
│ │ ├── MainWindow.hu.resx
│ │ ├── MainWindow.it.resx
│ │ ├── MainWindow.ja.resx
│ │ ├── MainWindow.nl.resx
│ │ ├── MainWindow.pl.resx
│ │ ├── MainWindow.pt-BR.resx
│ │ ├── MainWindow.pt.resx
│ │ ├── MainWindow.resx
│ │ ├── MainWindow.ru.resx
│ │ ├── MainWindow.sl.resx
│ │ ├── MainWindow.sv.resx
│ │ ├── MainWindow.tr.resx
│ │ ├── MainWindow.vi.resx
│ │ ├── MainWindow.zh-Hans.resx
│ │ ├── MainWindow.zh-Hant.resx
│ │ ├── SettingsWindow.Designer.cs
│ │ ├── SettingsWindow.ar.resx
│ │ ├── SettingsWindow.cs
│ │ ├── SettingsWindow.cs.resx
│ │ ├── SettingsWindow.de.resx
│ │ ├── SettingsWindow.es.resx
│ │ ├── SettingsWindow.fr.resx
│ │ ├── SettingsWindow.hu.resx
│ │ ├── SettingsWindow.it.resx
│ │ ├── SettingsWindow.ja.resx
│ │ ├── SettingsWindow.nl.resx
│ │ ├── SettingsWindow.pl.resx
│ │ ├── SettingsWindow.pt-BR.resx
│ │ ├── SettingsWindow.pt.resx
│ │ ├── SettingsWindow.resx
│ │ ├── SettingsWindow.ru.resx
│ │ ├── SettingsWindow.sl.resx
│ │ ├── SettingsWindow.sv.resx
│ │ ├── SettingsWindow.tr.resx
│ │ ├── SettingsWindow.vi.resx
│ │ ├── SettingsWindow.zh-Hans.resx
│ │ ├── SettingsWindow.zh-Hant.resx
│ │ ├── UninstallProgressWindow.Designer.cs
│ │ ├── UninstallProgressWindow.ar.resx
│ │ ├── UninstallProgressWindow.cs
│ │ ├── UninstallProgressWindow.cs.resx
│ │ ├── UninstallProgressWindow.de.resx
│ │ ├── UninstallProgressWindow.es.resx
│ │ ├── UninstallProgressWindow.fr.resx
│ │ ├── UninstallProgressWindow.hu.resx
│ │ ├── UninstallProgressWindow.it.resx
│ │ ├── UninstallProgressWindow.ja.resx
│ │ ├── UninstallProgressWindow.nl.resx
│ │ ├── UninstallProgressWindow.pl.resx
│ │ ├── UninstallProgressWindow.pt-BR.resx
│ │ ├── UninstallProgressWindow.pt.resx
│ │ ├── UninstallProgressWindow.resx
│ │ ├── UninstallProgressWindow.ru.resx
│ │ ├── UninstallProgressWindow.sl.resx
│ │ ├── UninstallProgressWindow.sv.resx
│ │ ├── UninstallProgressWindow.tr.resx
│ │ ├── UninstallProgressWindow.vi.resx
│ │ ├── UninstallProgressWindow.zh-Hans.resx
│ │ └── UninstallProgressWindow.zh-Hant.resx
│ └── Wizards
│ │ ├── BeginUninstallTaskWizard.Designer.cs
│ │ ├── BeginUninstallTaskWizard.ar.resx
│ │ ├── BeginUninstallTaskWizard.cs
│ │ ├── BeginUninstallTaskWizard.cs.resx
│ │ ├── BeginUninstallTaskWizard.de.resx
│ │ ├── BeginUninstallTaskWizard.es.resx
│ │ ├── BeginUninstallTaskWizard.fr.resx
│ │ ├── BeginUninstallTaskWizard.hu.resx
│ │ ├── BeginUninstallTaskWizard.it.resx
│ │ ├── BeginUninstallTaskWizard.ja.resx
│ │ ├── BeginUninstallTaskWizard.nl.resx
│ │ ├── BeginUninstallTaskWizard.pl.resx
│ │ ├── BeginUninstallTaskWizard.pt-BR.resx
│ │ ├── BeginUninstallTaskWizard.pt.resx
│ │ ├── BeginUninstallTaskWizard.resx
│ │ ├── BeginUninstallTaskWizard.ru.resx
│ │ ├── BeginUninstallTaskWizard.sl.resx
│ │ ├── BeginUninstallTaskWizard.sv.resx
│ │ ├── BeginUninstallTaskWizard.tr.resx
│ │ ├── BeginUninstallTaskWizard.vi.resx
│ │ ├── BeginUninstallTaskWizard.zh-Hans.resx
│ │ ├── BeginUninstallTaskWizard.zh-Hant.resx
│ │ ├── FirstStartBox.Designer.cs
│ │ ├── FirstStartBox.ar.resx
│ │ ├── FirstStartBox.cs
│ │ ├── FirstStartBox.cs.resx
│ │ ├── FirstStartBox.de.resx
│ │ ├── FirstStartBox.es.resx
│ │ ├── FirstStartBox.fr.resx
│ │ ├── FirstStartBox.hu.resx
│ │ ├── FirstStartBox.it.resx
│ │ ├── FirstStartBox.ja.resx
│ │ ├── FirstStartBox.nl.resx
│ │ ├── FirstStartBox.pl.resx
│ │ ├── FirstStartBox.pt-BR.resx
│ │ ├── FirstStartBox.pt.resx
│ │ ├── FirstStartBox.resx
│ │ ├── FirstStartBox.ru.resx
│ │ ├── FirstStartBox.sl.resx
│ │ ├── FirstStartBox.sv.resx
│ │ ├── FirstStartBox.tr.resx
│ │ ├── FirstStartBox.vi.resx
│ │ ├── FirstStartBox.zh-Hans.resx
│ │ └── FirstStartBox.zh-Hant.resx
├── Functions
│ ├── AppPropertiesGatherer.cs
│ ├── AppUninstaller.cs
│ ├── ApplicationList
│ │ ├── ApplicationListColors.cs
│ │ ├── ApplicationListConstants.cs
│ │ ├── CertificateCache.cs
│ │ ├── ListViewDelegates.cs
│ │ ├── UninstallerListConfigurator.cs
│ │ ├── UninstallerListPostProcesser.cs
│ │ └── UninstallerListViewUpdater.cs
│ ├── MessageBoxes.cs
│ ├── Ratings
│ │ ├── RatingEntry.cs
│ │ ├── RatingManagerWrapper.cs
│ │ ├── RatingRenderer.cs
│ │ ├── UninstallerRating.cs
│ │ ├── UninstallerRatingManager.Utils.cs
│ │ └── UninstallerRatingManager.cs
│ ├── Tools
│ │ ├── ImportExport.cs
│ │ ├── LocalizedX509Certificate.cs
│ │ ├── OnlineSearchTools.cs
│ │ ├── SettingTools.cs
│ │ ├── SystemRestore.cs
│ │ └── UpdateGrabber.cs
│ └── Tracking
│ │ ├── DatabaseStatSender.cs
│ │ ├── EventHook.cs
│ │ ├── SingleEventHook.cs
│ │ ├── UsageManager.cs
│ │ └── UsageTracker.cs
├── NBugConfigurator.cs
├── Program.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Localisable.Designer.cs
│ ├── Localisable.ar.resx
│ ├── Localisable.cs.resx
│ ├── Localisable.de.resx
│ ├── Localisable.es.resx
│ ├── Localisable.fr.resx
│ ├── Localisable.hu.resx
│ ├── Localisable.it.resx
│ ├── Localisable.ja.resx
│ ├── Localisable.nl.resx
│ ├── Localisable.pl.resx
│ ├── Localisable.pt-BR.resx
│ ├── Localisable.pt.resx
│ ├── Localisable.resx
│ ├── Localisable.ru.resx
│ ├── Localisable.sl.resx
│ ├── Localisable.sv.resx
│ ├── Localisable.tr.resx
│ ├── Localisable.vi.resx
│ ├── Localisable.zh-Hans.resx
│ ├── Localisable.zh-Hant.resx
│ ├── PublishProfiles
│ │ └── FolderProfile.pubxml
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ ├── Settings.cs
│ ├── Settings.settings
│ └── app.manifest
├── Resources
│ ├── 3.png
│ ├── MicrosoftProgram_Install_and_Uninstall.meta.diagcab
│ ├── add.multiple.png
│ ├── add.png
│ ├── bigImage.bmp
│ ├── centerline.png
│ ├── check.png
│ ├── checkmark.pencil.png
│ ├── checkmark.png
│ ├── checkmark.uncrossed.png
│ ├── clean.png
│ ├── control.fastforward.png
│ ├── control.fastforward.variant.png
│ ├── delete.png
│ ├── diagram.png
│ ├── donate_button.png
│ ├── edit.box.png
│ ├── filter.png
│ ├── folder.open.png
│ ├── fullscreen.png
│ ├── information.circle.png
│ ├── information.png
│ ├── layer.add.png
│ ├── layer.delete.png
│ ├── layer.delete1.png
│ ├── layer.down.png
│ ├── layer.png
│ ├── list.png
│ ├── list.reorder.png
│ ├── logo.ico
│ ├── magnify.browse.png
│ ├── magnify.forward.png
│ ├── magnify.png
│ ├── message.png
│ ├── moon.full.png
│ ├── os.windows.8.png
│ ├── page.copy.png
│ ├── rating1.png
│ ├── rating3.png
│ ├── rating4.png
│ ├── rating5.png
│ ├── refresh.png
│ ├── save.png
│ ├── settings.png
│ ├── star.png
│ ├── stop.png
│ ├── table.add.png
│ ├── target.png
│ ├── timer.png
│ ├── warning.png
│ └── weather.sun.set.png
└── logo.ico
├── BulkCrapUninstallerTests
├── BulkCrapUninstallerTests.csproj
├── Functions
│ └── UninstallerRatingManagerTests.cs
├── PipeTests.cs
├── Properties
│ └── AssemblyInfo.cs
└── SelfUpdaterTests.cs
├── GlobalAssemblyInfo.cs
├── HelperTools
├── HelperTools.cs
├── HelperTools.projitems
├── HelperTools.shproj
├── LogWriter.cs
└── ReturnValue.cs
├── KlocTools
├── Collections
│ └── ObservedList.cs
├── Controls
│ ├── CommandLink.cs
│ ├── ContentAlignmentBox.Designer.cs
│ ├── ContentAlignmentBox.cs
│ ├── ContentAlignmentBox.resx
│ ├── DirectorySelectBox.Designer.cs
│ ├── DirectorySelectBox.cs
│ ├── DirectorySelectBox.cs.resx
│ ├── DirectorySelectBox.de.resx
│ ├── DirectorySelectBox.es.resx
│ ├── DirectorySelectBox.fr.resx
│ ├── DirectorySelectBox.hu.resx
│ ├── DirectorySelectBox.it.resx
│ ├── DirectorySelectBox.ja.resx
│ ├── DirectorySelectBox.nl.resx
│ ├── DirectorySelectBox.pl.resx
│ ├── DirectorySelectBox.pt-BR.resx
│ ├── DirectorySelectBox.pt.resx
│ ├── DirectorySelectBox.resx
│ ├── DirectorySelectBox.ru.resx
│ ├── DirectorySelectBox.sl.resx
│ ├── DirectorySelectBox.sv.resx
│ ├── DirectorySelectBox.tr.resx
│ ├── DirectorySelectBox.vi.resx
│ ├── DirectorySelectBox.zh-Hans.resx
│ ├── DirectorySelectBox.zh-Hant.resx
│ ├── EditableCheckedListView.Designer.cs
│ ├── EditableCheckedListView.cs
│ ├── EditableCheckedListView.resx
│ ├── EditableListView.Designer.cs
│ ├── EditableListView.cs
│ ├── EditableListView.resx
│ ├── FacebookButton.cs
│ ├── FacebookStatusButton.cs
│ ├── FixedFlowLayoutPanel.cs
│ ├── LineSeparator.Designer.cs
│ ├── LineSeparator.cs
│ ├── PassThroughLabel.cs
│ ├── PathSelectBox.Designer.cs
│ ├── PathSelectBox.cs
│ ├── PathSelectBox.cs.resx
│ ├── PathSelectBox.de.resx
│ ├── PathSelectBox.es.resx
│ ├── PathSelectBox.fr.resx
│ ├── PathSelectBox.hu.resx
│ ├── PathSelectBox.it.resx
│ ├── PathSelectBox.ja.resx
│ ├── PathSelectBox.nl.resx
│ ├── PathSelectBox.pl.resx
│ ├── PathSelectBox.pt-BR.resx
│ ├── PathSelectBox.pt.resx
│ ├── PathSelectBox.resx
│ ├── PathSelectBox.ru.resx
│ ├── PathSelectBox.sl.resx
│ ├── PathSelectBox.sv.resx
│ ├── PathSelectBox.tr.resx
│ ├── PathSelectBox.vi.resx
│ ├── PathSelectBox.zh-Hans.resx
│ ├── PathSelectBox.zh-Hant.resx
│ ├── SearchBox.Designer.cs
│ ├── SearchBox.ar.resx
│ ├── SearchBox.cs
│ ├── SearchBox.cs.resx
│ ├── SearchBox.de.resx
│ ├── SearchBox.es.resx
│ ├── SearchBox.fr.resx
│ ├── SearchBox.hu.resx
│ ├── SearchBox.it.resx
│ ├── SearchBox.ja.resx
│ ├── SearchBox.nl.resx
│ ├── SearchBox.pl.resx
│ ├── SearchBox.pt-BR.resx
│ ├── SearchBox.pt.resx
│ ├── SearchBox.resx
│ ├── SearchBox.ru.resx
│ ├── SearchBox.sl.resx
│ ├── SearchBox.sv.resx
│ ├── SearchBox.tr.resx
│ ├── SearchBox.vi.resx
│ ├── SearchBox.zh-Hans.resx
│ ├── SearchBox.zh-Hant.resx
│ ├── ToolStripNumberControl.cs
│ ├── TwitterButton.cs
│ ├── TwitterStatusButton.cs
│ ├── WindowTargeter.Designer.cs
│ ├── WindowTargeter.ar.resx
│ ├── WindowTargeter.cs
│ ├── WindowTargeter.cs.resx
│ ├── WindowTargeter.de.resx
│ ├── WindowTargeter.es.resx
│ ├── WindowTargeter.fr.resx
│ ├── WindowTargeter.hu.resx
│ ├── WindowTargeter.it.resx
│ ├── WindowTargeter.ja.resx
│ ├── WindowTargeter.nl.resx
│ ├── WindowTargeter.pl.resx
│ ├── WindowTargeter.pt-BR.resx
│ ├── WindowTargeter.pt.resx
│ ├── WindowTargeter.resx
│ ├── WindowTargeter.ru.resx
│ ├── WindowTargeter.sl.resx
│ ├── WindowTargeter.sv.resx
│ ├── WindowTargeter.tr.resx
│ ├── WindowTargeter.vi.resx
│ ├── WindowTargeter.zh-Hans.resx
│ └── WindowTargeter.zh-Hant.resx
├── DisplayMode.cs
├── Events
│ ├── CountingUpdateEventArgs.cs
│ └── PropertyChangedEventArgs.cs
├── Extensions
│ ├── BooleanTools.cs
│ ├── CheckBoxExtension.cs
│ ├── CollectionExtensions.cs
│ ├── DictionaryExtensions.cs
│ ├── EnumerableExtensions.cs
│ ├── EventExtensions.cs
│ ├── FormsExtensions.cs
│ ├── IconExtensions.cs
│ ├── IoExtensions.cs
│ ├── MiscExtensions.cs
│ ├── ParentProcessUtilities.cs
│ ├── ProcessExtensions.cs
│ ├── ReadOnlyDictionaryWrapper.cs
│ ├── RegistryKeyExtensions.cs
│ ├── RichTextBoxExtensions.cs
│ ├── StreamExtensions.cs
│ ├── StringExtensions.cs
│ ├── TimeExtensions.cs
│ ├── WebExtensions.cs
│ └── XmlExtensions.cs
├── Forms
│ ├── CmbBasicSettings.cs
│ ├── CmbCheckboxSettings.cs
│ ├── CmbHyperlinkSettings.cs
│ ├── CustomMessageBox.cs
│ ├── CustomMessageBox.designer.cs
│ ├── CustomMessageBox.resx
│ ├── LoadingDialog.Designer.cs
│ ├── LoadingDialog.cs
│ ├── LoadingDialog.resx
│ ├── LoadingDialogInterface.cs
│ ├── OverlaySplashScreen.Designer.cs
│ ├── OverlaySplashScreen.cs
│ ├── OverlaySplashScreen.resx
│ ├── ProcessWaiter.Designer.cs
│ ├── ProcessWaiter.ar.resx
│ ├── ProcessWaiter.cs
│ ├── ProcessWaiter.cs.resx
│ ├── ProcessWaiter.de.resx
│ ├── ProcessWaiter.es.resx
│ ├── ProcessWaiter.fr.resx
│ ├── ProcessWaiter.hu.resx
│ ├── ProcessWaiter.it.resx
│ ├── ProcessWaiter.ja.resx
│ ├── ProcessWaiter.nl.resx
│ ├── ProcessWaiter.pl.resx
│ ├── ProcessWaiter.pt-BR.resx
│ ├── ProcessWaiter.pt.resx
│ ├── ProcessWaiter.resx
│ ├── ProcessWaiter.ru.resx
│ ├── ProcessWaiter.sl.resx
│ ├── ProcessWaiter.sv.resx
│ ├── ProcessWaiter.tr.resx
│ ├── ProcessWaiter.vi.resx
│ ├── ProcessWaiter.zh-Hans.resx
│ ├── ProcessWaiter.zh-Hant.resx
│ ├── ProcessWaiterControl.Designer.cs
│ ├── ProcessWaiterControl.ar.resx
│ ├── ProcessWaiterControl.cs
│ ├── ProcessWaiterControl.cs.resx
│ ├── ProcessWaiterControl.de.resx
│ ├── ProcessWaiterControl.es.resx
│ ├── ProcessWaiterControl.fr.resx
│ ├── ProcessWaiterControl.hu.resx
│ ├── ProcessWaiterControl.it.resx
│ ├── ProcessWaiterControl.ja.resx
│ ├── ProcessWaiterControl.nl.resx
│ ├── ProcessWaiterControl.pl.resx
│ ├── ProcessWaiterControl.pt-BR.resx
│ ├── ProcessWaiterControl.pt.resx
│ ├── ProcessWaiterControl.resx
│ ├── ProcessWaiterControl.ru.resx
│ ├── ProcessWaiterControl.sl.resx
│ ├── ProcessWaiterControl.sv.resx
│ ├── ProcessWaiterControl.tr.resx
│ ├── ProcessWaiterControl.vi.resx
│ ├── ProcessWaiterControl.zh-Hans.resx
│ ├── ProcessWaiterControl.zh-Hant.resx
│ ├── SplashScreen.cs
│ ├── StringEditBox.Designer.cs
│ ├── StringEditBox.cs
│ ├── StringEditBox.resx
│ ├── Tools
│ │ ├── Buttons.Designer.cs
│ │ ├── Buttons.ar.resx
│ │ ├── Buttons.cs.resx
│ │ ├── Buttons.de.resx
│ │ ├── Buttons.es.resx
│ │ ├── Buttons.fr.resx
│ │ ├── Buttons.hu.resx
│ │ ├── Buttons.it.resx
│ │ ├── Buttons.ja.resx
│ │ ├── Buttons.nl.resx
│ │ ├── Buttons.pl.resx
│ │ ├── Buttons.pt-BR.resx
│ │ ├── Buttons.pt.resx
│ │ ├── Buttons.resx
│ │ ├── Buttons.ru.resx
│ │ ├── Buttons.sl.resx
│ │ ├── Buttons.sv.resx
│ │ ├── Buttons.tr.resx
│ │ ├── Buttons.vi.resx
│ │ ├── Buttons.zh-Hans.resx
│ │ ├── Buttons.zh-Hant.resx
│ │ ├── ComboBoxWrapper.cs
│ │ ├── GlobalMouseMove.cs
│ │ ├── MouseMovedEvent.cs
│ │ ├── PremadeDialogs.cs
│ │ ├── ReferencedComponent.cs
│ │ ├── SingleColorTable.cs
│ │ ├── StandardSystemColorTable.cs
│ │ └── WindowStyleController.cs
│ ├── WindowTargeterDialog.Designer.cs
│ ├── WindowTargeterDialog.ar.resx
│ ├── WindowTargeterDialog.cs
│ ├── WindowTargeterDialog.cs.resx
│ ├── WindowTargeterDialog.de.resx
│ ├── WindowTargeterDialog.es.resx
│ ├── WindowTargeterDialog.fr.resx
│ ├── WindowTargeterDialog.hu.resx
│ ├── WindowTargeterDialog.it.resx
│ ├── WindowTargeterDialog.ja.resx
│ ├── WindowTargeterDialog.nl.resx
│ ├── WindowTargeterDialog.pl.resx
│ ├── WindowTargeterDialog.pt-BR.resx
│ ├── WindowTargeterDialog.pt.resx
│ ├── WindowTargeterDialog.resx
│ ├── WindowTargeterDialog.ru.resx
│ ├── WindowTargeterDialog.sl.resx
│ ├── WindowTargeterDialog.sv.resx
│ ├── WindowTargeterDialog.tr.resx
│ ├── WindowTargeterDialog.vi.resx
│ ├── WindowTargeterDialog.zh-Hans.resx
│ └── WindowTargeterDialog.zh-Hant.resx
├── IO
│ ├── AdvancedFileInfo.cs
│ ├── Arguments.cs
│ ├── DismTools.cs
│ ├── FileSize.cs
│ ├── MsiTools.cs
│ ├── NetFrameworkTools.cs
│ ├── SysRestore.cs
│ ├── WindowsFeatureInfo.cs
│ └── WmiQueries.cs
├── KlocTools.csproj
├── Licence.licenseheader
├── Limited.cs
├── Localising
│ ├── LocalisationExtensions.cs
│ ├── LocalisedEnumWrapper.cs
│ └── LocalisedNameAttribute.cs
├── Native
│ ├── CSIDL.cs
│ ├── ControlPanelCanonicalNames.cs
│ └── MsiWrapper.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Localisation.Designer.cs
│ ├── Localisation.ar.resx
│ ├── Localisation.cs.resx
│ ├── Localisation.de.resx
│ ├── Localisation.es.resx
│ ├── Localisation.fr.resx
│ ├── Localisation.hu.resx
│ ├── Localisation.it.resx
│ ├── Localisation.ja.resx
│ ├── Localisation.nl.resx
│ ├── Localisation.pl.resx
│ ├── Localisation.pt-BR.resx
│ ├── Localisation.pt.resx
│ ├── Localisation.resx
│ ├── Localisation.ru.resx
│ ├── Localisation.sl.resx
│ ├── Localisation.sv.resx
│ ├── Localisation.tr.resx
│ ├── Localisation.vi.resx
│ ├── Localisation.zh-Hans.resx
│ ├── Localisation.zh-Hant.resx
│ ├── PublishProfiles
│ │ └── FolderProfile.pubxml
│ ├── Resources.Designer.cs
│ └── Resources.resx
├── Resources
│ ├── CommonStrings.Designer.cs
│ ├── CommonStrings.ar.resx
│ ├── CommonStrings.cs.resx
│ ├── CommonStrings.de.resx
│ ├── CommonStrings.es.resx
│ ├── CommonStrings.fr.resx
│ ├── CommonStrings.hu.resx
│ ├── CommonStrings.it.resx
│ ├── CommonStrings.ja.resx
│ ├── CommonStrings.nl.resx
│ ├── CommonStrings.pl.resx
│ ├── CommonStrings.pt-BR.resx
│ ├── CommonStrings.pt.resx
│ ├── CommonStrings.resx
│ ├── CommonStrings.ru.resx
│ ├── CommonStrings.sl.resx
│ ├── CommonStrings.sv.resx
│ ├── CommonStrings.tr.resx
│ ├── CommonStrings.vi.resx
│ ├── CommonStrings.zh-Hans.resx
│ ├── CommonStrings.zh-Hant.resx
│ ├── centerline.png
│ ├── facebookButton.png
│ └── twitterButton.png
├── Sorters
│ └── ColumnSorter.cs
├── Subsystems
│ ├── FontGrabber.cs
│ ├── GlobalHotkeys.cs
│ ├── HotkeyEntry.cs
│ ├── RandomFilePicker.cs
│ ├── WindowHoverEventArgs.cs
│ └── WindowHoverSearcher.cs
├── Tools
│ ├── CompiledPropertyInfo.cs
│ ├── CompressionTools.cs
│ ├── DrawingTools.cs
│ ├── FilesystemTools.cs
│ ├── GuidTools.cs
│ ├── MachineType.cs
│ ├── PathTools.cs
│ ├── ProcessStartCommand.cs
│ ├── ProcessTools.cs
│ ├── ReflectionTools.cs
│ ├── RegistryTools.cs
│ ├── SerializationTools.cs
│ ├── Sift4.cs
│ ├── SleepControls.cs
│ ├── StringTools.cs
│ ├── SymbolicLinkType.cs
│ └── WindowsTools.cs
└── YesNoAsk.cs
├── Licence.licenseheader
├── NBug_custom
├── Core
│ ├── Reporting
│ │ ├── BugReport.cs
│ │ ├── Feedback.cs
│ │ ├── Info
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── ConfigurationInfo.cs
│ │ │ ├── GeneralInfo.cs
│ │ │ ├── Report.cs
│ │ │ └── SystemInfo.cs
│ │ └── MiniDump
│ │ │ ├── DumpTypeFlag.cs
│ │ │ └── DumpWriter.cs
│ ├── Submission
│ │ ├── Custom
│ │ │ └── Custom.cs
│ │ ├── Database
│ │ │ ├── Ado.cs
│ │ │ ├── MsSql.cs
│ │ │ └── MySql.cs
│ │ ├── Dispatcher.cs
│ │ ├── IProtocol.cs
│ │ ├── IProtocolFactory.cs
│ │ ├── ProtocolBase.cs
│ │ ├── Protocols.cs
│ │ ├── Tracker
│ │ │ ├── BugNet.cs
│ │ │ ├── Bugzilla.cs
│ │ │ ├── GitHub.cs
│ │ │ ├── GoogleCode.cs
│ │ │ ├── Mantis
│ │ │ │ ├── AccountData.cs
│ │ │ │ ├── AttachmentData.cs
│ │ │ │ ├── CustomFieldValueForIssueData.cs
│ │ │ │ ├── IssueData.cs
│ │ │ │ ├── IssueNoteData.cs
│ │ │ │ ├── ObjectRef.cs
│ │ │ │ ├── ProjectVersionData.cs
│ │ │ │ ├── RelationshipData.cs
│ │ │ │ ├── UserData.cs
│ │ │ │ └── nusoap.php.patch
│ │ │ ├── Redmine.cs
│ │ │ └── Trac.cs
│ │ └── Web
│ │ │ ├── Ftp.cs
│ │ │ ├── Http.cs
│ │ │ └── Mail.cs
│ ├── UI
│ │ ├── Console
│ │ │ └── ConsoleUI.cs
│ │ ├── Custom
│ │ │ └── CustomUI.cs
│ │ ├── Developer
│ │ │ ├── InternalExceptionViewer.Designer.cs
│ │ │ ├── InternalExceptionViewer.cs
│ │ │ ├── InternalExceptionViewer.resx
│ │ │ ├── InternalLogViewer.Designer.cs
│ │ │ ├── InternalLogViewer.cs
│ │ │ └── InternalLogViewer.resx
│ │ ├── UIDialogResult.cs
│ │ ├── UISelector.cs
│ │ ├── WPF
│ │ │ └── WPFUI.cs
│ │ └── WinForms
│ │ │ ├── Feedback.Designer.cs
│ │ │ ├── Feedback.cs
│ │ │ ├── Feedback.resx
│ │ │ ├── Full.Designer.cs
│ │ │ ├── Full.cs
│ │ │ ├── Full.es.resx
│ │ │ ├── Full.fr.resx
│ │ │ ├── Full.hu.resx
│ │ │ ├── Full.ja.resx
│ │ │ ├── Full.nl.resx
│ │ │ ├── Full.pt-BR.resx
│ │ │ ├── Full.resx
│ │ │ ├── Full.sv.resx
│ │ │ ├── Full.tr.resx
│ │ │ ├── Full.vi.resx
│ │ │ ├── Full.zh-Hans.resx
│ │ │ ├── Full.zh-Hant.resx
│ │ │ ├── Minimal.cs
│ │ │ ├── Normal.Designer.cs
│ │ │ ├── Normal.cs
│ │ │ ├── Normal.resx
│ │ │ ├── Panels
│ │ │ ├── ExceptionDetailView.Designer.cs
│ │ │ ├── ExceptionDetailView.cs
│ │ │ ├── ExceptionDetailView.resx
│ │ │ ├── ExceptionDetails.Designer.cs
│ │ │ ├── ExceptionDetails.cs
│ │ │ └── ExceptionDetails.resx
│ │ │ └── WinFormsUI.cs
│ └── Util
│ │ ├── ConnectionStringParser.cs
│ │ ├── ExceptionThread.cs
│ │ ├── Exceptions
│ │ ├── NBugConfigurationException.cs
│ │ ├── NBugException.cs
│ │ └── NBugRuntimeException.cs
│ │ ├── Logging
│ │ └── Logger.cs
│ │ ├── ProtectedConfiguration.cs
│ │ ├── PublicResources.cs
│ │ ├── Serialization
│ │ ├── SerializableDictionary.cs
│ │ └── SerializableException.cs
│ │ ├── Storage
│ │ ├── StoragePath.cs
│ │ ├── StoredItemFile.cs
│ │ ├── Storer.cs
│ │ └── ZipStorer.cs
│ │ └── Web
│ │ └── StreamUpload.cs
├── Enums
│ ├── LoggerCategory.cs
│ ├── MiniDumpType.cs
│ ├── StoragePath.cs
│ ├── UIMode.cs
│ └── UIProvider.cs
├── Events
│ ├── CustomSubmissionEventArgs.cs
│ └── CustomUIEventArgs.cs
├── Exceptions.cs
├── Handler.cs
├── Helpers
│ └── EmailDestinationBuilder.cs
├── NBug.Configurator
│ ├── NBug.Configurator.exe
│ ├── NBug.Configurator.exe.config
│ ├── NBug.Examples.WinForms.exe
│ ├── NBug.Examples.WinForms.exe.config
│ └── NBug.dll
├── NBug.csproj
├── NBug_LICENSE.md
├── NBug_README.md
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Localization.Designer.cs
│ ├── Localization.ar.resx
│ ├── Localization.cs.resx
│ ├── Localization.de.resx
│ ├── Localization.es.resx
│ ├── Localization.fi-FI.resx
│ ├── Localization.fr.resx
│ ├── Localization.hr.resx
│ ├── Localization.hu.resx
│ ├── Localization.it.resx
│ ├── Localization.ja.resx
│ ├── Localization.ko-KR.resx
│ ├── Localization.nl.resx
│ ├── Localization.pl.resx
│ ├── Localization.pt-BR.resx
│ ├── Localization.pt.resx
│ ├── Localization.resx
│ ├── Localization.ru.resx
│ ├── Localization.sl.resx
│ ├── Localization.sv.resx
│ ├── Localization.tr.resx
│ ├── Localization.vi.resx
│ ├── Localization.zh-Hans.resx
│ ├── Localization.zh-Hant.resx
│ ├── PublishProfiles
│ │ └── FolderProfile.pubxml
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ ├── Settings.settings
│ └── SettingsOverride.cs
├── Settings.cs
└── resources
│ ├── Error_16.png
│ ├── Feedback.png
│ ├── Forum_16.png
│ ├── Help_16.png
│ ├── NBug_Icon_PNG_16.png
│ ├── NBug_icon_16.ico
│ ├── NBug_icon_16_borders.ico
│ ├── Send.png
│ ├── VS2010_16.png
│ └── icon.ico
├── NetSettingBinder
├── ISettingChangedHandlerEntry.cs
├── LockedList.cs
├── NetSettingBinder.csproj
├── Properties
│ ├── AssemblyInfo.cs
│ └── PublishProfiles
│ │ └── FolderProfile.pubxml
├── ReflectionTools.cs
├── SettingBinder.Forms.cs
├── SettingBinder.cs
├── SettingChangedEventArgs.cs
├── SettingChangedEventHandler.cs
└── SettingChangedHandlerEntry.cs
├── ObjectListView
├── CellEditing
│ ├── CellEditKeyEngine.cs
│ ├── CellEditors.cs
│ └── EditorRegistry.cs
├── CustomDictionary.xml
├── DataListView.cs
├── DataTreeListView.cs
├── DragDrop
│ ├── DragSource.cs
│ ├── DropSink.cs
│ └── OLVDataObject.cs
├── FastDataListView.cs
├── FastObjectListView.cs
├── Filtering
│ ├── Cluster.cs
│ ├── ClusteringStrategy.cs
│ ├── ClustersFromGroupsStrategy.cs
│ ├── DateTimeClusteringStrategy.cs
│ ├── FilterMenuBuilder.cs
│ ├── Filters.cs
│ ├── FlagClusteringStrategy.cs
│ ├── ICluster.cs
│ ├── IClusteringStrategy.cs
│ └── TextMatchFilter.cs
├── FullClassDiagram.cd
├── GlobalSuppressions.cs
├── Implementation
│ ├── Attributes.cs
│ ├── Comparers.cs
│ ├── DataSourceAdapter.cs
│ ├── Delegates.cs
│ ├── DragSource.cs
│ ├── DropSink.cs
│ ├── Enums.cs
│ ├── Events.cs
│ ├── GroupingParameters.cs
│ ├── Groups.cs
│ ├── Munger.cs
│ ├── NativeMethods.cs
│ ├── NullableDictionary.cs
│ ├── OLVListItem.cs
│ ├── OLVListSubItem.cs
│ ├── OlvListViewHitTestInfo.cs
│ ├── TreeDataSourceAdapter.cs
│ ├── VirtualGroups.cs
│ └── VirtualListDataSource.cs
├── OLVColumn.cs
├── ObjectListView.DesignTime.cs
├── ObjectListView.FxCop
├── ObjectListView.cs
├── ObjectListView.csproj
├── ObjectListView.shfb
├── Properties
│ ├── AssemblyInfo.cs
│ ├── PublishProfiles
│ │ └── FolderProfile.pubxml
│ ├── Resources.Designer.cs
│ └── Resources.resx
├── Rendering
│ ├── Adornments.cs
│ ├── Decorations.cs
│ ├── Overlays.cs
│ ├── Renderers.cs
│ ├── Styles.cs
│ └── TreeRenderer.cs
├── Resources
│ ├── clear-filter.png
│ ├── coffee.jpg
│ ├── filter-icons3.png
│ ├── filter.png
│ ├── sort-ascending.png
│ └── sort-descending.png
├── SubControls
│ ├── GlassPanelForm.cs
│ ├── HeaderControl.cs
│ ├── ToolStripCheckedListBox.cs
│ └── ToolTipControl.cs
├── TreeListView.cs
├── Utilities
│ ├── ColumnSelectionForm.Designer.cs
│ ├── ColumnSelectionForm.cs
│ ├── ColumnSelectionForm.resx
│ ├── Generator.cs
│ ├── OLVExporter.cs
│ └── TypedObjectListView.cs
└── VirtualObjectListView.cs
├── OculusHelper
├── OculusApp.cs
├── OculusHelper.csproj
├── OculusManager.cs
├── Program.cs
└── Properties
│ ├── AssemblyInfo.cs
│ └── PublishProfiles
│ └── FolderProfile.pubxml
├── PortableSettingsProvider
├── PortableSettingsProvider.cs
├── PortableSettingsProvider.csproj
├── Properties
│ ├── AssemblyInfo.cs
│ └── PublishProfiles
│ │ └── FolderProfile.pubxml
└── U3SettingsProvider.cs
├── ScriptHelper
├── Program.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── PublishProfiles
│ │ └── FolderProfile.pubxml
│ ├── app.manifest
│ └── launchSettings.json
├── ScriptHelper.csproj
└── Tweaks.cs
├── SimpleTreeMap
├── Element.cs
├── Properties
│ ├── AssemblyInfo.cs
│ └── PublishProfiles
│ │ └── FolderProfile.pubxml
├── SimpleTreeMap.csproj
├── Slice.cs
├── SliceMaker.cs
├── SliceRectangle.cs
├── SliceResult.cs
├── TreeMap.Designer.cs
├── TreeMap.cs
└── TreeMap.resx
├── SimpleTreeMapTests
├── Form1.Designer.cs
├── Form1.cs
├── Form1.resx
├── Program.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ └── Settings.settings
└── SimpleTreeMapTests.csproj
├── SteamHelper
├── Misc.cs
├── Program.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── PublishProfiles
│ │ └── FolderProfile.pubxml
│ └── launchSettings.json
├── SteamApplicationInfo.cs
├── SteamHelper.csproj
├── SteamInstallation.cs
├── SteamUninstaller.cs
└── steam.ico
├── StoreAppHelper
├── App.cs
├── AppManager.cs
├── Program.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── PublishProfiles
│ │ └── FolderProfile.pubxml
│ └── app.manifest
├── StoreAppHelper.csproj
└── icon.ico
├── UninstallTools
├── ApplicationEntrySerializer.cs
├── ApplicationUninstallerEntry.cs
├── Controls
│ ├── FilterEditor.Designer.cs
│ ├── FilterEditor.ar.resx
│ ├── FilterEditor.cs
│ ├── FilterEditor.cs.resx
│ ├── FilterEditor.de.resx
│ ├── FilterEditor.es.resx
│ ├── FilterEditor.fr.resx
│ ├── FilterEditor.hu.resx
│ ├── FilterEditor.it.resx
│ ├── FilterEditor.ja.resx
│ ├── FilterEditor.nl.resx
│ ├── FilterEditor.pl.resx
│ ├── FilterEditor.pt-BR.resx
│ ├── FilterEditor.pt.resx
│ ├── FilterEditor.resx
│ ├── FilterEditor.ru.resx
│ ├── FilterEditor.sl.resx
│ ├── FilterEditor.sv.resx
│ ├── FilterEditor.tr.resx
│ ├── FilterEditor.vi.resx
│ ├── FilterEditor.zh-Hans.resx
│ ├── FilterEditor.zh-Hant.resx
│ ├── UninstallListEditor.Designer.cs
│ ├── UninstallListEditor.ar.resx
│ ├── UninstallListEditor.cs
│ ├── UninstallListEditor.cs.resx
│ ├── UninstallListEditor.de.resx
│ ├── UninstallListEditor.es.resx
│ ├── UninstallListEditor.fr.resx
│ ├── UninstallListEditor.hu.resx
│ ├── UninstallListEditor.it.resx
│ ├── UninstallListEditor.ja.resx
│ ├── UninstallListEditor.nl.resx
│ ├── UninstallListEditor.pl.resx
│ ├── UninstallListEditor.pt-BR.resx
│ ├── UninstallListEditor.pt.resx
│ ├── UninstallListEditor.resx
│ ├── UninstallListEditor.ru.resx
│ ├── UninstallListEditor.sl.resx
│ ├── UninstallListEditor.sv.resx
│ ├── UninstallListEditor.tr.resx
│ ├── UninstallListEditor.vi.resx
│ ├── UninstallListEditor.zh-Hans.resx
│ ├── UninstallListEditor.zh-Hant.resx
│ └── UninstallerIconGetter.cs
├── Dialogs
│ ├── StartupManagerWindow.Designer.cs
│ ├── StartupManagerWindow.ar.resx
│ ├── StartupManagerWindow.cs
│ ├── StartupManagerWindow.cs.resx
│ ├── StartupManagerWindow.de.resx
│ ├── StartupManagerWindow.es.resx
│ ├── StartupManagerWindow.fr.resx
│ ├── StartupManagerWindow.hu.resx
│ ├── StartupManagerWindow.it.resx
│ ├── StartupManagerWindow.ja.resx
│ ├── StartupManagerWindow.nl.resx
│ ├── StartupManagerWindow.pl.resx
│ ├── StartupManagerWindow.pt-BR.resx
│ ├── StartupManagerWindow.pt.resx
│ ├── StartupManagerWindow.resx
│ ├── StartupManagerWindow.ru.resx
│ ├── StartupManagerWindow.sl.resx
│ ├── StartupManagerWindow.sv.resx
│ ├── StartupManagerWindow.tr.resx
│ ├── StartupManagerWindow.vi.resx
│ ├── StartupManagerWindow.zh-Hans.resx
│ └── StartupManagerWindow.zh-Hant.resx
├── Factory
│ ├── ApplicationEntryTools.cs
│ ├── ApplicationUninstallerFactory.cs
│ ├── ApplicationUninstallerFactoryCache.cs
│ ├── ChocolateyFactory.cs
│ ├── ConcurrentApplicationFactory.cs
│ ├── DirectoryFactory.cs
│ ├── FactoryThreadedHelpers.cs
│ ├── FactoryTools.cs
│ ├── IUninstallerFactory.cs
│ ├── InfoAdders
│ │ ├── AppExecutablesSearcher.cs
│ │ ├── BasicIconGetter.cs
│ │ ├── CertificateGetter.cs
│ │ ├── ExecutableAttributeExtractor.cs
│ │ ├── FastSizeGenerator.cs
│ │ ├── FileIconGetter.cs
│ │ ├── GenerateSteamHelperStrings.cs
│ │ ├── IMissingInfoAdder.cs
│ │ ├── InfoAdderManager.cs
│ │ ├── InfoAdderPriority.cs
│ │ ├── InnoSetupQuietUninstallStringGenerator.cs
│ │ ├── InstallDateAdder.cs
│ │ ├── InstallLocationGenerator.cs
│ │ ├── Is64BitGetter.cs
│ │ ├── KnownNameIconGetter.cs
│ │ ├── MsiInfoAdder.cs
│ │ ├── MsiUninstallStringGenerator.cs
│ │ ├── NsisQuietUninstallStringGenerator.cs
│ │ ├── PredefinedAppQuietUninstallStringGenerator.cs
│ │ ├── QuietUninstallStringCopier.cs
│ │ ├── SimpleDeleteUninstallStringGenerator.cs
│ │ ├── UninstallerSearcher.cs
│ │ ├── UninstallerTypeAdder.cs
│ │ ├── VersionCleaner.cs
│ │ └── WebBrowserMarker.cs
│ ├── Json
│ │ ├── DynamicStringArrayConverter.cs
│ │ └── PowerShellDateTimeOffsetConverter.cs
│ ├── OculusFactory.cs
│ ├── PredefinedFactory.cs
│ ├── RegistryFactory.cs
│ ├── ScoopFactory.cs
│ ├── ScriptFactory.cs
│ ├── SteamFactory.cs
│ ├── StoreAppFactory.cs
│ ├── WindowsFeatureFactory.cs
│ └── WindowsUpdateFactory.cs
├── Junk
│ ├── Confidence
│ │ ├── ConfidenceCollection.cs
│ │ ├── ConfidenceGenerators.cs
│ │ ├── ConfidenceLevel.cs
│ │ ├── ConfidenceRecord.cs
│ │ └── ConfidenceRecords.cs
│ ├── Containers
│ │ ├── FileSystemJunk.cs
│ │ ├── IJunkResult.cs
│ │ ├── JunkResultBase.cs
│ │ ├── RegistryKeyJunk.cs
│ │ ├── RegistryValueJunk.cs
│ │ ├── RunProcessJunk.cs
│ │ └── StartupJunkNode.cs
│ ├── Finders
│ │ ├── Drive
│ │ │ ├── CommonDriveJunkScanner.cs
│ │ │ ├── InstallLocationScanner.cs
│ │ │ ├── PrefetchScanner.cs
│ │ │ ├── SpecificUninstallerKindScanner.cs
│ │ │ ├── UninstallerLocationScanner.cs
│ │ │ └── WerScanner.cs
│ │ ├── JunkCreatorBase.cs
│ │ ├── Misc
│ │ │ ├── ShortcutJunk.cs
│ │ │ └── StartupJunk.cs
│ │ └── Registry
│ │ │ ├── AppCompatFlagScanner.cs
│ │ │ ├── AudioPolicyConfigScanner.cs
│ │ │ ├── ComScanner.cs
│ │ │ ├── DebugTracingScanner.cs
│ │ │ ├── EventLogScanner.cs
│ │ │ ├── FirewallRuleScanner.cs
│ │ │ ├── HeapLeakDetectionScanner.cs
│ │ │ ├── InstallerFoldersScanner.cs
│ │ │ ├── RegisteredApplicationsFinder.cs
│ │ │ ├── SoftwareRegKeyScanner.cs
│ │ │ ├── TracingScanner.cs
│ │ │ ├── UninstallerKeySearcher.cs
│ │ │ └── UserAssistScanner.cs
│ ├── IJunkCreator.cs
│ ├── JunkManager.cs
│ └── ProgramFilesOrphans.cs
├── ListGenerationProgress.cs
├── Lists
│ ├── ComparisonMethod.cs
│ ├── ComparisonTargetAttribute.cs
│ ├── ComparisonTargetInfo.cs
│ ├── Filter.cs
│ ├── FilterCondition.cs
│ ├── ITestEntry.cs
│ └── UninstallList.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Localisation.Designer.cs
│ ├── Localisation.ar.resx
│ ├── Localisation.cs.resx
│ ├── Localisation.de.resx
│ ├── Localisation.es.resx
│ ├── Localisation.fr.resx
│ ├── Localisation.hu.resx
│ ├── Localisation.it.resx
│ ├── Localisation.ja.resx
│ ├── Localisation.nl.resx
│ ├── Localisation.pl.resx
│ ├── Localisation.pt-BR.resx
│ ├── Localisation.pt.resx
│ ├── Localisation.resx
│ ├── Localisation.ru.resx
│ ├── Localisation.sl.resx
│ ├── Localisation.sv.resx
│ ├── Localisation.tr.resx
│ ├── Localisation.vi.resx
│ ├── Localisation.zh-Hans.resx
│ ├── Localisation.zh-Hant.resx
│ ├── PublishProfiles
│ │ └── FolderProfile.pubxml
│ ├── Resources.Designer.cs
│ └── Resources.resx
├── Resources
│ ├── add.png
│ ├── app.png
│ ├── arrow.right.png
│ ├── delete.png
│ ├── folder.open.png
│ ├── link.png
│ ├── minus.png
│ ├── page.copy.png
│ └── page.duplicate.png
├── SimplifiedClassDiagram.cd
├── Startup
│ ├── Browser
│ │ ├── BrowserEntryFactory.cs
│ │ └── BrowserHelperEntry.cs
│ ├── Normal
│ │ ├── IStartupDisable.cs
│ │ ├── NewStartupDisable.cs
│ │ ├── OldStartupDisable.cs
│ │ ├── StartupEntry.cs
│ │ ├── StartupEntryFactory.cs
│ │ ├── StartupEntryManager.cs
│ │ └── StartupPointData.cs
│ ├── Service
│ │ ├── ServiceEntry.cs
│ │ └── ServiceEntryFactory.cs
│ ├── StartupEntryBase.cs
│ ├── StartupManager.cs
│ └── Task
│ │ ├── TaskEntry.cs
│ │ └── TaskEntryFactory.cs
├── ThreadedWorkSpreader.cs
├── UninstallTools.csproj
├── UninstallToolsGlobalConfig.cs
├── Uninstaller
│ ├── BulkUninstallConfiguration.cs
│ ├── BulkUninstallEntry.cs
│ ├── BulkUninstallTask.cs
│ ├── MsiUninstallModes.cs
│ ├── UninstallManager.cs
│ └── UninstallStatus.cs
└── UninstallerType.cs
├── UninstallerAutomatizer
├── Automation
│ ├── AutomatedUninstallManager.cs
│ ├── UninstallHandler.cs
│ ├── UninstallHandlerUpdateArgs.cs
│ └── UninstallHandlerUpdateKind.cs
├── Extensions
│ ├── TestStackWhiteExtensions.cs
│ └── WindowExtensions.cs
├── Forms
│ ├── MainWindow.Designer.cs
│ ├── MainWindow.ar.resx
│ ├── MainWindow.cs
│ ├── MainWindow.cs.resx
│ ├── MainWindow.de.resx
│ ├── MainWindow.es.resx
│ ├── MainWindow.fr.resx
│ ├── MainWindow.hu.resx
│ ├── MainWindow.it.resx
│ ├── MainWindow.ja.resx
│ ├── MainWindow.nl.resx
│ ├── MainWindow.pl.resx
│ ├── MainWindow.pt-BR.resx
│ ├── MainWindow.pt.resx
│ ├── MainWindow.resx
│ ├── MainWindow.ru.resx
│ ├── MainWindow.sl.resx
│ ├── MainWindow.sv.resx
│ ├── MainWindow.tr.resx
│ ├── MainWindow.vi.resx
│ ├── MainWindow.zh-Hans.resx
│ └── MainWindow.zh-Hant.resx
├── Program.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Localization.Designer.cs
│ ├── Localization.ar.resx
│ ├── Localization.cs.resx
│ ├── Localization.de.resx
│ ├── Localization.es.resx
│ ├── Localization.fr.resx
│ ├── Localization.it.resx
│ ├── Localization.ja.resx
│ ├── Localization.nl.resx
│ ├── Localization.pl.resx
│ ├── Localization.pt-BR.resx
│ ├── Localization.pt.resx
│ ├── Localization.resx
│ ├── Localization.ru.resx
│ ├── Localization.sl.resx
│ ├── Localization.sv.resx
│ ├── Localization.tr.resx
│ ├── Localization.vi.resx
│ ├── Localization.zh-Hans.resx
│ ├── Localization.zh-Hant.resx
│ ├── PublishProfiles
│ │ └── FolderProfile.pubxml
│ └── app.manifest
├── UninstallerAutomatizer.csproj
└── icon.ico
├── UniversalUninstaller
├── LogWriter.cs
├── Program.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Localisation.Designer.cs
│ ├── Localisation.ar.resx
│ ├── Localisation.cs.resx
│ ├── Localisation.de.resx
│ ├── Localisation.es.resx
│ ├── Localisation.fr.resx
│ ├── Localisation.hu.resx
│ ├── Localisation.it.resx
│ ├── Localisation.ja.resx
│ ├── Localisation.nl.resx
│ ├── Localisation.pl.resx
│ ├── Localisation.pt-BR.resx
│ ├── Localisation.pt.resx
│ ├── Localisation.resx
│ ├── Localisation.ru.resx
│ ├── Localisation.sl.resx
│ ├── Localisation.sv.resx
│ ├── Localisation.tr.resx
│ ├── Localisation.vi.resx
│ ├── Localisation.zh-Hans.resx
│ ├── Localisation.zh-Hant.resx
│ ├── PublishProfiles
│ │ └── FolderProfile.pubxml
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ ├── Settings.settings
│ └── app.manifest
├── Resources
│ ├── Folder_48x48.png
│ ├── Generic_Application.png
│ ├── Generic_Document.png
│ ├── app.png
│ ├── folder.png
│ ├── icon.png
│ ├── page.text.png
│ ├── section.collapse.all.png
│ ├── section.collapse.all1.png
│ ├── section.expand.all.png
│ └── section.expand.all1.png
├── TargetList.Designer.cs
├── TargetList.ar.resx
├── TargetList.cs
├── TargetList.cs.resx
├── TargetList.de.resx
├── TargetList.es.resx
├── TargetList.fr.resx
├── TargetList.hu.resx
├── TargetList.it.resx
├── TargetList.ja.resx
├── TargetList.nl.resx
├── TargetList.pl.resx
├── TargetList.pt-BR.resx
├── TargetList.pt.resx
├── TargetList.resx
├── TargetList.ru.resx
├── TargetList.sl.resx
├── TargetList.sv.resx
├── TargetList.tr.resx
├── TargetList.vi.resx
├── TargetList.zh-Hans.resx
├── TargetList.zh-Hant.resx
├── TreeEntry.cs
├── UninstallSelection.Designer.cs
├── UninstallSelection.ar.resx
├── UninstallSelection.cs
├── UninstallSelection.cs.resx
├── UninstallSelection.de.resx
├── UninstallSelection.es.resx
├── UninstallSelection.fr.resx
├── UninstallSelection.hu.resx
├── UninstallSelection.it.resx
├── UninstallSelection.ja.resx
├── UninstallSelection.nl.resx
├── UninstallSelection.pl.resx
├── UninstallSelection.pt-BR.resx
├── UninstallSelection.pt.resx
├── UninstallSelection.resx
├── UninstallSelection.ru.resx
├── UninstallSelection.sl.resx
├── UninstallSelection.sv.resx
├── UninstallSelection.tr.resx
├── UninstallSelection.vi.resx
├── UninstallSelection.zh-Hans.resx
├── UninstallSelection.zh-Hant.resx
├── UniversalUninstaller.csproj
└── UniversalUninstaller.ico
├── WinUpdateHelper
├── Hresult.cs
├── LogWriter.cs
├── Program.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── PublishProfiles
│ │ └── FolderProfile.pubxml
│ └── app.manifest
├── UpdateManager.cs
├── WinUpdateHelper.csproj
└── icon.ico
└── es.exe
/.github/workflows/winget.yml:
--------------------------------------------------------------------------------
1 | name: Publish to WinGet
2 | on:
3 | release:
4 | types: [released]
5 | jobs:
6 | publish:
7 | runs-on: ubuntu-latest
8 | steps:
9 | - name: Get version
10 | id: get-version
11 | run: |
12 | # Find the version from tag name and pad to 4 components
13 | version=$(echo "${{ github.event.release.tag_name }}" | awk -F. '{printf "%d.%d.%d.%d\n", substr($1, 2), $2, $3, $4}')
14 | echo "version=$VERSION" >> $GITHUB_OUTPUT
15 | - uses: vedantmgoyal9/winget-releaser@main
16 | with:
17 | identifier: Klocman.BulkCrapUninstaller
18 | version: ${{ steps.get-version.outputs.version }}
19 | token: ${{ secrets.WINGET_TOKEN }}
20 |
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Contributor Covenant Code of Conduct
2 |
3 | - Don't be a d*ck to others
4 | - Don't be afraid to point out bad behavior
5 | - Do focus on making the project better
6 |
--------------------------------------------------------------------------------
/NOTICE:
--------------------------------------------------------------------------------
1 | Bulk Crap Uninstaller is a free open-source project hosted on GitHub. Marcin Szeniak is the project manager and lead developer.
2 | The official project is hosted at https://github.com/Klocman/Bulk-Crap-Uninstaller
3 |
4 | In case of issues, please update to the latest official release. Non-official releases are not supported.
5 | If the issue presists, please post a bug report to https://github.com/Klocman/Bulk-Crap-Uninstaller/issues
6 |
7 | If you wish to contribute, donate or otherwise help the project, please read the CONTRIBUTING file.
8 | https://github.com/Klocman/Bulk-Crap-Uninstaller/blob/master/CONTRIBUTING.md
--------------------------------------------------------------------------------
/PrivacyPolicy.txt:
--------------------------------------------------------------------------------
1 | BCUninstaller by Marcin Szeniak collects the following information:
2 | - Anonymous usage statistics
3 | - Anonymous error reports
4 | - User-selected application ratings
5 |
6 | All collected information is not personally identifiable, and does not include any sensitive information.
7 |
8 | During first start of BCU an user ID is generated to help keep track of application ratings and usage statistics. It can be freely changed and is not guaranteed to be unique.
9 |
10 | Marcin Szeniak collects this information in order to provide the following benefits:
11 | - Improve BCUninstaller
12 | - Provide overall application ratings
13 | - Help plan future features and/or applications
14 |
15 | Marcin Szeniak shares this information with the following parties:
16 | - No one
17 |
18 | User-selected application ratings are used to generate overall application ratings, which are visible to all users.
19 |
20 | This policy is subject to change without notice. Please check this page for the latest privacy policy. If you disagree with this policy, please discontinue use of the application.
--------------------------------------------------------------------------------
/doc/BCU_manual.odt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/doc/BCU_manual.odt
--------------------------------------------------------------------------------
/doc/Preview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/doc/Preview.png
--------------------------------------------------------------------------------
/doc/SimplifiedClassDiagram.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/doc/SimplifiedClassDiagram.png
--------------------------------------------------------------------------------
/installer/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore for InnoSetup
2 |
3 | [Ii]nput
4 | [Oo]utput
5 | *.tmp
--------------------------------------------------------------------------------
/installer/bigImage.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/installer/bigImage.bmp
--------------------------------------------------------------------------------
/installer/bigImage.pdn:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/installer/bigImage.pdn
--------------------------------------------------------------------------------
/installer/lang/Hungarian.isl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/installer/lang/Hungarian.isl
--------------------------------------------------------------------------------
/installer/lang/Turkish.isl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/installer/lang/Turkish.isl
--------------------------------------------------------------------------------
/installer/logo.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/installer/logo.ico
--------------------------------------------------------------------------------
/installer/scripts/PortableIcons.iss:
--------------------------------------------------------------------------------
1 | [Tasks]
2 | Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; Check: IsNotPortable; GroupDescription: "{cm:AdditionalIcons}"
3 | Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; Check: IsNotPortable; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
4 |
5 | [Icons]
6 | Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Check: IsNotPortable;
7 | Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"; Check: IsNotPortable;
8 | Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon; Check: IsNotPortable;
9 | Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon; Check: IsNotPortable;
--------------------------------------------------------------------------------
/installer/scripts/isxdl/Hindi.ini:
--------------------------------------------------------------------------------
1 | [strings]
2 | ; General
3 | 100=फ़ाइल डाउनलोड
4 | 101=क्या आप डाउनलोड रद्द करना चाहते हैं?
5 | 102=%1 (%2 में से %3)
6 | 103=%1 KB
7 | 104=%1 KB में से %2 KB (%3%)
8 |
9 | ; Status information
10 | 110=फ़ाइल जानकारी प्राप्त की जा रही है...
11 | 111=%1 पर पुनर्निर्देशित किया जा रहा है
12 | 112=अनुरोध भेजा जा रहा है...
13 | 113=%1 का समाधान किया जा रहा है
14 | 114=%1 से कनेक्ट किया गया
15 | 115=प्राप्त किया जा रहा है...
16 | 116=%1 से कनेक्ट किया जा रहा है...
17 |
18 | ; Error messages
19 | 120=इंटरनेट से कनेक्ट करते समय त्रुटि हुई।\n\n%1
20 | 121=%1 खोलते समय त्रुटि हुई।\n\nसर्वर ने स्थिति कोड %2 लौटाया।
21 | 122=URL पढ़ते समय त्रुटि हुई।\n\n%1
22 | 123=फ़ाइल %1 लिखते समय त्रुटि हुई।\n\n%2
23 | 124=फ़ाइल %1 खोलते समय त्रुटि हुई।\n\n%2
24 | 125='%1' अमान्य URL है।
25 | 126=%1 खोलते समय त्रुटि हुई।\n\n%2
26 | 127=अनुरोध भेजते समय त्रुटि हुई।\n\n%1
27 | 128=असमर्थित प्रोटोकॉल। केवल HTTP और FTP प्रोटोकॉल समर्थित हैं।
28 | 129=%1 से कनेक्ट करने में विफल।\n\n%2
29 | 130=स्थिति कोड क्वेरी करने में विफल।\n\n%1
30 | 131=फ़ाइल अनुरोध करते समय त्रुटि हुई।\n\n%1
31 |
32 | ; Other
33 | 144=बारे में...
34 | 146=डाउनलोड
35 | 147=सेटअप अब आपके कंप्यूटर पर अतिरिक्त फाइलें डाउनलोड कर रहा है।
36 |
37 | ; labels
38 | 160=फ़ाइल:
39 | 161=गति:
40 | 162=स्थिति:
41 | 163=बीता हुआ समय:
42 | 164=शेष समय:
43 | 165=वर्तमान फ़ाइल:
44 | 166=कुल प्रगति:
45 | 167=रद्द करें
46 | 168=ठीक है
47 | 169=उपयोगकर्ता नाम और पासवर्ड
48 | 170=उपयोगकर्ता नाम:
49 | 171=पासवर्ड:
50 |
--------------------------------------------------------------------------------
/installer/scripts/isxdl/Turkish.ini:
--------------------------------------------------------------------------------
1 | [strings]
2 | ; General
3 | 100=Dosya İndirme
4 | 101=İndirmeyi iptal etmek istiyor musunuz?
5 | 102=%1 (%2 / %3)
6 | 103=%1 KB
7 | 104=%1 KB / %2 KB (%3%)
8 |
9 | ; Status information
10 | 110=Dosya bilgileri alınıyor...
11 | 111=%1'e yönlendiriliyor
12 | 112=İstek gönderiliyor...
13 | 113=%1 çözümleniyor
14 | 114=%1'e bağlanıldı
15 | 115=Alınıyor...
16 | 116=%1'e bağlanılıyor
17 |
18 | ; Error messages
19 | 120=İnternete bağlanırken hata oluştu.\n\n%1
20 | 121=Hata %1 açılırken.\n\nServer bu kodu dödürdü %2.
21 | 122=URL'yi okurken hata.\n\n%1
22 | 123=Bu dosyaya yazarken hata %1.\n\n%2
23 | 124=Bu dosyayı açarken hata %1.\n\n%2
24 | 125='%1' geçersiz URL.
25 | 126=%1' açılamıyor.\n\n%2
26 | 127=İstek gönderilemiyor.\n\n%1
27 | 128=Desteklenmeyen protokol. Yalnızca HTTP ve FTP protokolleri desteklenir.
28 | 129=%1'e bağlanılamıyor.\n\n%2
29 | 130=Durum kodu sorgulanamadı.\n\n%1
30 | 131=Dosya istenirken hata.\n\n%1
31 |
32 | ; Other
33 | 144=Hakkında...
34 | 146=İndir
35 | 147=Kurulum için bilgisayarınıza ek dosyalar indiriyor.
36 |
37 | ; labels
38 | 160=Dosya:
39 | 161=Hız:
40 | 162=Durum:
41 | 163=Geçen Zaman:
42 | 164=Kalan Zaman:
43 | 165=Şimdiki dosya:
44 | 166=Genel İlerleme:
45 | 167=İptal
46 | 168=Tamam
47 | 169=Kullanıcı Adı ve Şifre
48 | 170=Kullanıcı Adı:
49 | 171=Şifre:
50 |
--------------------------------------------------------------------------------
/installer/scripts/isxdl/chinese.ini:
--------------------------------------------------------------------------------
1 | [strings]
2 | ; General
3 | 100=文件下载
4 | 101=您想取消下载吗?
5 | 102=%1 (%2 / %3)
6 | 103=%1 KB
7 | 104=%1 KB / %2 KB (%3%)
8 |
9 | ; Status information
10 | 110=获取文件信息中...
11 | 111=重定向至 %1
12 | 112=发送请求...
13 | 113=解决 %1
14 | 114=成功连接至 %1
15 | 115=接收中...
16 | 116=正在连接至 %1
17 |
18 | ; Error messages
19 | 120=连接互联网出错\n\n%1
20 | 121=打开 %1 时出错。\n\n服务器返回状态码 %2.
21 | 122=读取链接出错。\n\n%1
22 | 123=写入文件 %1 时出错。\n\n%2
23 | 124=打开文件 %1 时出错。\n\n%2
24 | 125=网址 '%1' 无效。
25 | 126=打开 %1 时出错。\n\n%2
26 | 127=发送请求时出错。\n\n%1
27 | 128=不支持协议。仅支持 HTTP 和 FTP 协议。
28 | 129=连接 %1 时出错。\n\n%2
29 | 130=查询状态代码失败。\n\n%1
30 | 131=请求文件时出错。\n\n%1
31 |
32 | ; Other
33 | 144=关于...
34 | 146=下载
35 | 147=安装程序正在向您的计算机下载其他文件。
36 |
37 | ; labels
38 | 160=文件:
39 | 161=速度:
40 | 162=状态:
41 | 163=耗时:
42 | 164=剩余时间:
43 | 165=当前文件:
44 | 166=总进度:
45 | 167=取消
46 | 168=确定
47 | 169=用户名和密码
48 | 170=用户名:
49 | 171=密码:
50 |
--------------------------------------------------------------------------------
/installer/scripts/isxdl/czech.ini:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/installer/scripts/isxdl/czech.ini
--------------------------------------------------------------------------------
/installer/scripts/isxdl/english.ini:
--------------------------------------------------------------------------------
1 | [strings]
2 | ; General
3 | 100=File Download
4 | 101=Do you want to cancel the download?
5 | 102=%1 (%2 of %3)
6 | 103=%1 KB
7 | 104=%1 KB of %2 KB (%3%)
8 |
9 | ; Status information
10 | 110=Getting file information...
11 | 111=Redirecting to %1
12 | 112=Sending request...
13 | 113=Resolving %1
14 | 114=Connected to %1
15 | 115=Receiving...
16 | 116=Connecting to %1
17 |
18 | ; Error messages
19 | 120=Error connecting to Internet.\n\n%1
20 | 121=Error opening %1.\n\nThe server returned status code %2.
21 | 122=Error reading URL.\n\n%1
22 | 123=Error writing file %1.\n\n%2
23 | 124=Error opening file %1.\n\n%2
24 | 125='%1' is an invalid URL.
25 | 126=Error opening %1.\n\n%2
26 | 127=Error sending request.\n\n%1
27 | 128=Unsupported protocol. Only HTTP and FTP protocols are supported.
28 | 129=Failed to connect to %1.\n\n%2
29 | 130=Failed to query status code.\n\n%1
30 | 131=Error requesting file.\n\n%1
31 |
32 | ; Other
33 | 144=About...
34 | 146=Download
35 | 147=Setup is now downloading additional files to your computer.
36 |
37 | ; labels
38 | 160=File:
39 | 161=Speed:
40 | 162=Status:
41 | 163=Elapsed Time:
42 | 164=Remaining Time:
43 | 165=Current File:
44 | 166=Overall Progress:
45 | 167=Cancel
46 | 168=OK
47 | 169=User Name and Password
48 | 170=User Name:
49 | 171=Password:
50 |
--------------------------------------------------------------------------------
/installer/scripts/isxdl/french.ini:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/installer/scripts/isxdl/french.ini
--------------------------------------------------------------------------------
/installer/scripts/isxdl/french2.ini:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/installer/scripts/isxdl/french2.ini
--------------------------------------------------------------------------------
/installer/scripts/isxdl/french3.ini:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/installer/scripts/isxdl/french3.ini
--------------------------------------------------------------------------------
/installer/scripts/isxdl/german.ini:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/installer/scripts/isxdl/german.ini
--------------------------------------------------------------------------------
/installer/scripts/isxdl/german2.ini:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/installer/scripts/isxdl/german2.ini
--------------------------------------------------------------------------------
/installer/scripts/isxdl/german3.ini:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/installer/scripts/isxdl/german3.ini
--------------------------------------------------------------------------------
/installer/scripts/isxdl/isxdl.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/installer/scripts/isxdl/isxdl.dll
--------------------------------------------------------------------------------
/installer/scripts/isxdl/isxdl.iss:
--------------------------------------------------------------------------------
1 | [Files]
2 | Source: "scripts\isxdl\isxdl.dll"; Flags: dontcopy
3 |
4 | [Code]
5 | procedure isxdl_AddFile(URL, Filename: PAnsiChar);
6 | external 'isxdl_AddFile@files:isxdl.dll stdcall';
7 |
8 | function isxdl_DownloadFiles(hWnd: Integer): Integer;
9 | external 'isxdl_DownloadFiles@files:isxdl.dll stdcall';
10 |
11 | function isxdl_SetOption(Option, Value: PAnsiChar): Integer;
12 | external 'isxdl_SetOption@files:isxdl.dll stdcall';
13 |
--------------------------------------------------------------------------------
/installer/scripts/isxdl/norwegian.ini:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/installer/scripts/isxdl/norwegian.ini
--------------------------------------------------------------------------------
/installer/scripts/isxdl/polish.ini:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/installer/scripts/isxdl/polish.ini
--------------------------------------------------------------------------------
/installer/scripts/isxdl/portugues.ini:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/installer/scripts/isxdl/portugues.ini
--------------------------------------------------------------------------------
/installer/scripts/isxdl/portuguese.ini:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/installer/scripts/isxdl/portuguese.ini
--------------------------------------------------------------------------------
/installer/scripts/isxdl/russian.ini:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/installer/scripts/isxdl/russian.ini
--------------------------------------------------------------------------------
/installer/scripts/isxdl/spanish.ini:
--------------------------------------------------------------------------------
1 | ; By Lobo Lunar
2 | [strings]
3 | ; General
4 | 100=Descargar
5 | 101=¿Deseas cancelar la descarga?
6 | 102=%1 (%2 de %3)
7 | 103=%1 KB
8 | 104=%1 KB de %2 KB (%3%)
9 |
10 | ; Status information
11 | 110=Recibiendo información del archivo...
12 | 111=Redireccionando a %1
13 | 112=Enviando petición...
14 | 113=Resolviendo %1
15 | 114=Conectando a %1
16 | 115=Descargando...
17 | 116=Conectando a %1
18 |
19 | ; Error messages
20 | 120=Error al conectar a Internet.\n\n%1
21 | 121=Error al abrir %1.\n\nEl servidor regresó %2.
22 | 122=Error al leer URL.\n\n%1
23 | 123=Error al escribir el archivo %1.\n\n%2
24 | 124=Error al abrir el archivo %1.\n\n%2
25 | 125='%1' es URL inválido.
26 | 126=Error al abrir %1.\n\n%2
27 | 127=Error al mandar la petición.\n\n%1
28 | 128=Error de protocolo. Sólo HTTP o FTP son aceptados.
29 | 129=Error al conectar a %1.\n\n%2
30 | 130=Error al procesar el código.\n\n%1
31 | 131=Error al buscar el archivo.\n\n%1
32 |
33 | ; Other
34 | 144=Acerca de...
35 | 146=Descargar
36 | 147=El asistente está descargando archivos.
37 |
38 | ; labels
39 | 160=Archivo:
40 | 161=Velocidad:
41 | 162=Estado:
42 | 163=Tiempo transcurrido:
43 | 164=Tiempo estimado:
44 | 165=Archivo actual:
45 | 166=Progreso general:
46 | 167=Cancelar
47 | 168=Aceptar
48 | 169=Usuario y contraseña
49 | 170=Usuario:
50 | 171=Contraseña:
51 |
--------------------------------------------------------------------------------
/installer/scripts/isxdl/swedish.ini:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/installer/scripts/isxdl/swedish.ini
--------------------------------------------------------------------------------
/installer/scripts/products/dotnetfx11.iss:
--------------------------------------------------------------------------------
1 | // requires Windows 2000; Windows Server 2003 Service Pack 1 for Itanium-based Systems; Windows Server 2003 x64 editions; Windows Server 2008 Datacenter; Windows Server 2008 Enterprise; Windows Server 2008 for Itanium-based Systems; Windows Server 2008 Standard; Windows Vista Business; Windows Vista Enterprise; Windows Vista Home Basic; Windows Vista Home Premium; Windows Vista Starter; Windows Vista Ultimate; Windows XP; Windows XP Professional x64 Edition; Windows NT 4.0 Service Pack 6a
2 | // requires internet explorer 5.0.1 or higher
3 | // http://www.microsoft.com/downloads/details.aspx?FamilyID=262d25e3-f589-4842-8157-034d1e7cf3a3
4 |
5 | [CustomMessages]
6 | dotnetfx11_title=.NET Framework 1.1
7 |
8 | en.dotnetfx11_size=23.1 MB
9 | de.dotnetfx11_size=23,1 MB
10 | es.dotnetfx11_size=23,1 MB
11 |
12 |
13 | [Code]
14 | const
15 | dotnetfx11_url = 'http://download.microsoft.com/download/a/a/c/aac39226-8825-44ce-90e3-bf8203e74006/dotnetfx.exe';
16 |
17 | procedure dotnetfx11();
18 | begin
19 | if (IsX86() and not netfxinstalled(NetFx11, '')) then
20 | AddProduct('dotnetfx11.exe',
21 | '/q:a /c:"install /qb /l"',
22 | CustomMessage('dotnetfx11_title'),
23 | CustomMessage('dotnetfx11_size'),
24 | dotnetfx11_url,
25 | false, false);
26 | end;
27 |
--------------------------------------------------------------------------------
/installer/scripts/products/dotnetfx11lp.iss:
--------------------------------------------------------------------------------
1 | [CustomMessages]
2 | de.dotnetfx11lp_title=.NET Framework 1.1 Sprachpaket: Deutsch
3 | es.dotnetfx11lp_title=.NET Framework 1.1 paquete de idioma: Español
4 |
5 | de.dotnetfx11lp_size=1,4 MB
6 | es.dotnetfx11lp_size=1,38 MB
7 |
8 | ;http://www.microsoft.com/globaldev/reference/lcid-all.mspx
9 | de.dotnetfx11lp_lcid=1031
10 | es.dotnetfx11lp_lcid=3082
11 |
12 | de.dotnetfx11lp_url=http://download.microsoft.com/download/6/8/2/6821e687-526a-4ef8-9a67-9a402ec5ac9e/langpack.exe
13 | es.dotnetfx11lp_url=http://download.microsoft.com/download/2/a/3/2a33623b-d870-46e5-8703-3d61413b559f/langpack.exe
14 |
15 |
16 | [Code]
17 | procedure dotnetfx11lp();
18 | begin
19 | if (ActiveLanguage() <> 'en') then begin
20 | if (IsX86() and not netfxinstalled(NetFx11, CustomMessage('dotnetfx11lp_lcid'))) then
21 | AddProduct('dotnetfx11' + ActiveLanguage() + '.exe',
22 | '/q:a /c:"inst.exe /qb /l"',
23 | CustomMessage('dotnetfx11lp_title'),
24 | CustomMessage('dotnetfx11lp_size'),
25 | CustomMessage('dotnetfx11lp_url'),
26 | false, false);
27 | end;
28 | end;
29 |
--------------------------------------------------------------------------------
/installer/scripts/products/dotnetfx20.iss:
--------------------------------------------------------------------------------
1 | // requires Windows 2000 Service Pack 3, Windows 98, Windows 98 Second Edition, Windows ME, Windows Server 2003, Windows XP Service Pack 2
2 | // requires internet explorer 5.0.1 or higher
3 | // requires windows installer 2.0 on windows 98, ME
4 | // requires Windows Installer 3.1 on windows 2000 or higher
5 | // http://www.microsoft.com/downloads/details.aspx?FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5
6 |
7 | [CustomMessages]
8 | dotnetfx20_title=.NET Framework 2.0
9 |
10 | dotnetfx20_size=23 MB
11 | es.dotnetfx20_size=23 MB
12 |
13 |
14 | [Code]
15 | const
16 | dotnetfx20_url = 'http://download.microsoft.com/download/5/6/7/567758a3-759e-473e-bf8f-52154438565a/dotnetfx.exe';
17 | dotnetfx20_url_x64 = 'http://download.microsoft.com/download/a/3/f/a3f1bf98-18f3-4036-9b68-8e6de530ce0a/NetFx64.exe';
18 | dotnetfx20_url_ia64 = 'http://download.microsoft.com/download/f/8/6/f86148a4-e8f7-4d08-a484-b4107f238728/NetFx64.exe';
19 |
20 | procedure dotnetfx20();
21 | begin
22 | if (not netfxinstalled(NetFx20, '')) then
23 | AddProduct('dotnetfx20' + GetArchitectureString() + '.exe',
24 | '/passive /norestart /lang:ENU',
25 | CustomMessage('dotnetfx20_title'),
26 | CustomMessage('dotnetfx20_size'),
27 | GetString(dotnetfx20_url, dotnetfx20_url_x64, dotnetfx20_url_ia64),
28 | false, false);
29 | end;
30 |
--------------------------------------------------------------------------------
/installer/scripts/products/dotnetfx20sp1.iss:
--------------------------------------------------------------------------------
1 | // requires Windows 2000 Service Pack 4, Windows Server 2003, Windows XP Service Pack 2
2 | // requires KB 835732 on Windows 2000 Service Pack 4
3 | // http://www.microsoft.com/downloads/details.aspx?FamilyID=79bc3b77-e02c-4ad3-aacf-a7633f706ba5
4 |
5 | [CustomMessages]
6 | dotnetfx20sp1_title=.NET Framework 2.0 Service Pack 1
7 |
8 | en.dotnetfx20sp1_size=23.6 MB
9 | de.dotnetfx20sp1_size=23,6 MB
10 | es.dotnetfx20sp1_size=23,6 MB
11 |
12 |
13 | [Code]
14 | const
15 | dotnetfx20sp1_url = 'http://download.microsoft.com/download/0/8/c/08c19fa4-4c4f-4ffb-9d6c-150906578c9e/NetFx20SP1_x86.exe';
16 | dotnetfx20sp1_url_x64 = 'http://download.microsoft.com/download/9/8/6/98610406-c2b7-45a4-bdc3-9db1b1c5f7e2/NetFx20SP1_x64.exe';
17 | dotnetfx20sp1_url_ia64 = 'http://download.microsoft.com/download/c/9/7/c97d534b-8a55-495d-ab06-ad56f4b7f155/NetFx20SP1_ia64.exe';
18 |
19 | procedure dotnetfx20sp1();
20 | begin
21 | if (netfxspversion(NetFx20, '') < 1) then
22 | AddProduct('dotnetfx20sp1' + GetArchitectureString() + '.exe',
23 | '/passive /norestart /lang:ENU',
24 | CustomMessage('dotnetfx20sp1_title'),
25 | CustomMessage('dotnetfx20sp1_size'),
26 | GetString(dotnetfx20sp1_url, dotnetfx20sp1_url_x64, dotnetfx20sp1_url_ia64),
27 | false, false);
28 | end;
29 |
--------------------------------------------------------------------------------
/installer/scripts/products/dotnetfx20sp2.iss:
--------------------------------------------------------------------------------
1 | //http://www.microsoft.com/downloads/details.aspx?familyid=5B2C0358-915B-4EB5-9B1D-10E506DA9D0F
2 |
3 | [CustomMessages]
4 | dotnetfx20sp2_title=.NET Framework 2.0 Service Pack 2
5 |
6 | en.dotnetfx20sp2_size=24 MB - 52 MB
7 | de.dotnetfx20sp2_size=24 MB - 52 MB
8 | es.dotnetfx20sp2_size=24 MB - 52 MB
9 |
10 |
11 | [Code]
12 | const
13 | dotnetfx20sp2_url = 'http://download.microsoft.com/download/c/6/e/c6e88215-0178-4c6c-b5f3-158ff77b1f38/NetFx20SP2_x86.exe';
14 | dotnetfx20sp2_url_x64 = 'http://download.microsoft.com/download/c/6/e/c6e88215-0178-4c6c-b5f3-158ff77b1f38/NetFx20SP2_x64.exe';
15 | dotnetfx20sp2_url_ia64 = 'http://download.microsoft.com/download/c/6/e/c6e88215-0178-4c6c-b5f3-158ff77b1f38/NetFx20SP2_ia64.exe';
16 |
17 | procedure dotnetfx20sp2();
18 | begin
19 | if (netfxspversion(NetFx20, '') < 2) then
20 | AddProduct('dotnetfx20sp2' + GetArchitectureString() + '.exe',
21 | '/passive /norestart /lang:ENU',
22 | CustomMessage('dotnetfx20sp2_title'),
23 | CustomMessage('dotnetfx20sp2_size'),
24 | GetString(dotnetfx20sp2_url, dotnetfx20sp2_url_x64, dotnetfx20sp2_url_ia64),
25 | false, false);
26 | end;
27 |
--------------------------------------------------------------------------------
/installer/scripts/products/dotnetfx35.iss:
--------------------------------------------------------------------------------
1 | // requires Windows Server 2003 Service Pack 1, Windows Server 2008, Windows Vista, Windows XP Service Pack 2
2 | // requires Windows Installer 3.1
3 | // WARNING: express setup (downloads and installs the components depending on your OS) if you want to deploy it on cd or network download the full bootsrapper on website below
4 | // http://www.microsoft.com/downloads/details.aspx?FamilyId=333325FD-AE52-4E35-B531-508D977D32A6
5 |
6 | [CustomMessages]
7 | dotnetfx35_title=.NET Framework 3.5
8 |
9 | dotnetfx35_size=3 MB - 197 MB
10 | fr.dotnetfx35_size=3 Mo - 197 Mo
11 | es.dotnetfx35_size=3 MB - 197 MB
12 |
13 | [Code]
14 | const
15 | dotnetfx35_url = 'http://download.microsoft.com/download/7/0/3/703455ee-a747-4cc8-bd3e-98a615c3aedb/dotNetFx35setup.exe';
16 |
17 | procedure dotnetfx35();
18 | begin
19 | if (netfxinstalled(NetFx35, '') = false) then
20 | AddProduct('dotnetfx35.exe',
21 | '/lang:enu /passive /norestart',
22 | CustomMessage('dotnetfx35_title'),
23 | CustomMessage('dotnetfx35_size'),
24 | dotnetfx35_url,
25 | false, false);
26 | end;
27 |
--------------------------------------------------------------------------------
/installer/scripts/products/dotnetfx35sp1.iss:
--------------------------------------------------------------------------------
1 | // requires Windows Server 2003 Service Pack 1, Windows Server 2008, Windows Vista, Windows XP Service Pack 2
2 | // requires Windows Installer 3.1
3 | // WARNING: express setup (downloads and installs the components depending on your OS) if you want to deploy it on cd or network download the full bootsrapper on website below
4 | // http://www.microsoft.com/downloads/details.aspx?FamilyID=ab99342f-5d1a-413d-8319-81da479ab0d7
5 |
6 | [CustomMessages]
7 | dotnetfx35sp1_title=.NET Framework 3.5 Service Pack 1
8 |
9 | dotnetfx35sp1_size=3 MB - 232 MB
10 | fr.dotnetfx35sp1_size=3 Mo - 232 Mo
11 | es.dotnetfx35sp1_size=3 MB - 232 MB
12 |
13 |
14 | [Code]
15 | const
16 | dotnetfx35sp1_url = 'http://download.microsoft.com/download/0/6/1/061f001c-8752-4600-a198-53214c69b51f/dotnetfx35setup.exe';
17 |
18 | procedure dotnetfx35sp1();
19 | begin
20 | if (netfxspversion(NetFx35, '') < 1) then
21 | AddProduct('dotnetfx35sp1.exe',
22 | '/lang:enu /passive /norestart',
23 | CustomMessage('dotnetfx35sp1_title'),
24 | CustomMessage('dotnetfx35sp1_size'),
25 | dotnetfx35sp1_url,
26 | false, false);
27 | end;
28 |
--------------------------------------------------------------------------------
/installer/scripts/products/dotnetfx35sp1lp.iss:
--------------------------------------------------------------------------------
1 |
2 |
3 | [Code]
4 | procedure dotnetfx35sp1lp();
5 | begin
6 | if (ActiveLanguage() <> 'en') then begin
7 | if (netfxspversion(NetFx35, CustomMessage('dotnetfx35sp1lp_lcid')) < 1) then
8 | AddProduct('dotnetfx35sp1_' + ActiveLanguage() + '.exe',
9 | '/lang:enu /passive /norestart',
10 | CustomMessage('dotnetfx35sp1lp_title'),
11 | CustomMessage('dotnetfx35sp1lp_size'),
12 | CustomMessage('dotnetfx35sp1lp_url'),
13 | false, false);
14 | end;
15 | end;
--------------------------------------------------------------------------------
/installer/scripts/products/dotnetfx45.iss:
--------------------------------------------------------------------------------
1 | // requires Windows 7 Service Pack 1, Windows 8, Windows 8.1, Windows Server 2008 R2 SP1, Windows Server 2008 Service Pack 2, Windows Server 2012, Windows Server 2012 R2, Windows Vista Service Pack 2
2 | // WARNING: express setup (downloads and installs the components depending on your OS) if you want to deploy it on cd or network download the full bootsrapper on website below
3 | // http://www.microsoft.com/en-us/download/details.aspx?id=42642
4 |
5 | [CustomMessages]
6 | dotnetfx45_title=.NET Framework 4.5.2
7 |
8 | dotnetfx45_size=1 MB - 68 MB
9 |
10 | ;http://www.microsoft.com/globaldev/reference/lcid-all.mspx
11 | en.dotnetfx45_lcid=1033
12 | de.dotnetfx45_lcid=1031
13 | es.dotnetfx45_lcid=3082
14 |
15 |
16 | [Code]
17 | const
18 | dotnetfx45_url = 'http://download.microsoft.com/download/B/4/1/B4119C11-0423-477B-80EE-7A474314B347/NDP452-KB2901954-Web.exe';
19 |
20 | procedure dotnetfx45(MinVersion: integer);
21 | begin
22 | if (not netfxinstalled(NetFx45, '') or (netfxspversion(NetFx45, '') < MinVersion)) then
23 | AddProduct('dotnetfx45.exe',
24 | CustomMessage('dotnetfx45_lcid') + ' /q /passive /norestart',
25 | CustomMessage('dotnetfx45_title'),
26 | CustomMessage('dotnetfx45_size'),
27 | dotnetfx45_url,
28 | false, false);
29 | end;
30 |
--------------------------------------------------------------------------------
/installer/scripts/products/fileversion.iss:
--------------------------------------------------------------------------------
1 | [Code]
2 | function GetFullVersion(VersionMS, VersionLS: cardinal): string;
3 | var
4 | version: string;
5 | begin
6 | version := IntToStr(word(VersionMS shr 16));
7 | version := version + '.' + IntToStr(word(VersionMS and not $ffff0000));
8 |
9 | version := version + '.' + IntToStr(word(VersionLS shr 16));
10 | version := version + '.' + IntToStr(word(VersionLS and not $ffff0000));
11 |
12 | Result := version;
13 | end;
14 |
15 | function fileversion(file: string): string;
16 | var
17 | versionMS, versionLS: cardinal;
18 | begin
19 | if GetVersionNumbers(file, versionMS, versionLS) then
20 | Result := GetFullVersion(versionMS, versionLS)
21 | else
22 | Result := '0';
23 | end;
24 |
--------------------------------------------------------------------------------
/installer/scripts/products/ie6.iss:
--------------------------------------------------------------------------------
1 | // requires Windows 2000; Windows 98; Windows ME; Windows NT; Windows XP Service Pack 1
2 | // WARNING: express setup (downloads and installs the components depending on your OS)
3 | // http://www.microsoft.com/downloads/details.aspx?familyid=1E1550CB-5E5D-48F5-B02B-20B602228DE6
4 |
5 | [CustomMessages]
6 | ie6_title=Internet Explorer 6
7 |
8 | en.ie6_size=1 MB - 77.5 MB
9 | de.ie6_size=1 MB - 77,5 MB
10 | es.ie6_size=1 MB - 77,5 MB
11 |
12 |
13 | [Code]
14 | const
15 | ie6_url = 'http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP/EN-US/ie6setup.exe';
16 |
17 | procedure ie6(MinVersion: string);
18 | var
19 | version: string;
20 | begin
21 | RegQueryStringValue(HKLM, 'Software\Microsoft\Internet Explorer', 'Version', version);
22 | if (compareversion(version, MinVersion) < 0) then
23 | AddProduct('ie6.exe',
24 | '/q:a /C:"setup /QNT"',
25 | CustomMessage('ie6_title'),
26 | CustomMessage('ie6_size'),
27 | ie6_url,
28 | false, false);
29 | end;
30 |
--------------------------------------------------------------------------------
/installer/scripts/products/iis.iss:
--------------------------------------------------------------------------------
1 | [CustomMessages]
2 | iis_title=Internet Information Services (IIS)
3 |
4 |
5 | [Code]
6 | function iis(): boolean;
7 | begin
8 | if (not RegKeyExists(HKLM, 'SYSTEM\CurrentControlSet\Services\W3SVC\Security')) then
9 | MsgBox(FmtMessage(CustomMessage('depinstall_missing'), [CustomMessage('iis_title')]), mbError, MB_OK)
10 | else
11 | Result := true;
12 | end;
--------------------------------------------------------------------------------
/installer/scripts/products/jet4sp8.iss:
--------------------------------------------------------------------------------
1 | // http://support.microsoft.com/kb/239114
2 |
3 | [CustomMessages]
4 | jet4sp8_title=Jet 4
5 |
6 | en.jet4sp8_size=3.7 MB
7 | de.jet4sp8_size=3,7 MB
8 | es.jet4sp8_size=3,7 MB
9 |
10 |
11 | [Code]
12 | const
13 | jet4sp8_url = 'http://download.microsoft.com/download/4/3/9/4393c9ac-e69e-458d-9f6d-2fe191c51469/Jet40SP8_9xNT.exe';
14 |
15 | procedure jet4sp8(MinVersion: string);
16 | begin
17 | //check for Jet4 Service Pack 8 installation
18 | if (compareversion(fileversion(ExpandConstant('{sys}{\}msjet40.dll')), MinVersion) < 0) then
19 | AddProduct('jet4sp8.exe',
20 | '/q:a /c:"install /qb /l"',
21 | CustomMessage('jet4sp8_title'),
22 | CustomMessage('jet4sp8_size'),
23 | jet4sp8_url,
24 | false, false);
25 | end;
26 |
--------------------------------------------------------------------------------
/installer/scripts/products/kb835732.iss:
--------------------------------------------------------------------------------
1 | // required by .NET Framework 2.0 Service Pack 1 on Windows 2000 Service Pack 2-4
2 | // http://www.microsoft.com/technet/security/bulletin/ms04-011.mspx
3 | // http://www.microsoft.com/downloads/details.aspx?FamilyId=0692C27E-F63A-414C-B3EB-D2342FBB6C00
4 |
5 | [CustomMessages]
6 | en.kb835732_title=Windows 2000 Security Update (KB835732)
7 | de.kb835732_title=Windows 2000 Sicherheitsupdate (KB835732)
8 | es.kb835732_title=Actualización de seguridad para Windows 2000 (KB835732)
9 |
10 | en.kb835732_size=6.8 MB
11 | de.kb835732_size=6,8 MB
12 | es.kb835732_size=6,8 MB
13 |
14 |
15 | [Code]
16 | const
17 | kb835732_url = 'http://download.microsoft.com/download/f/a/a/faa796aa-399d-437a-9284-c3536e9f2e6e/Windows2000-KB835732-x86-ENU.EXE';
18 |
19 | procedure kb835732();
20 | begin
21 | if (exactwinversion(5, 0) and (minwinspversion(5, 0, 2) and maxwinspversion(5, 0, 4))) then begin
22 | if (not RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Updates\Windows 2000\SP5\KB835732\Filelist')) then
23 | AddProduct('kb835732.exe',
24 | '/passive /norestart',
25 | CustomMessage('kb835732_title'),
26 | CustomMessage('kb835732_size'),
27 | kb835732_url,
28 | false, false);
29 | end;
30 | end;
31 |
--------------------------------------------------------------------------------
/installer/scripts/products/mdac28.iss:
--------------------------------------------------------------------------------
1 | [CustomMessages]
2 | mdac28_title=Microsoft Data Access Components 2.8
3 |
4 | en.mdac28_size=5.4 MB
5 | de.mdac28_size=5,4 MB
6 | es.mdac28_size=5,4 MB
7 |
8 |
9 | [Code]
10 | const
11 | mdac28_url = 'http://download.microsoft.com/download/c/d/f/cdfd58f1-3973-4c51-8851-49ae3777586f/MDAC_TYP.EXE';
12 |
13 | procedure mdac28(MinVersion: string);
14 | var
15 | version: string;
16 | begin
17 | //check for MDAC installation
18 | RegQueryStringValue(HKLM, 'Software\Microsoft\DataAccess', 'FullInstallVer', version);
19 | if (compareversion(version, MinVersion) < 0) then
20 | AddProduct('mdac28.exe',
21 | '/q:a /c:"install /qb /l"',
22 | CustomMessage('mdac28_title'),
23 | CustomMessage('mdac28_size'),
24 | mdac28_url,
25 | false, false);
26 | end;
27 |
--------------------------------------------------------------------------------
/installer/scripts/products/msi20.iss:
--------------------------------------------------------------------------------
1 | [CustomMessages]
2 | msi20_title=Windows Installer 2.0
3 |
4 | en.msi20_size=1.7 MB
5 | de.msi20_size=1,7 MB
6 | es.msi20_size=1,7 MB
7 |
8 |
9 | [Code]
10 | const
11 | msi20_url = 'http://download.microsoft.com/download/WindowsInstaller/Install/2.0/W9XMe/EN-US/InstMsiA.exe';
12 |
13 | procedure msi20(MinVersion: string);
14 | begin
15 | // Check for required Windows Installer 2.0 on Windows 98 and ME
16 | if (IsX86() and maxwinversion(4, 9) and (compareversion(fileversion(ExpandConstant('{sys}{\}msi.dll')), MinVersion) < 0)) then
17 | AddProduct('msi20.exe',
18 | '/q:a /c:"msiinst /delayrebootq"',
19 | CustomMessage('msi20_title'),
20 | CustomMessage('msi20_size'),
21 | msi20_url,
22 | false, false);
23 | end;
24 |
--------------------------------------------------------------------------------
/installer/scripts/products/msi31.iss:
--------------------------------------------------------------------------------
1 | [CustomMessages]
2 | msi31_title=Windows Installer 3.1
3 |
4 | en.msi31_size=2.5 MB
5 | de.msi31_size=2,5 MB
6 | es.msi31_size=2,5 MB
7 |
8 |
9 | [Code]
10 | const
11 | msi31_url = 'http://download.microsoft.com/download/1/4/7/147ded26-931c-4daf-9095-ec7baf996f46/WindowsInstaller-KB893803-v2-x86.exe';
12 |
13 | procedure msi31(MinVersion: string);
14 | begin
15 | // Check for required Windows Installer 3.0 on Windows 2000 or higher
16 | if (IsX86() and minwinversion(5, 0) and (compareversion(fileversion(ExpandConstant('{sys}{\}msi.dll')), MinVersion) < 0)) then
17 | AddProduct('msi31.exe',
18 | '/passive /norestart',
19 | CustomMessage('msi31_title'),
20 | CustomMessage('msi31_size'),
21 | msi31_url,
22 | false, false);
23 | end;
24 |
--------------------------------------------------------------------------------
/installer/scripts/products/msiproduct.iss:
--------------------------------------------------------------------------------
1 | [Code]
2 | #IFDEF UNICODE
3 | #DEFINE AW "W"
4 | #ELSE
5 | #DEFINE AW "A"
6 | #ENDIF
7 |
8 | type
9 | INSTALLSTATE = Longint;
10 | const
11 | INSTALLSTATE_INVALIDARG = -2; // An invalid parameter was passed to the function.
12 | INSTALLSTATE_UNKNOWN = -1; // The product is neither advertised or installed.
13 | INSTALLSTATE_ADVERTISED = 1; // The product is advertised but not installed.
14 | INSTALLSTATE_ABSENT = 2; // The product is installed for a different user.
15 | INSTALLSTATE_DEFAULT = 5; // The product is installed for the current user.
16 |
17 | function MsiQueryProductState(szProduct: string): INSTALLSTATE;
18 | external 'MsiQueryProductState{#AW}@msi.dll stdcall';
19 |
20 | function msiproduct(const ProductID: string): boolean;
21 | begin
22 | Result := MsiQueryProductState(ProductID) = INSTALLSTATE_DEFAULT;
23 | end;
24 |
--------------------------------------------------------------------------------
/installer/scripts/products/sqlcompact35sp2.iss:
--------------------------------------------------------------------------------
1 | [CustomMessages]
2 | sqlcompact35sp2_title=SQL Server Compact 3.5 Service Pack 2
3 |
4 | en.sqlcompact35sp2_size=5.3 MB
5 | de.sqlcompact35sp2_size=5,3 MB
6 | es.sqlcompact35sp2_size=5,3 MB
7 |
8 |
9 | [Code]
10 | const
11 | sqlcompact35sp2_url = 'http://download.microsoft.com/download/E/C/1/EC1B2340-67A0-4B87-85F0-74D987A27160/SSCERuntime-ENU.exe';
12 |
13 | procedure sqlcompact35sp2();
14 | begin
15 | if (isX86() and not RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Microsoft SQL Server Compact Edition\v3.5')) then
16 | AddProduct('sqlcompact35sp2.msi',
17 | '/qb',
18 | CustomMessage('sqlcompact35sp2_title'),
19 | CustomMessage('sqlcompact35sp2_size'),
20 | sqlcompact35sp2_url,
21 | false, false);
22 | end;
23 |
--------------------------------------------------------------------------------
/installer/scripts/products/stringversion.iss:
--------------------------------------------------------------------------------
1 | function stringtoversion(var temp: String): Integer;
2 | var
3 | part: String;
4 | pos1: Integer;
5 |
6 | begin
7 | if (Length(temp) = 0) then begin
8 | Result := -1;
9 | Exit;
10 | end;
11 |
12 | pos1 := Pos('.', temp);
13 | if (pos1 = 0) then begin
14 | Result := StrToInt(temp);
15 | temp := '';
16 | end else begin
17 | part := Copy(temp, 1, pos1 - 1);
18 | temp := Copy(temp, pos1 + 1, Length(temp));
19 | Result := StrToInt(part);
20 | end;
21 | end;
22 |
23 | function compareinnerversion(var x, y: String): Integer;
24 | var
25 | num1, num2: Integer;
26 |
27 | begin
28 | num1 := stringtoversion(x);
29 | num2 := stringtoversion(y);
30 | if (num1 = -1) or (num2 = -1) then begin
31 | Result := 0;
32 | Exit;
33 | end;
34 |
35 | if (num1 < num2) then begin
36 | Result := -1;
37 | end else if (num1 > num2) then begin
38 | Result := 1;
39 | end else begin
40 | Result := compareinnerversion(x, y);
41 | end;
42 | end;
43 |
44 | function compareversion(versionA, versionB: String): Integer;
45 | var
46 | temp1, temp2: String;
47 |
48 | begin
49 | temp1 := versionA;
50 | temp2 := versionB;
51 | Result := compareinnerversion(temp1, temp2);
52 | end;
53 |
--------------------------------------------------------------------------------
/installer/smallImage.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/installer/smallImage.bmp
--------------------------------------------------------------------------------
/source/BCU-console/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2017 Marcin Szeniak (https://github.com/Klocman/)
3 | Apache License Version 2.0
4 | */
5 |
6 | using System.Reflection;
7 | using System.Runtime.InteropServices;
8 |
9 | // General Information about an assembly is controlled through the following
10 | // set of attributes. Change these attribute values to modify the information
11 | // associated with an assembly.
12 | [assembly: AssemblyTitle("BCU-console")]
13 | [assembly: AssemblyDescription("Command line utility that offers some of BCU's functionality for scripting.")]
14 | [assembly: AssemblyProduct("BCU-console")]
15 |
16 | // Setting ComVisible to false makes the types in this assembly not visible
17 | // to COM components. If you need to access a type in this assembly from
18 | // COM, set the ComVisible attribute to true on that type.
19 | [assembly: ComVisible(false)]
20 |
21 | // The following GUID is for the ID of the typelib if this project is exposed to COM
22 | [assembly: Guid("2e8ceca3-4872-439e-9a47-5304fb4bf705")]
23 |
--------------------------------------------------------------------------------
/source/BCU-console/Properties/PublishProfiles/FolderProfile.pubxml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 | Release
8 | Any CPU
9 | FileSystem
10 | net6.0-windows10.0.18362.0
11 | win-x64
12 | true
13 | False
14 | True
15 | False
16 |
17 |
--------------------------------------------------------------------------------
/source/BCU-launcher/resource.h:
--------------------------------------------------------------------------------
1 | //{{NO_DEPENDENCIES}}
2 | // Microsoft Visual C++ generated include file.
3 | // Used by BCU-launcher.rc
4 | //
5 | #define IDI_ICON1 101
6 |
7 | // Next default values for new objects
8 | //
9 | #ifdef APSTUDIO_INVOKED
10 | #ifndef APSTUDIO_READONLY_SYMBOLS
11 | #define _APS_NEXT_RESOURCE_VALUE 102
12 | #define _APS_NEXT_COMMAND_VALUE 40001
13 | #define _APS_NEXT_CONTROL_VALUE 1001
14 | #define _APS_NEXT_SYMED_VALUE 101
15 | #endif
16 | #endif
17 |
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/BulkCrapUninstaller.csproj.DotSettings:
--------------------------------------------------------------------------------
1 |
2 | No
3 | True
4 | True
5 | True
6 | True
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Controls/Settings/CacheSettings.cs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2017 Marcin Szeniak (https://github.com/Klocman/)
3 | Apache License Version 2.0
4 | */
5 |
6 | using System.Windows.Forms;
7 | using Klocman.Binding.Settings;
8 |
9 | namespace BulkCrapUninstaller.Controls.Settings
10 | {
11 | public partial class CacheSettings : UserControl
12 | {
13 | private readonly SettingBinder _settings = Properties.Settings.Default.SettingBinder;
14 |
15 | public CacheSettings()
16 | {
17 | InitializeComponent();
18 | }
19 |
20 | protected override void OnLoad(System.EventArgs e)
21 | {
22 | base.OnLoad(e);
23 |
24 | if (DesignMode) return;
25 |
26 | _settings.BindControl(checkBoxCerts, x => x.CacheCertificates, this);
27 | _settings.BindControl(checkBoxInfo, x => x.CacheAppInfo, this);
28 |
29 | _settings.SendUpdates(this);
30 | Disposed += (x, y) => _settings.RemoveHandlers(this);
31 |
32 | button1.Click += (x, y) =>
33 | {
34 | Program.ClearCaches(true);
35 | button1.Enabled = false;
36 | };
37 | }
38 | }
39 | }
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Controls/TabControlWithoutHeader.cs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2017 Marcin Szeniak (https://github.com/Klocman/)
3 | Apache License Version 2.0
4 | */
5 |
6 | using System;
7 | using System.Windows.Forms;
8 |
9 | namespace BulkCrapUninstaller.Controls
10 | {
11 | public class TabControlWithoutHeader : TabControl
12 | {
13 | public TabControlWithoutHeader()
14 | {
15 | if (!DesignMode) Multiline = true;
16 | }
17 |
18 | protected override void WndProc(ref Message m)
19 | {
20 | if (m.Msg == 0x1328 && !DesignMode)
21 | m.Result = new IntPtr(1);
22 | else
23 | base.WndProc(ref m);
24 | }
25 | }
26 | }
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Forms/UninstallerListDoubleClickAction.cs:
--------------------------------------------------------------------------------
1 | using BulkCrapUninstaller.Properties;
2 | using Klocman.Localising;
3 |
4 | namespace BulkCrapUninstaller.Forms;
5 |
6 | public enum UninstallerListDoubleClickAction
7 | {
8 | [LocalisedName(typeof (Localisable), nameof(Localisable.UninstallerListDoubleClickAction_DoNothing))] DoNothing = 0,
9 | [LocalisedName(typeof (Localisable),nameof(Localisable.UninstallerListDoubleClickAction_Properties))] OpenProperties,
10 | [LocalisedName(typeof (Localisable), nameof(Localisable.UninstallerListDoubleClickAction_Uninstall))] Uninstall
11 | }
12 |
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Functions/Ratings/UninstallerRating.cs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2017 Marcin Szeniak (https://github.com/Klocman/)
3 | Apache License Version 2.0
4 | */
5 |
6 | namespace BulkCrapUninstaller.Functions.Ratings
7 | {
8 | public enum UninstallerRating
9 | {
10 | Unknown = 127,
11 | Neutral = 0,
12 | Bad = -10,
13 | Good = 10
14 | }
15 | }
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Functions/Tracking/DatabaseStatSender.cs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2017 Marcin Szeniak (https://github.com/Klocman/)
3 | Apache License Version 2.0
4 | */
5 |
6 | using System;
7 | using Klocman.Tools;
8 |
9 | namespace BulkCrapUninstaller.Functions.Tracking
10 | {
11 | public class DatabaseStatSender
12 | {
13 | private readonly ulong userId;
14 |
15 | public DatabaseStatSender(ulong userId)
16 | {
17 | this.userId = userId;
18 | }
19 |
20 | public bool SendData(string value)
21 | {
22 | try
23 | {
24 | var compressed = CompressionTools.BrotliCompress(value);
25 |
26 | using var s = Program.GetHttpClient();
27 | var response = s.PostAsync(new Uri($"SendStats?userId={userId}&data={Convert.ToBase64String(compressed)}", UriKind.Relative), null!).Result;
28 | response.EnsureSuccessStatusCode();
29 | }
30 | catch (Exception e)
31 | {
32 | Console.WriteLine("Failed to send stats: " + e);
33 | return false;
34 | }
35 | return true;
36 | }
37 | }
38 | }
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Properties/PublishProfiles/FolderProfile.pubxml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 | Release
8 | Any CPU
9 | FileSystem
10 | net6.0-windows10.0.18362.0
11 | win-x64
12 | true
13 | False
14 | True
15 | False
16 |
17 |
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Properties/Settings.cs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2017 Marcin Szeniak (https://github.com/Klocman/)
3 | Apache License Version 2.0
4 | */
5 |
6 | using Klocman.Binding.Settings;
7 |
8 | namespace BulkCrapUninstaller.Properties
9 | {
10 | // This class allows you to handle specific events on the settings class:
11 | // The SettingChanging event is raised before a setting's value is changed.
12 | // The PropertyChanged event is raised after a setting's value is changed.
13 | // The SettingsLoaded event is raised after the setting values are loaded.
14 | // The SettingsSaving event is raised before the setting values are saved.
15 | internal sealed partial class Settings
16 | {
17 | private SettingBinder _settingManager;
18 |
19 | public SettingBinder SettingBinder
20 | => _settingManager ?? (_settingManager = new SettingBinder(this));
21 | }
22 | }
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/3.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/MicrosoftProgram_Install_and_Uninstall.meta.diagcab:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/MicrosoftProgram_Install_and_Uninstall.meta.diagcab
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/add.multiple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/add.multiple.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/add.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/bigImage.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/bigImage.bmp
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/centerline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/centerline.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/check.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/check.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/checkmark.pencil.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/checkmark.pencil.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/checkmark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/checkmark.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/checkmark.uncrossed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/checkmark.uncrossed.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/clean.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/clean.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/control.fastforward.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/control.fastforward.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/control.fastforward.variant.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/control.fastforward.variant.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/delete.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/diagram.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/diagram.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/donate_button.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/donate_button.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/edit.box.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/edit.box.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/filter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/filter.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/folder.open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/folder.open.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/fullscreen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/fullscreen.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/information.circle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/information.circle.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/information.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/information.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/layer.add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/layer.add.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/layer.delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/layer.delete.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/layer.delete1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/layer.delete1.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/layer.down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/layer.down.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/layer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/layer.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/list.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/list.reorder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/list.reorder.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/logo.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/logo.ico
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/magnify.browse.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/magnify.browse.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/magnify.forward.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/magnify.forward.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/magnify.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/magnify.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/message.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/message.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/moon.full.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/moon.full.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/os.windows.8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/os.windows.8.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/page.copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/page.copy.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/rating1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/rating1.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/rating3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/rating3.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/rating4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/rating4.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/rating5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/rating5.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/refresh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/refresh.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/save.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/save.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/settings.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/star.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/star.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/stop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/stop.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/table.add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/table.add.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/target.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/target.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/timer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/timer.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/warning.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/warning.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/Resources/weather.sun.set.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/Resources/weather.sun.set.png
--------------------------------------------------------------------------------
/source/BulkCrapUninstaller/logo.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/BulkCrapUninstaller/logo.ico
--------------------------------------------------------------------------------
/source/BulkCrapUninstallerTests/SelfUpdaterTests.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using Klocman.UpdateSystem;
7 | using Microsoft.VisualStudio.TestTools.UnitTesting;
8 |
9 | namespace BulkCrapUninstallerTests
10 | {
11 | [TestClass]
12 | public class SelfUpdaterTests
13 | {
14 | [TestMethod]
15 | public void VersionTest()
16 | {
17 | var ver = SelfUpdater.CheckLatestVersion();
18 | Assert.AreNotEqual(ver, default);
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/source/HelperTools/HelperTools.projitems:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
5 | true
6 | 73a9796d-334c-400c-87ac-1dfdd613266e
7 |
8 |
9 | Klocman
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/source/HelperTools/HelperTools.shproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 73a9796d-334c-400c-87ac-1dfdd613266e
5 | 14.0
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/source/HelperTools/ReturnValue.cs:
--------------------------------------------------------------------------------
1 | namespace Klocman
2 | {
3 | public enum ReturnValue
4 | {
5 | OkCode = 0,
6 | FunctionFailedCode = 1627,
7 | InvalidArgumentCode = 10022,
8 | CancelledByUserCode = 1223,
9 | UnexpectedNetworkErrorCode = 59
10 | }
11 | }
--------------------------------------------------------------------------------
/source/KlocTools/Controls/FacebookButton.cs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2017 Marcin Szeniak (https://github.com/Klocman/)
3 | Apache License Version 2.0
4 | */
5 |
6 | using System;
7 | using System.Drawing;
8 | using System.Windows.Forms;
9 | using Klocman.Forms.Tools;
10 |
11 | namespace Klocman.Controls
12 | {
13 | public sealed class FacebookButton : Button
14 | {
15 | public FacebookButton()
16 | {
17 | Text = string.Empty;
18 | BackgroundImage = Properties.Resources.facebookButton;
19 | BackgroundImageLayout = ImageLayout.Stretch;
20 |
21 | Size = new Size(23, 23);
22 | base.FlatStyle = FlatStyle.Standard;
23 |
24 | TabStop = false;
25 |
26 | Click += FacebookButton_Click;
27 | }
28 |
29 | public new FlatStyle FlatStyle => base.FlatStyle;
30 | public string TargetSite { get; set; }
31 |
32 | private void FacebookButton_Click(object sender, EventArgs e)
33 | {
34 | if (!string.IsNullOrEmpty(TargetSite))
35 | {
36 | PremadeDialogs.StartProcessSafely(@"https://www.facebook.com/sharer/sharer.php?u=" + TargetSite);
37 | }
38 | else
39 | {
40 | throw new InvalidOperationException("TargetSite is null or empty");
41 | }
42 | }
43 | }
44 | }
--------------------------------------------------------------------------------
/source/KlocTools/Controls/FacebookStatusButton.cs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2017 Marcin Szeniak (https://github.com/Klocman/)
3 | Apache License Version 2.0
4 | */
5 |
6 | using System;
7 | using System.Windows.Forms;
8 | using Klocman.Forms.Tools;
9 |
10 | namespace Klocman.Controls
11 | {
12 | public sealed class FacebookStatusButton : ToolStripStatusLabel
13 | {
14 | public FacebookStatusButton()
15 | {
16 | Image = Properties.Resources.facebookButton;
17 | DisplayStyle = ToolStripItemDisplayStyle.Image;
18 | Click += FacebookStatusButton_Click;
19 | IsLink = true;
20 |
21 | Padding = new Padding(2, 0, 2, 0);
22 | }
23 |
24 | public string TargetSite { get; set; }
25 |
26 | private void FacebookStatusButton_Click(object sender, EventArgs e)
27 | {
28 | if (!string.IsNullOrEmpty(TargetSite))
29 | {
30 | PremadeDialogs.StartProcessSafely(@"https://www.facebook.com/sharer/sharer.php?u=" + TargetSite);
31 | }
32 | else
33 | {
34 | throw new InvalidOperationException("TargetSite is null or empty");
35 | }
36 | }
37 | }
38 | }
--------------------------------------------------------------------------------
/source/KlocTools/Controls/LineSeparator.Designer.cs:
--------------------------------------------------------------------------------
1 | using System.ComponentModel;
2 |
3 | namespace Klocman.Controls
4 | {
5 | sealed partial class LineSeparator
6 | {
7 | ///
8 | /// Required designer variable.
9 | ///
10 | private IContainer components = null;
11 |
12 | ///
13 | /// Clean up any resources being used.
14 | ///
15 | /// true if managed resources should be disposed; otherwise, false.
16 | protected override void Dispose(bool disposing)
17 | {
18 | if (disposing && (components != null))
19 | {
20 | components.Dispose();
21 | }
22 | base.Dispose(disposing);
23 | }
24 |
25 | #region Component Designer generated code
26 |
27 | ///
28 | /// Required method for Designer support - do not modify
29 | /// the contents of this method with the code editor.
30 | ///
31 | private void InitializeComponent()
32 | {
33 | components = new System.ComponentModel.Container();
34 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
35 | }
36 |
37 | #endregion
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/source/KlocTools/Controls/LineSeparator.cs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2017 Marcin Szeniak (https://github.com/Klocman/)
3 | Apache License Version 2.0
4 | */
5 |
6 | using System.Drawing;
7 | using System.Windows.Forms;
8 |
9 | namespace Klocman.Controls
10 | {
11 | public sealed partial class LineSeparator : UserControl
12 | {
13 | #region Constructors
14 |
15 | public LineSeparator()
16 | {
17 | InitializeComponent();
18 |
19 | Paint += LineSeparator_Paint;
20 |
21 | MaximumSize = new Size(2000, 2);
22 |
23 | MinimumSize = new Size(0, 2);
24 |
25 | Width = 350;
26 | }
27 |
28 | #endregion Constructors
29 |
30 | #region Methods
31 |
32 | private void LineSeparator_Paint(object sender, PaintEventArgs e)
33 | {
34 | var g = e.Graphics;
35 |
36 | g.DrawLine(Pens.DarkGray, new Point(0, 0), new Point(Width, 0));
37 |
38 | g.DrawLine(Pens.White, new Point(0, 1), new Point(Width, 1));
39 | }
40 |
41 | #endregion Methods
42 | }
43 | }
--------------------------------------------------------------------------------
/source/KlocTools/Controls/PassThroughLabel.cs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2017 Marcin Szeniak (https://github.com/Klocman/)
3 | Apache License Version 2.0
4 | */
5 |
6 | using System;
7 | using System.Windows.Forms;
8 |
9 | namespace Klocman.Controls
10 | {
11 | ///
12 | /// Label that doesn't capture any mouse events
13 | ///
14 | public sealed class PassThroughLabel : Label
15 | {
16 | #region Methods
17 |
18 | //Pass through mouse events
19 | protected override void WndProc(ref Message m)
20 | {
21 | const int WM_NCHITTEST = 0x0084;
22 | const int HTTRANSPARENT = (-1);
23 |
24 | if (m.Msg == WM_NCHITTEST)
25 | {
26 | m.Result = (IntPtr) HTTRANSPARENT;
27 | }
28 | else
29 | {
30 | base.WndProc(ref m);
31 | }
32 | }
33 |
34 | #endregion Methods
35 | }
36 | }
--------------------------------------------------------------------------------
/source/KlocTools/Controls/ToolStripNumberControl.cs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2017 Marcin Szeniak (https://github.com/Klocman/)
3 | Apache License Version 2.0
4 | */
5 |
6 | using System.Windows.Forms;
7 | using System.Windows.Forms.Design;
8 |
9 | namespace Klocman.Controls
10 | {
11 | [ToolStripItemDesignerAvailability(ToolStripItemDesignerAvailability.ToolStrip)]
12 | public sealed class ToolStripNumberControl : ToolStripControlHost
13 | {
14 | #region Constructors
15 |
16 | public ToolStripNumberControl()
17 | : base(new NumericUpDown())
18 | {
19 | }
20 |
21 | #endregion Constructors
22 |
23 | #region Properties
24 |
25 | public NumericUpDown NumericUpDownControl
26 | {
27 | get { return Control as NumericUpDown; }
28 | }
29 |
30 | #endregion Properties
31 | }
32 | }
--------------------------------------------------------------------------------
/source/KlocTools/DisplayMode.cs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2017 Marcin Szeniak (https://github.com/Klocman/)
3 | Apache License Version 2.0
4 | */
5 |
6 | namespace Klocman
7 | {
8 | public enum DisplayMode
9 | {
10 | Closed,
11 | Simple,
12 | Advanced
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/source/KlocTools/Events/PropertyChangedEventArgs.cs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2017 Marcin Szeniak (https://github.com/Klocman/)
3 | Apache License Version 2.0
4 | */
5 |
6 | using System.ComponentModel;
7 |
8 | namespace Klocman.Events
9 | {
10 | ///
11 | /// Generic version of the System.ComponentModel.PropertyChangedEventArgs.
12 | /// It might not contain a valid propertyName
13 | ///
14 | public class PropertyChangedEventArgs : PropertyChangedEventArgs
15 | {
16 | public PropertyChangedEventArgs(T newValue) : this(newValue, string.Empty)
17 | {
18 | }
19 |
20 | public PropertyChangedEventArgs(T newValue, string propertyName) : base(propertyName)
21 | {
22 | NewValue = newValue;
23 | }
24 |
25 | public T NewValue { get; private set; }
26 | }
27 | }
--------------------------------------------------------------------------------
/source/KlocTools/Extensions/CheckBoxExtension.cs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2017 Marcin Szeniak (https://github.com/Klocman/)
3 | Apache License Version 2.0
4 | */
5 |
6 | using System.Reflection;
7 | using System.Windows.Forms;
8 |
9 | namespace Klocman.Extensions
10 | {
11 | public static class CheckBoxExtension
12 | {
13 | private static readonly FieldInfo CheckStateInfo = typeof (CheckBox).GetField("checkState",
14 | BindingFlags.NonPublic | BindingFlags.Instance);
15 |
16 | ///
17 | /// Set the CheckState value, optionally not raising the CheckStateChanged event.
18 | ///
19 | /// New state
20 | /// If true the CheckStateChanged event will not be raised. The control will still be invalidated.
21 | /// Checkbox to access
22 | public static void SetCheckState(this CheckBox chBox, CheckState check, bool raiseEvent)
23 | {
24 | if (raiseEvent)
25 | {
26 | chBox.CheckState = check;
27 | }
28 | else
29 | {
30 | CheckStateInfo.SetValue(chBox, check);
31 | chBox.Invalidate();
32 | }
33 | }
34 | }
35 | }
--------------------------------------------------------------------------------
/source/KlocTools/Extensions/EventExtensions.cs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2017 Marcin Szeniak (https://github.com/Klocman/)
3 | Apache License Version 2.0
4 | */
5 |
6 | using System;
7 | using System.ComponentModel;
8 | using System.Linq;
9 |
10 | namespace Klocman.Extensions
11 | {
12 | public static class EventExtensions
13 | {
14 | public static bool CancellableInvoke(this EventHandler handler, object sender, T eventArgs)
15 | where T : CancelEventArgs
16 | {
17 | var cancel = false;
18 |
19 | foreach (var tmp in handler.GetInvocationList().Cast>())
20 | {
21 | tmp(sender, eventArgs);
22 | if (eventArgs.Cancel)
23 | {
24 | cancel = true;
25 | break;
26 | }
27 | }
28 | return !cancel;
29 | }
30 | }
31 | }
--------------------------------------------------------------------------------
/source/KlocTools/Extensions/MiscExtensions.cs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2017 Marcin Szeniak (https://github.com/Klocman/)
3 | Apache License Version 2.0
4 | */
5 |
6 | using System;
7 |
8 | namespace Klocman.Extensions
9 | {
10 | public static class MiscExtensions
11 | {
12 | // Buggy with signed enums
13 | /*public static bool Contains(this Enum keys, Enum flag)
14 | {
15 | var keysVal = Convert.ToUInt64(keys);
16 | var flagVal = Convert.ToUInt64(flag);
17 |
18 | return (keysVal & flagVal) == flagVal;
19 | }*/
20 |
21 | ///
22 | /// Check if this struct is equal to the default value for this type.
23 | ///
24 | ///
25 | ///
26 | public static bool IsDefault(this T value)
27 | where T : struct
28 | {
29 | var isDefault = value.Equals(default(T));
30 |
31 | return isDefault;
32 | }
33 |
34 | public static bool IsEmpty(this Guid obj)
35 | {
36 | return Guid.Empty.Equals(obj);
37 | }
38 |
39 | public static bool IsZeroOrNull(this Version obj)
40 | {
41 | return obj == null || obj.Equals(new Version(0, 0, 0, 0))
42 | || obj.Equals(new Version(0, 0, 0)) || obj.Equals(new Version(0, 0));
43 | }
44 | }
45 | }
--------------------------------------------------------------------------------
/source/KlocTools/Extensions/StreamExtensions.cs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2017 Marcin Szeniak (https://github.com/Klocman/)
3 | Apache License Version 2.0
4 | */
5 |
6 | using System.IO;
7 |
8 | namespace Klocman.Extensions
9 | {
10 | public static class StreamExtensions
11 | {
12 | ///
13 | /// Alternative to Net4 CopyTo
14 | ///
15 | ///
16 | ///
17 | ///
18 | public static long CopyTo(this Stream source, Stream destination)
19 | {
20 | var buffer = new byte[2048];
21 | int bytesRead;
22 | long totalBytes = 0;
23 | while ((bytesRead = source.Read(buffer, 0, buffer.Length)) > 0)
24 | {
25 | destination.Write(buffer, 0, bytesRead);
26 | totalBytes += bytesRead;
27 | }
28 | return totalBytes;
29 | }
30 | }
31 | }
--------------------------------------------------------------------------------
/source/KlocTools/Forms/CmbCheckboxSettings.cs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2017 Marcin Szeniak (https://github.com/Klocman/)
3 | Apache License Version 2.0
4 | */
5 |
6 | namespace Klocman.Forms
7 | {
8 | public sealed class CmbCheckboxSettings
9 | {
10 | public CmbCheckboxSettings(string text)
11 | : this(text, false)
12 | {
13 | }
14 |
15 | public CmbCheckboxSettings(string text, bool initialState)
16 | {
17 | Text = text;
18 | InitialState = initialState;
19 | Result = null;
20 | }
21 |
22 | public bool DisableLeftButton { get; set; }
23 | public bool DisableMiddleButton { get; set; }
24 | public bool DisableRightButton { get; set; }
25 | public bool InitialState { get; }
26 |
27 | ///
28 | /// Resulting value of the checkbox. Null if not yet set.
29 | ///
30 | public bool? Result { get; internal set; }
31 |
32 | public string Text { get; }
33 | }
34 | }
--------------------------------------------------------------------------------
/source/KlocTools/Forms/CmbHyperlinkSettings.cs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2017 Marcin Szeniak (https://github.com/Klocman/)
3 | Apache License Version 2.0
4 | */
5 |
6 | using System;
7 |
8 | namespace Klocman.Forms
9 | {
10 | public sealed class CmbHyperlinkSettings
11 | {
12 | public CmbHyperlinkSettings(string text, Action clickAction)
13 | {
14 | Text = text;
15 | ClickAction = clickAction;
16 | }
17 |
18 | public Action ClickAction { get; private set; }
19 | public string Text { get; private set; }
20 | }
21 | }
--------------------------------------------------------------------------------
/source/KlocTools/Forms/Tools/ComboBoxWrapper.cs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2017 Marcin Szeniak (https://github.com/Klocman/)
3 | Apache License Version 2.0
4 | */
5 |
6 | using System;
7 |
8 | namespace Klocman.Forms.Tools
9 | {
10 | public class ComboBoxWrapper
11 | {
12 | public ComboBoxWrapper()
13 | {
14 | }
15 |
16 | public ComboBoxWrapper(T wrappedObject)
17 | {
18 | WrappedObject = wrappedObject;
19 | }
20 |
21 | public ComboBoxWrapper(T wrappedObject, Func toStringConverter) : this(wrappedObject)
22 | {
23 | ToStringConverter = toStringConverter;
24 | }
25 |
26 | public T WrappedObject { get; set; }
27 | public Func ToStringConverter { get; set; }
28 |
29 | public override string ToString()
30 | {
31 | return ToStringConverter == null ? WrappedObject.ToString() : ToStringConverter(WrappedObject);
32 | }
33 | }
34 | }
--------------------------------------------------------------------------------
/source/KlocTools/Forms/Tools/GlobalMouseMove.cs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2017 Marcin Szeniak (https://github.com/Klocman/)
3 | Apache License Version 2.0
4 | */
5 |
6 | using System;
7 | using System.Windows.Forms;
8 |
9 | namespace Klocman.Forms.Tools
10 | {
11 | public class GlobalMouseMove : IMessageFilter
12 | {
13 | private const int WM_MOUSEMOVE = 0x0200;
14 |
15 | public bool PreFilterMessage(ref Message m)
16 | {
17 | if (m.Msg == WM_MOUSEMOVE)
18 | {
19 | MouseMove?.Invoke(this, EventArgs.Empty);
20 | }
21 | // Always allow message to continue to the next filter control
22 | return false;
23 | }
24 |
25 | public event MouseMovedEvent MouseMove;
26 |
27 | public void RegisterHandler()
28 | {
29 | Application.AddMessageFilter(this);
30 | }
31 |
32 | public void UnregisterEvent()
33 | {
34 | Application.RemoveMessageFilter(this);
35 | }
36 | }
37 | }
--------------------------------------------------------------------------------
/source/KlocTools/Forms/Tools/MouseMovedEvent.cs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2017 Marcin Szeniak (https://github.com/Klocman/)
3 | Apache License Version 2.0
4 | */
5 |
6 | using System;
7 |
8 | namespace Klocman.Forms.Tools
9 | {
10 | public delegate void MouseMovedEvent(object source, EventArgs args);
11 | }
--------------------------------------------------------------------------------
/source/KlocTools/Forms/Tools/SingleColorTable.cs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2017 Marcin Szeniak (https://github.com/Klocman/)
3 | Apache License Version 2.0
4 | */
5 |
6 | using System.Drawing;
7 | using System.Windows.Forms;
8 |
9 | namespace Klocman.Forms.Tools
10 | {
11 | public class SingleColorTable : ProfessionalColorTable
12 | {
13 | public SingleColorTable(Color color)
14 | {
15 | SelectedColor = color;
16 | }
17 |
18 | public Color SelectedColor { get; set; }
19 | public override Color ToolStripGradientBegin => SelectedColor;
20 | public override Color ToolStripGradientMiddle => SelectedColor;
21 | public override Color ToolStripGradientEnd => SelectedColor;
22 | public override Color MenuStripGradientBegin => SelectedColor;
23 | public override Color MenuStripGradientEnd => SelectedColor;
24 | public override Color StatusStripGradientBegin => SelectedColor;
25 | public override Color StatusStripGradientEnd => SelectedColor;
26 | }
27 | }
--------------------------------------------------------------------------------
/source/KlocTools/Forms/Tools/StandardSystemColorTable.cs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2017 Marcin Szeniak (https://github.com/Klocman/)
3 | Apache License Version 2.0
4 | */
5 |
6 | using System.Drawing;
7 | using System.Windows.Forms;
8 |
9 | namespace Klocman.Forms.Tools
10 | {
11 | //Add this to the bottom of your form. (After your class ends)
12 | public class StandardSystemColorTable : ProfessionalColorTable
13 | {
14 | public override Color ToolStripGradientBegin => SystemColors.Control;
15 | public override Color ToolStripGradientMiddle => SystemColors.Control;
16 | public override Color ToolStripGradientEnd => SystemColors.Control;
17 | public override Color MenuStripGradientBegin => SystemColors.MenuBar;
18 | public override Color MenuStripGradientEnd => SystemColors.MenuBar;
19 | public override Color StatusStripGradientBegin => SystemColors.MenuBar;
20 | public override Color StatusStripGradientEnd => SystemColors.MenuBar;
21 | }
22 |
23 | //Add this to the bottom of your form. (After your class ends)
24 | }
--------------------------------------------------------------------------------
/source/KlocTools/IO/WindowsFeatureInfo.cs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2017 Marcin Szeniak (https://github.com/Klocman/)
3 | Apache License Version 2.0
4 | */
5 |
6 | using System.Collections.Generic;
7 |
8 | namespace Klocman.IO
9 | {
10 | public class WindowsFeatureInfo
11 | {
12 | public WindowsFeatureInfo()
13 | {
14 | CustomProperties = new List>();
15 | }
16 |
17 | public string FeatureName { get; set; }
18 | public string DisplayName { get; set; }
19 | public string Description { get; set; }
20 | public string RestartRequired { get; set; }
21 | public bool Enabled { get; set; }
22 | public IList> CustomProperties { get; private set; }
23 | }
24 | }
--------------------------------------------------------------------------------
/source/KlocTools/Licence.licenseheader:
--------------------------------------------------------------------------------
1 | extensions: designer.cs generated.cs
2 | extensions: .cs .cpp .h
3 | /*
4 | Copyright (c) 2017 Marcin Szeniak (https://github.com/Klocman/)
5 | Apache License Version 2.0
6 | */
7 |
8 | extensions: .aspx .ascx
9 | <%--
10 | Copyright (c) 2017 Marcin Szeniak (https://github.com/Klocman/)
11 | Apache License Version 2.0
12 | --%>
13 | extensions: .xml .config .xsd
14 |
--------------------------------------------------------------------------------
/source/KlocTools/Localising/LocalisedEnumWrapper.cs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2017 Marcin Szeniak (https://github.com/Klocman/)
3 | Apache License Version 2.0
4 | */
5 |
6 | using System;
7 |
8 | namespace Klocman.Localising
9 | {
10 | public class LocalisedEnumWrapper
11 | {
12 | public LocalisedEnumWrapper(Enum targetEnum)
13 | {
14 | TargetEnum = targetEnum ?? throw new ArgumentNullException(nameof(targetEnum));
15 | }
16 |
17 | public Enum TargetEnum { get; }
18 |
19 | public override string ToString()
20 | {
21 | return TargetEnum.GetLocalisedName();
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/source/KlocTools/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2017 Marcin Szeniak (https://github.com/Klocman/)
3 | Apache License Version 2.0
4 | */
5 |
6 | using System.Reflection;
7 | using System.Runtime.InteropServices;
8 |
9 | // General Information about an assembly is controlled through the following
10 | // set of attributes. Change these attribute values to modify the information
11 | // associated with an assembly.
12 |
13 | [assembly: AssemblyTitle("KlocTools")]
14 | [assembly: AssemblyDescription("")]
15 | [assembly: AssemblyProduct("KlocTools")]
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 |
21 | [assembly: ComVisible(true)]
22 |
23 | // The following GUID is for the ID of the typelib if this project is exposed to COM
24 |
25 | [assembly: Guid("b0ee9183-3895-4fa1-89a8-ef57571f7223")]
--------------------------------------------------------------------------------
/source/KlocTools/Properties/PublishProfiles/FolderProfile.pubxml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 | Release
8 | Any CPU
9 | FileSystem
10 | net6.0-windows10.0.18362.0
11 | win-x64
12 | true
13 | False
14 | True
15 | False
16 |
17 |
--------------------------------------------------------------------------------
/source/KlocTools/Resources/centerline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/KlocTools/Resources/centerline.png
--------------------------------------------------------------------------------
/source/KlocTools/Resources/facebookButton.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/KlocTools/Resources/facebookButton.png
--------------------------------------------------------------------------------
/source/KlocTools/Resources/twitterButton.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/KlocTools/Resources/twitterButton.png
--------------------------------------------------------------------------------
/source/KlocTools/Subsystems/WindowHoverEventArgs.cs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2017 Marcin Szeniak (https://github.com/Klocman/)
3 | Apache License Version 2.0
4 | */
5 |
6 | using System;
7 |
8 | namespace Klocman.Subsystems
9 | {
10 | public sealed class WindowHoverEventArgs : EventArgs
11 | {
12 | public WindowHoverEventArgs(WindowHoverSearcher.WindowInfo targetWindow)
13 | {
14 | TargetWindow = targetWindow;
15 | }
16 |
17 | public WindowHoverSearcher.WindowInfo TargetWindow { get; }
18 | }
19 | }
--------------------------------------------------------------------------------
/source/KlocTools/Tools/MachineType.cs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2017 Marcin Szeniak (https://github.com/Klocman/)
3 | Apache License Version 2.0
4 | */
5 |
6 | using Klocman.Localising;
7 | using Klocman.Resources;
8 |
9 | namespace Klocman.Tools
10 | {
11 | public enum MachineType
12 | {
13 | [LocalisedName(typeof(CommonStrings), nameof(CommonStrings.Unknown))]
14 | Unknown,
15 | X86,
16 | X64,
17 | Ia64
18 | }
19 | }
--------------------------------------------------------------------------------
/source/KlocTools/Tools/SymbolicLinkType.cs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2017 Marcin Szeniak (https://github.com/Klocman/)
3 | Apache License Version 2.0
4 | */
5 |
6 | namespace Klocman.Tools
7 | {
8 | public enum SymbolicLinkType
9 | {
10 | File = 0,
11 | Directory = 1
12 | }
13 | }
--------------------------------------------------------------------------------
/source/KlocTools/YesNoAsk.cs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2017 Marcin Szeniak (https://github.com/Klocman/)
3 | Apache License Version 2.0
4 | */
5 |
6 | using Klocman.Localising;
7 | using Klocman.Properties;
8 |
9 | namespace Klocman
10 | {
11 | public enum YesNoAsk
12 | {
13 | [LocalisedName(typeof (Localisation), nameof(Localisation.Enums_YesNoAsk_Ask))] Ask = 0,
14 | [LocalisedName(typeof (Localisation), nameof(Localisation.Yes))] Yes,
15 | [LocalisedName(typeof (Localisation), nameof(Localisation.No))] No
16 | }
17 | }
--------------------------------------------------------------------------------
/source/Licence.licenseheader:
--------------------------------------------------------------------------------
1 | extensions: designer.cs generated.cs
2 | extensions: .cs .cpp .h
3 | /*
4 | Copyright (c) 2020 Marcin Szeniak (https://github.com/Klocman/)
5 | Apache License Version 2.0
6 | */
7 |
8 | extensions: .aspx .ascx
9 | <%--
10 | Copyright (c) 2020 Marcin Szeniak (https://github.com/Klocman/)
11 | Apache License Version 2.0
12 | --%>
13 | extensions: .xml .config .xsd
14 |
--------------------------------------------------------------------------------
/source/NBug_custom/Core/Reporting/Feedback.cs:
--------------------------------------------------------------------------------
1 | // --------------------------------------------------------------------------------------------------------------------
2 | //
3 | // Copyright (c) 2011 - 2013 Teoman Soygul. Licensed under MIT license.
4 | //
5 | // --------------------------------------------------------------------------------------------------------------------
6 |
7 | using System;
8 | using NBug.Core.Reporting.Info;
9 | using NBug.Core.Util.Logging;
10 |
11 | namespace NBug.Core.Reporting
12 | {
13 | internal class Feedback
14 | {
15 | private Report report;
16 |
17 | internal Feedback()
18 | {
19 | try
20 | {
21 | report = new Report(null);
22 | }
23 | catch (Exception exception)
24 | {
25 | Logger.Error(
26 | "An exception occurred while sending a user feedback. See the inner exception for details.",
27 | exception);
28 | }
29 | }
30 | }
31 | }
--------------------------------------------------------------------------------
/source/NBug_custom/Core/Reporting/Info/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | // --------------------------------------------------------------------------------------------------------------------
2 | //
3 | // Copyright (c) 2011 - 2013 Teoman Soygul. Licensed under MIT license.
4 | //
5 | // --------------------------------------------------------------------------------------------------------------------
6 |
7 | namespace NBug.Core.Reporting.Info
8 | {
9 | public class AssemblyInfo
10 | {
11 | }
12 | }
--------------------------------------------------------------------------------
/source/NBug_custom/Core/Reporting/Info/ConfigurationInfo.cs:
--------------------------------------------------------------------------------
1 | // --------------------------------------------------------------------------------------------------------------------
2 | //
3 | // Copyright (c) 2011 - 2013 Teoman Soygul. Licensed under MIT license.
4 | //
5 | // --------------------------------------------------------------------------------------------------------------------
6 |
7 | namespace NBug.Core.Reporting.Info
8 | {
9 | public class ConfigurationInfo
10 | {
11 | }
12 | }
--------------------------------------------------------------------------------
/source/NBug_custom/Core/Reporting/Info/SystemInfo.cs:
--------------------------------------------------------------------------------
1 | // --------------------------------------------------------------------------------------------------------------------
2 | //
3 | // Copyright (c) 2011 - 2013 Teoman Soygul. Licensed under MIT license.
4 | //
5 | // --------------------------------------------------------------------------------------------------------------------
6 |
7 | namespace NBug.Core.Reporting.Info
8 | {
9 | public class SystemInfo
10 | {
11 | }
12 | }
--------------------------------------------------------------------------------
/source/NBug_custom/Core/Submission/Database/Ado.cs:
--------------------------------------------------------------------------------
1 | // --------------------------------------------------------------------------------------------------------------------
2 | //
3 | // Copyright (c) 2011 - 2013 Teoman Soygul. Licensed under MIT license.
4 | //
5 | // --------------------------------------------------------------------------------------------------------------------
6 |
7 | namespace NBug.Core.Submission.Database
8 | {
9 | internal class Ado
10 | {
11 | }
12 | }
--------------------------------------------------------------------------------
/source/NBug_custom/Core/Submission/Database/MsSql.cs:
--------------------------------------------------------------------------------
1 | // --------------------------------------------------------------------------------------------------------------------
2 | //
3 | // Copyright (c) 2011 - 2013 Teoman Soygul. Licensed under MIT license.
4 | //
5 | // --------------------------------------------------------------------------------------------------------------------
6 |
7 | namespace NBug.Core.Submission.Database
8 | {
9 | internal class MsSql
10 | {
11 | }
12 | }
--------------------------------------------------------------------------------
/source/NBug_custom/Core/Submission/Database/MySql.cs:
--------------------------------------------------------------------------------
1 | // --------------------------------------------------------------------------------------------------------------------
2 | //
3 | // Copyright (c) 2011 - 2013 Teoman Soygul. Licensed under MIT license.
4 | //
5 | // --------------------------------------------------------------------------------------------------------------------
6 |
7 | namespace NBug.Core.Submission.Database
8 | {
9 | internal class MySql
10 | {
11 | }
12 | }
--------------------------------------------------------------------------------
/source/NBug_custom/Core/Submission/IProtocolFactory.cs:
--------------------------------------------------------------------------------
1 | // --------------------------------------------------------------------------------------------------------------------
2 | //
3 | // Copyright (c) 2011 - 2013 Teoman Soygul. Licensed under MIT license.
4 | //
5 | // --------------------------------------------------------------------------------------------------------------------
6 |
7 | namespace NBug.Core.Submission
8 | {
9 | ///
10 | /// The protocol factory creates an IProtocol instance.
11 | /// This interface is to get around the fact that the IProtocol interface
12 | /// cannot be guaranteed to contain a constructor that takes a connection
13 | /// string. At the same time, we allow the protocol implementation to supply
14 | /// the name of its connection string Type parameter.
15 | /// The protocol factory is only used for protocols that originate as connection
16 | /// strings in a configuration file.
17 | /// Note! Your implementation of this class MUST HAVE a parameterless constructor.
18 | ///
19 | public interface IProtocolFactory
20 | {
21 | string SupportedType { get; }
22 | IProtocol FromConnectionString(string connectionString);
23 | }
24 | }
--------------------------------------------------------------------------------
/source/NBug_custom/Core/Submission/Protocols.cs:
--------------------------------------------------------------------------------
1 | // --------------------------------------------------------------------------------------------------------------------
2 | //
3 | // Copyright (c) 2010 - 2011 Teoman Soygul. Licensed under LGPLv3 (http://www.gnu.org/licenses/lgpl.html).
4 | //
5 | // --------------------------------------------------------------------------------------------------------------------
6 |
7 | namespace NBug.Core.Submission
8 | {
9 | // Actually enum names should be singular words!
10 | public enum Protocols
11 | {
12 | Mail,
13 | Redmine,
14 | BugNET,
15 | FTP,
16 | HTTP,
17 | AzureBlobStorage
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/source/NBug_custom/Core/Submission/Tracker/BugNet.cs:
--------------------------------------------------------------------------------
1 | // --------------------------------------------------------------------------------------------------------------------
2 | //
3 | // Copyright (c) 2011 - 2013 Teoman Soygul. Licensed under MIT license.
4 | //
5 | // --------------------------------------------------------------------------------------------------------------------
6 |
7 | using System.IO;
8 | using NBug.Core.Reporting.Info;
9 | using NBug.Core.Util.Serialization;
10 |
11 | namespace NBug.Core.Submission.Tracker
12 | {
13 | internal class BugNet : ProtocolBase
14 | {
15 | internal BugNet(string connectionString)
16 | : base(connectionString)
17 | {
18 | }
19 |
20 | internal BugNet()
21 | {
22 | }
23 |
24 | public override bool Send(string fileName, Stream file, Report report, SerializableException exception)
25 | {
26 | //HttpWebRequest request; //suppress unused Warning
27 |
28 | return true;
29 | }
30 | }
31 | }
--------------------------------------------------------------------------------
/source/NBug_custom/Core/Submission/Tracker/Bugzilla.cs:
--------------------------------------------------------------------------------
1 | // --------------------------------------------------------------------------------------------------------------------
2 | //
3 | // Copyright (c) 2011 - 2013 Teoman Soygul. Licensed under MIT license.
4 | //
5 | // --------------------------------------------------------------------------------------------------------------------
6 |
7 | namespace NBug.Core.Submission.Tracker
8 | {
9 | internal class Bugzilla
10 | {
11 | }
12 | }
--------------------------------------------------------------------------------
/source/NBug_custom/Core/Submission/Tracker/GitHub.cs:
--------------------------------------------------------------------------------
1 | // --------------------------------------------------------------------------------------------------------------------
2 | //
3 | // Copyright (c) 2011 - 2013 Teoman Soygul. Licensed under MIT license.
4 | //
5 | // --------------------------------------------------------------------------------------------------------------------
6 |
7 | namespace NBug.Core.Submission.Tracker
8 | {
9 | internal class GitHub
10 | {
11 | }
12 | }
--------------------------------------------------------------------------------
/source/NBug_custom/Core/Submission/Tracker/GoogleCode.cs:
--------------------------------------------------------------------------------
1 | // --------------------------------------------------------------------------------------------------------------------
2 | //
3 | // Copyright (c) 2011 - 2013 Teoman Soygul. Licensed under MIT license.
4 | //
5 | // --------------------------------------------------------------------------------------------------------------------
6 |
7 | namespace NBug.Core.Submission.Tracker
8 | {
9 | internal class GoogleCode
10 | {
11 | }
12 | }
--------------------------------------------------------------------------------
/source/NBug_custom/Core/Submission/Tracker/Mantis/AccountData.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.Xml.Serialization;
4 |
5 | namespace NBug.Core.Submission.Tracker.Mantis
6 | {
7 | [Serializable, DebuggerStepThrough, SoapType(Namespace = "http://futureware.biz/mantisconnect")]
8 | public class AccountData
9 | {
10 | private string emailField;
11 | private string idField;
12 | private string nameField;
13 | private string real_nameField;
14 |
15 | [SoapElement(DataType = "integer")]
16 | public string id
17 | {
18 | get { return idField; }
19 | set { idField = value; }
20 | }
21 |
22 | public string name
23 | {
24 | get { return nameField; }
25 | set { nameField = value; }
26 | }
27 |
28 | public string real_name
29 | {
30 | get { return real_nameField; }
31 | set { real_nameField = value; }
32 | }
33 |
34 | public string email
35 | {
36 | get { return emailField; }
37 | set { emailField = value; }
38 | }
39 | }
40 | }
--------------------------------------------------------------------------------
/source/NBug_custom/Core/Submission/Tracker/Mantis/CustomFieldValueForIssueData.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Xml.Serialization;
3 |
4 | namespace NBug.Core.Submission.Tracker.Mantis
5 | {
6 | [Serializable, SoapType(Namespace = "http://futureware.biz/mantisconnect")]
7 | public class CustomFieldValueForIssueData
8 | {
9 | private ObjectRef fieldField;
10 | private string valueField;
11 |
12 | public ObjectRef field
13 | {
14 | get { return fieldField; }
15 | set { fieldField = value; }
16 | }
17 |
18 | public string value
19 | {
20 | get { return valueField; }
21 | set { valueField = value; }
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/source/NBug_custom/Core/Submission/Tracker/Mantis/ObjectRef.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Xml.Serialization;
3 |
4 | namespace NBug.Core.Submission.Tracker.Mantis
5 | {
6 | [Serializable, SoapType(Namespace = "http://futureware.biz/mantisconnect")]
7 | public class ObjectRef
8 | {
9 | private string idField;
10 | private string nameField;
11 |
12 | [SoapElement(DataType = "integer")]
13 | public string id
14 | {
15 | get { return idField; }
16 | set { idField = value; }
17 | }
18 |
19 | public string name
20 | {
21 | get { return nameField; }
22 | set { nameField = value; }
23 | }
24 | }
25 | }
--------------------------------------------------------------------------------
/source/NBug_custom/Core/Submission/Tracker/Mantis/RelationshipData.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Xml.Serialization;
3 |
4 | namespace NBug.Core.Submission.Tracker.Mantis
5 | {
6 | [Serializable, SoapType(Namespace = "http://futureware.biz/mantisconnect")]
7 | public class RelationshipData
8 | {
9 | private string idField;
10 | private string target_idField;
11 | private ObjectRef typeField;
12 |
13 | [SoapElement(DataType = "integer")]
14 | public string id
15 | {
16 | get { return idField; }
17 | set { idField = value; }
18 | }
19 |
20 | public ObjectRef type
21 | {
22 | get { return typeField; }
23 | set { typeField = value; }
24 | }
25 |
26 | [SoapElement(DataType = "integer")]
27 | public string target_id
28 | {
29 | get { return target_idField; }
30 | set { target_idField = value; }
31 | }
32 | }
33 | }
--------------------------------------------------------------------------------
/source/NBug_custom/Core/Submission/Tracker/Mantis/UserData.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Xml.Serialization;
3 |
4 | namespace NBug.Core.Submission.Tracker.Mantis
5 | {
6 | [Serializable, SoapType(Namespace = "http://futureware.biz/mantisconnect")]
7 | public class UserData
8 | {
9 | private string access_levelField;
10 | private AccountData account_dataField;
11 | private string timezoneField;
12 |
13 | public AccountData account_data
14 | {
15 | get { return account_dataField; }
16 | set { account_dataField = value; }
17 | }
18 |
19 | [SoapElement(DataType = "integer")]
20 | public string access_level
21 | {
22 | get { return access_levelField; }
23 | set { access_levelField = value; }
24 | }
25 |
26 | public string timezone
27 | {
28 | get { return timezoneField; }
29 | set { timezoneField = value; }
30 | }
31 | }
32 | }
--------------------------------------------------------------------------------
/source/NBug_custom/Core/UI/UIDialogResult.cs:
--------------------------------------------------------------------------------
1 | // --------------------------------------------------------------------------------------------------------------------
2 | //
3 | // Copyright (c) 2011 - 2013 Teoman Soygul. Licensed under MIT license.
4 | //
5 | // --------------------------------------------------------------------------------------------------------------------
6 |
7 | namespace NBug.Core.UI
8 | {
9 | public enum SendReport
10 | {
11 | Send,
12 |
13 | DoNotSend
14 | }
15 |
16 | public enum ExecutionFlow
17 | {
18 | ///
19 | /// This will handle all unhandled exceptions to be able to continue execution.
20 | ///
21 | ContinueExecution,
22 |
23 | ///
24 | /// This will handle all unhandled exceptions and exit the application.
25 | ///
26 | BreakExecution
27 | }
28 |
29 | public struct UIDialogResult
30 | {
31 | internal ExecutionFlow Execution;
32 | internal SendReport Report;
33 |
34 | public UIDialogResult(ExecutionFlow execution, SendReport report)
35 | {
36 | Execution = execution;
37 | Report = report;
38 | }
39 | }
40 | }
--------------------------------------------------------------------------------
/source/NBug_custom/Core/UI/WinForms/Feedback.cs:
--------------------------------------------------------------------------------
1 | // --------------------------------------------------------------------------------------------------------------------
2 | //
3 | // Copyright (c) 2011 - 2013 Teoman Soygul. Licensed under MIT license.
4 | //
5 | // --------------------------------------------------------------------------------------------------------------------
6 |
7 | using System.Windows.Forms;
8 | using NBug.Properties;
9 |
10 | namespace NBug.Core.UI.WinForms
11 | {
12 | internal partial class Feedback : Form
13 | {
14 | public Feedback()
15 | {
16 | InitializeComponent();
17 | Icon = Resources.NBug_icon_16;
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/source/NBug_custom/Core/UI/WinForms/Minimal.cs:
--------------------------------------------------------------------------------
1 | // --------------------------------------------------------------------------------------------------------------------
2 | //
3 | // Copyright (c) 2011 - 2013 Teoman Soygul. Licensed under MIT license.
4 | //
5 | // --------------------------------------------------------------------------------------------------------------------
6 |
7 | using System.Windows.Forms;
8 | using NBug.Core.Reporting.Info;
9 | using NBug.Properties;
10 |
11 | namespace NBug.Core.UI.WinForms
12 | {
13 | internal class Minimal
14 | {
15 | internal UIDialogResult ShowDialog(Report report)
16 | {
17 | MessageBox.Show(
18 | new Form {TopMost = true},
19 | Settings.Resources.UI_Dialog_Minimal_Message,
20 | report.GeneralInfo.HostApplication + " " + Localization.UI_Dialog_Minimal_Title,
21 | MessageBoxButtons.OK,
22 | MessageBoxIcon.Warning);
23 |
24 | return new UIDialogResult(ExecutionFlow.BreakExecution, SendReport.Send);
25 | }
26 | }
27 | }
--------------------------------------------------------------------------------
/source/NBug_custom/Core/UI/WinForms/Panels/ExceptionDetailView.cs:
--------------------------------------------------------------------------------
1 | // --------------------------------------------------------------------------------------------------------------------
2 | //
3 | // Copyright (c) 2011 - 2013 Teoman Soygul. Licensed under MIT license.
4 | //
5 | // --------------------------------------------------------------------------------------------------------------------
6 |
7 | using System;
8 | using System.Windows.Forms;
9 |
10 | namespace NBug.Core.UI.WinForms.Panels
11 | {
12 | internal partial class ExceptionDetailView : Form
13 | {
14 | public ExceptionDetailView()
15 | {
16 | InitializeComponent();
17 | }
18 |
19 | internal void ShowDialog(string property, string info)
20 | {
21 | propertyTextBox.Text = property;
22 | propertyInformationTextBox.Text = info;
23 | ShowDialog();
24 | }
25 |
26 | private void CloseButton_Click(object sender, EventArgs e)
27 | {
28 | Close();
29 | }
30 | }
31 | }
--------------------------------------------------------------------------------
/source/NBug_custom/Core/Util/ExceptionThread.cs:
--------------------------------------------------------------------------------
1 | // --------------------------------------------------------------------------------------------------------------------
2 | //
3 | // Copyright (c) 2011 - 2013 Teoman Soygul. Licensed under MIT license.
4 | //
5 | // --------------------------------------------------------------------------------------------------------------------
6 |
7 | namespace NBug.Core.Util
8 | {
9 | internal enum ExceptionThread
10 | {
11 | Main,
12 |
13 | UI_WinForms,
14 |
15 | UI_WPF,
16 |
17 | Task
18 | }
19 | }
--------------------------------------------------------------------------------
/source/NBug_custom/Core/Util/Exceptions/NBugConfigurationException.cs:
--------------------------------------------------------------------------------
1 | // --------------------------------------------------------------------------------------------------------------------
2 | //
3 | // Copyright (c) 2011 - 2013 Teoman Soygul. Licensed under MIT license.
4 | //
5 | // --------------------------------------------------------------------------------------------------------------------
6 |
7 | using System;
8 | using System.Linq.Expressions;
9 |
10 | namespace NBug.Core.Util.Exceptions
11 | {
12 | [Serializable]
13 | public class NBugConfigurationException : NBugException
14 | {
15 | public NBugConfigurationException(string message, Exception inner)
16 | : base(message, inner)
17 | {
18 | MisconfiguredProperty = string.Empty;
19 | }
20 |
21 | private NBugConfigurationException(string propertyName, string message)
22 | : base(message)
23 | {
24 | MisconfiguredProperty = propertyName;
25 | }
26 |
27 | public string MisconfiguredProperty { get; set; }
28 |
29 | public static NBugConfigurationException Create(Expression> propertyExpression, string message)
30 | {
31 | return new NBugConfigurationException(((MemberExpression) propertyExpression.Body).Member.Name, message);
32 | }
33 | }
34 | }
--------------------------------------------------------------------------------
/source/NBug_custom/Core/Util/Exceptions/NBugException.cs:
--------------------------------------------------------------------------------
1 | // --------------------------------------------------------------------------------------------------------------------
2 | //
3 | // Copyright (c) 2011 - 2013 Teoman Soygul. Licensed under MIT license.
4 | //
5 | // --------------------------------------------------------------------------------------------------------------------
6 |
7 | using System;
8 | using System.Runtime.Serialization;
9 |
10 | namespace NBug.Core.Util.Exceptions
11 | {
12 | [Serializable]
13 | public class NBugException : Exception
14 | {
15 | public NBugException()
16 | {
17 | }
18 |
19 | public NBugException(string message)
20 | : base(message)
21 | {
22 | }
23 |
24 | public NBugException(string message, Exception inner)
25 | : base(message, inner)
26 | {
27 | }
28 |
29 | protected NBugException(SerializationInfo info, StreamingContext context)
30 | : base(info, context)
31 | {
32 | }
33 | }
34 | }
--------------------------------------------------------------------------------
/source/NBug_custom/Core/Util/Exceptions/NBugRuntimeException.cs:
--------------------------------------------------------------------------------
1 | // --------------------------------------------------------------------------------------------------------------------
2 | //
3 | // Copyright (c) 2011 - 2013 Teoman Soygul. Licensed under MIT license.
4 | //
5 | // --------------------------------------------------------------------------------------------------------------------
6 |
7 | using System;
8 |
9 | namespace NBug.Core.Util.Exceptions
10 | {
11 | [Serializable]
12 | public class NBugRuntimeException : NBugException
13 | {
14 | public NBugRuntimeException(string message, Exception inner)
15 | : base(message, inner)
16 | {
17 | }
18 |
19 | public NBugRuntimeException(string message)
20 | : base(message)
21 | {
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/source/NBug_custom/Core/Util/ProtectedConfiguration.cs:
--------------------------------------------------------------------------------
1 | // --------------------------------------------------------------------------------------------------------------------
2 | //
3 | // Copyright (c) 2011 - 2013 Teoman Soygul. Licensed under MIT license.
4 | //
5 | // --------------------------------------------------------------------------------------------------------------------
6 |
7 | namespace NBug.Core.Util
8 | {
9 | internal class ProtectedConfiguration
10 | {
11 | }
12 | }
--------------------------------------------------------------------------------
/source/NBug_custom/Core/Util/Storage/StoredItemFile.cs:
--------------------------------------------------------------------------------
1 | // --------------------------------------------------------------------------------------------------------------------
2 | //
3 | // Copyright (c) 2011 - 2013 Teoman Soygul. Licensed under MIT license.
4 | //
5 | // --------------------------------------------------------------------------------------------------------------------
6 |
7 | namespace NBug.Core.Util.Storage
8 | {
9 | internal enum StoredItemType
10 | {
11 | Exception,
12 |
13 | Report,
14 |
15 | MiniDump
16 | }
17 |
18 | // This class must remain internal otherwise it should not use constant strings
19 | internal static class StoredItemFile
20 | {
21 | internal const string Exception = "Exception.xml";
22 | internal const string MiniDump = "MiniDump.mdmp";
23 | internal const string Report = "Report.xml";
24 | }
25 | }
--------------------------------------------------------------------------------
/source/NBug_custom/Core/Util/Storage/ZipStorer.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/NBug_custom/Core/Util/Storage/ZipStorer.cs
--------------------------------------------------------------------------------
/source/NBug_custom/Enums/MiniDumpType.cs:
--------------------------------------------------------------------------------
1 | // --------------------------------------------------------------------------------------------------------------------
2 | //
3 | // Copyright (c) 2011 - 2013 Teoman Soygul. Licensed under MIT license.
4 | //
5 | // --------------------------------------------------------------------------------------------------------------------
6 |
7 | namespace NBug.Enums
8 | {
9 | public enum MiniDumpType
10 | {
11 | ///
12 | /// Generate no minidump at all.
13 | ///
14 | None,
15 |
16 | ///
17 | /// Generates the smallest possible minidump still with useful information. Dump size is about ~100KB compressed.
18 | ///
19 | Tiny,
20 |
21 | ///
22 | /// Generates minidump with private read write memory and data segments. This mode allows retreiving of local values
23 | /// and the stack
24 | /// variables. Dump size is about ~5MB compressed.
25 | ///
26 | Normal,
27 |
28 | ///
29 | /// Generates full application memory dump. This simply dump all memory used by the process. Dump size is about ~100MB
30 | /// compressed.
31 | ///
32 | Full
33 | }
34 | }
--------------------------------------------------------------------------------
/source/NBug_custom/Enums/StoragePath.cs:
--------------------------------------------------------------------------------
1 | // --------------------------------------------------------------------------------------------------------------------
2 | //
3 | // Copyright (c) 2011 - 2013 Teoman Soygul. Licensed under MIT license.
4 | //
5 | // --------------------------------------------------------------------------------------------------------------------
6 |
7 | namespace NBug.Enums
8 | {
9 | public enum StoragePath
10 | {
11 | ///
12 | /// %Temp% directory is the default storage. Usually set to 'C:\Documents and Settings\Username\Local Settings\Temp'.
13 | ///
14 | WindowsTemp,
15 |
16 | ///
17 | /// Initial working directory, i.e. where the executing assembly (MyProduct.exe) is located.
18 | ///
19 | CurrentDirectory,
20 |
21 | ///
22 | /// User's isolated storage store (application scope).
23 | ///
24 | IsolatedStorage,
25 |
26 | ///
27 | /// Custom path should be a full path like 'C:\Documents and Settings\MyUser\Local Settings\Temp'.
28 | ///
29 | /// Path should not have a trailing slash. If the directory doesn't exist, it is created first.
30 | Custom
31 | }
32 | }
--------------------------------------------------------------------------------
/source/NBug_custom/Enums/UIProvider.cs:
--------------------------------------------------------------------------------
1 | // --------------------------------------------------------------------------------------------------------------------
2 | //
3 | // Copyright (c) 2011 - 2013 Teoman Soygul. Licensed under MIT license.
4 | //
5 | // --------------------------------------------------------------------------------------------------------------------
6 |
7 | namespace NBug.Enums
8 | {
9 | public enum UIProvider
10 | {
11 | ///
12 | /// Automatic provider selection is the default setting.
13 | ///
14 | Auto,
15 |
16 | ///
17 | /// Only the console is used to display the interface and interact with the user if necessary.
18 | ///
19 | Console,
20 |
21 | ///
22 | /// Windows Forms interface is used for all UI displayed to the user.
23 | ///
24 | WinForms,
25 |
26 | ///
27 | /// Windows Presentation Foundation interface is used for all UI displayed to the user.
28 | ///
29 | WPF,
30 |
31 | ///
32 | /// Custom UIProvider.
33 | ///
34 | Custom
35 | }
36 | }
--------------------------------------------------------------------------------
/source/NBug_custom/Events/CustomSubmissionEventArgs.cs:
--------------------------------------------------------------------------------
1 | // --------------------------------------------------------------------------------------------------------------------
2 | //
3 | // Copyright (c) 2011 - 2013 Teoman Soygul. Licensed under MIT license.
4 | //
5 | // --------------------------------------------------------------------------------------------------------------------
6 |
7 | using System;
8 | using System.IO;
9 | using NBug.Core.Reporting.Info;
10 | using NBug.Core.Util.Serialization;
11 |
12 | namespace NBug.Events
13 | {
14 | public class CustomSubmissionEventArgs : EventArgs
15 | {
16 | internal CustomSubmissionEventArgs(string fileName, Stream file, Report report, SerializableException exception)
17 | {
18 | FileName = fileName;
19 | File = file;
20 | Report = report;
21 | Exception = exception;
22 | Result = false;
23 | }
24 |
25 | public SerializableException Exception { get; private set; }
26 | public Stream File { get; private set; }
27 | public string FileName { get; private set; }
28 | public Report Report { get; private set; }
29 | public bool Result { get; set; }
30 | }
31 | }
--------------------------------------------------------------------------------
/source/NBug_custom/Events/CustomUIEventArgs.cs:
--------------------------------------------------------------------------------
1 | // --------------------------------------------------------------------------------------------------------------------
2 | //
3 | // Copyright (c) 2011 - 2013 Teoman Soygul. Licensed under MIT license.
4 | //
5 | // --------------------------------------------------------------------------------------------------------------------
6 |
7 | using System;
8 | using NBug.Core.Reporting.Info;
9 | using NBug.Core.UI;
10 | using NBug.Core.Util.Serialization;
11 | using NBug.Enums;
12 |
13 | namespace NBug.Events
14 | {
15 | public class CustomUIEventArgs : EventArgs
16 | {
17 | internal CustomUIEventArgs(UIMode uiMode, SerializableException exception, Report report)
18 | {
19 | UIMode = uiMode;
20 | Report = report;
21 | Exception = exception;
22 | Result = new UIDialogResult(ExecutionFlow.BreakExecution, SendReport.DoNotSend);
23 | }
24 |
25 | public SerializableException Exception { get; private set; }
26 | public Report Report { get; private set; }
27 | public UIDialogResult Result { get; set; }
28 | public UIMode UIMode { get; private set; }
29 | }
30 | }
--------------------------------------------------------------------------------
/source/NBug_custom/Exceptions.cs:
--------------------------------------------------------------------------------
1 | // --------------------------------------------------------------------------------------------------------------------
2 | //
3 | // Copyright (c) 2011 - 2013 Teoman Soygul. Licensed under MIT license.
4 | //
5 | // --------------------------------------------------------------------------------------------------------------------
6 |
7 | using System;
8 | using NBug.Core.Reporting;
9 | using NBug.Core.Util;
10 |
11 | namespace NBug
12 | {
13 | public static class Exceptions
14 | {
15 | ///
16 | /// Submits a bug report for the given exception. This function useful for submitting bug reports inside a try-catch
17 | /// block.
18 | /// Note that this function uses the NBug configuration so it will use the pre-configured UI and submission settings.
19 | ///
20 | /// The exception to submit as the bug report.
21 | public static void Report(Exception exception)
22 | {
23 | // Below never exits application by itself (by design) so execution of the application continues normally
24 | new BugReport().Report(exception, ExceptionThread.Main);
25 | }
26 | }
27 | }
--------------------------------------------------------------------------------
/source/NBug_custom/NBug.Configurator/NBug.Configurator.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/NBug_custom/NBug.Configurator/NBug.Configurator.exe
--------------------------------------------------------------------------------
/source/NBug_custom/NBug.Configurator/NBug.Configurator.exe.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/source/NBug_custom/NBug.Configurator/NBug.Examples.WinForms.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/NBug_custom/NBug.Configurator/NBug.Examples.WinForms.exe
--------------------------------------------------------------------------------
/source/NBug_custom/NBug.Configurator/NBug.Examples.WinForms.exe.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/source/NBug_custom/NBug.Configurator/NBug.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/NBug_custom/NBug.Configurator/NBug.dll
--------------------------------------------------------------------------------
/source/NBug_custom/NBug_LICENSE.md:
--------------------------------------------------------------------------------
1 | The MIT License
2 |
3 | Copyright (c) 2011 Teoman Soygul and contributors
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
--------------------------------------------------------------------------------
/source/NBug_custom/NBug_README.md:
--------------------------------------------------------------------------------
1 | # [](http://www.soygul.com/projects/nbug/)
2 | NBug is a .NET library created to automate the bug reporting process. It automatically creates and sends:
3 | * Bug reports,
4 | * Crash reports with minidump,
5 | * Error/exception reports with stack trace + ext. info.
6 | It can also be set up as a user feedback system (i.e. feature requests).
7 |
8 | ## Quickstart
9 | Read the quickstart here: http://www.soygul.com/projects/nbug/
10 |
11 | ## Questions
12 | You can post your question on StackOverflow with NBug tag: http://stackoverflow.com/questions/tagged/nbug
13 |
14 | ## Get it on [NuGet] (https://www.nuget.org/packages/NBug/)
15 |
16 | ```powershell
17 | Install-Package NBug
18 | ```
19 |
20 | ## CodePlex Home
21 | Old (up to v1.1.1 release) project source is hosted at CodePlex, where you can find more information about the project: http://nbug.codeplex.com/
22 |
--------------------------------------------------------------------------------
/source/NBug_custom/Properties/PublishProfiles/FolderProfile.pubxml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 | Release
8 | Any CPU
9 | FileSystem
10 | net6.0-windows10.0.18362.0
11 | win-x64
12 | true
13 | False
14 | True
15 | False
16 |
17 |
--------------------------------------------------------------------------------
/source/NBug_custom/resources/Error_16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/NBug_custom/resources/Error_16.png
--------------------------------------------------------------------------------
/source/NBug_custom/resources/Feedback.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/NBug_custom/resources/Feedback.png
--------------------------------------------------------------------------------
/source/NBug_custom/resources/Forum_16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/NBug_custom/resources/Forum_16.png
--------------------------------------------------------------------------------
/source/NBug_custom/resources/Help_16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/NBug_custom/resources/Help_16.png
--------------------------------------------------------------------------------
/source/NBug_custom/resources/NBug_Icon_PNG_16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/NBug_custom/resources/NBug_Icon_PNG_16.png
--------------------------------------------------------------------------------
/source/NBug_custom/resources/NBug_icon_16.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/NBug_custom/resources/NBug_icon_16.ico
--------------------------------------------------------------------------------
/source/NBug_custom/resources/NBug_icon_16_borders.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/NBug_custom/resources/NBug_icon_16_borders.ico
--------------------------------------------------------------------------------
/source/NBug_custom/resources/Send.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/NBug_custom/resources/Send.png
--------------------------------------------------------------------------------
/source/NBug_custom/resources/VS2010_16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/NBug_custom/resources/VS2010_16.png
--------------------------------------------------------------------------------
/source/NBug_custom/resources/icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/NBug_custom/resources/icon.ico
--------------------------------------------------------------------------------
/source/NetSettingBinder/ISettingChangedHandlerEntry.cs:
--------------------------------------------------------------------------------
1 | namespace Klocman.Binding.Settings
2 | {
3 | internal interface ISettingChangedHandlerEntry
4 | {
5 | object Tag { get; set; }
6 | void SendEvent(object value);
7 | }
8 | }
--------------------------------------------------------------------------------
/source/NetSettingBinder/NetSettingBinder.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | net6.0-windows10.0.18362.0
4 | Library
5 | Klocman.Binding.Settings
6 | false
7 | true
8 | true
9 | AnyCPU;x64;x86
10 |
11 |
--------------------------------------------------------------------------------
/source/NetSettingBinder/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 |
8 | [assembly: AssemblyTitle("NetSettingBinder")]
9 | [assembly: AssemblyDescription("A tool for binding controls, variables and typed event handlers to custom Settings classes.")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("Marcin Szeniak")]
12 | [assembly: AssemblyProduct("NetSettingBinder")]
13 | [assembly: AssemblyCopyright("Copyright © 2016")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
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 |
21 | [assembly: ComVisible(false)]
22 |
23 | // The following GUID is for the ID of the typelib if this project is exposed to COM
24 |
25 | [assembly: Guid("c28a3493-8fca-4571-8f9e-27b8420c0720")]
26 | [assembly: AssemblyVersion("1.1.1")]
--------------------------------------------------------------------------------
/source/NetSettingBinder/Properties/PublishProfiles/FolderProfile.pubxml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 | Release
8 | Any CPU
9 | FileSystem
10 | net6.0-windows10.0.18362.0
11 | win-x64
12 | true
13 | False
14 | True
15 | False
16 |
17 |
--------------------------------------------------------------------------------
/source/NetSettingBinder/SettingChangedEventArgs.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Klocman.Binding.Settings
4 | {
5 | ///
6 | /// EventArgs used by the SettingBinder to announce setting changes
7 | ///
8 | /// Type of the setting that was changed
9 | public class SettingChangedEventArgs : EventArgs
10 | {
11 | internal SettingChangedEventArgs(T value)
12 | {
13 | if (value == null)
14 | throw new ArgumentNullException(nameof(value));
15 | NewValue = value;
16 | }
17 |
18 | ///
19 | /// New value of the changed setting
20 | ///
21 | public T NewValue { get; }
22 | }
23 | }
--------------------------------------------------------------------------------
/source/NetSettingBinder/SettingChangedEventHandler.cs:
--------------------------------------------------------------------------------
1 | namespace Klocman.Binding.Settings
2 | {
3 | public delegate void SettingChangedEventHandler(
4 | object sender, SettingChangedEventArgs args);
5 | }
--------------------------------------------------------------------------------
/source/NetSettingBinder/SettingChangedHandlerEntry.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Klocman.Binding.Settings
4 | {
5 | ///
6 | /// This class contains the information required to send the event back to the subscriber
7 | ///
8 | internal sealed class SettingChangedHandlerEntry : ISettingChangedHandlerEntry
9 | {
10 | internal SettingChangedHandlerEntry(SettingChangedEventHandler handler, object tag)
11 | {
12 | Handler = handler ?? throw new ArgumentNullException(nameof(handler));
13 | Tag = tag ?? throw new ArgumentNullException(nameof(tag));
14 | }
15 |
16 | private SettingChangedEventHandler Handler { get; }
17 | public object Tag { get; set; }
18 |
19 | ///
20 | /// Implemented explicitly to hide it from outside access
21 | ///
22 | void ISettingChangedHandlerEntry.SendEvent(object value)
23 | {
24 | Handler(this, new SettingChangedEventArgs((T) value));
25 | }
26 | }
27 | }
--------------------------------------------------------------------------------
/source/ObjectListView/CustomDictionary.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | br
6 | Canceled
7 | Center
8 | Color
9 | Colors
10 | f
11 | fmt
12 | g
13 | gdi
14 | hti
15 | i
16 | lightbox
17 | lv
18 | lvi
19 | lvsi
20 | m
21 | multi
22 | Munger
23 | n
24 | olv
25 | olvi
26 | p
27 | parms
28 | r
29 | Renderer
30 | s
31 | SubItem
32 | Unapply
33 | Unpause
34 | x
35 | y
36 |
37 |
38 | ComPlus
39 |
40 |
41 |
42 |
43 | OLV
44 |
45 |
46 |
47 |
--------------------------------------------------------------------------------
/source/ObjectListView/GlobalSuppressions.cs:
--------------------------------------------------------------------------------
1 | // This file is used by Code Analysis to maintain SuppressMessage
2 | // attributes that are applied to this project.
3 | // Project-level suppressions either have no target or are given
4 | // a specific target and scoped to a namespace, type, member, etc.
5 |
6 | using System.Diagnostics.CodeAnalysis;
7 |
8 | [assembly: SuppressMessage("Interoperability", "CA1416:Validate platform compatibility", Justification = "", Scope = "member", Target = "~M:BrightIdeasSoftware.ObjectListView.HandleChar(System.Windows.Forms.Message@)~System.Boolean")]
9 |
--------------------------------------------------------------------------------
/source/ObjectListView/Properties/PublishProfiles/FolderProfile.pubxml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 | Release
8 | Any CPU
9 | FileSystem
10 | net6.0-windows10.0.18362.0
11 | win-x64
12 | true
13 | False
14 | True
15 | False
16 |
17 |
--------------------------------------------------------------------------------
/source/ObjectListView/Resources/clear-filter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/ObjectListView/Resources/clear-filter.png
--------------------------------------------------------------------------------
/source/ObjectListView/Resources/coffee.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/ObjectListView/Resources/coffee.jpg
--------------------------------------------------------------------------------
/source/ObjectListView/Resources/filter-icons3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/ObjectListView/Resources/filter-icons3.png
--------------------------------------------------------------------------------
/source/ObjectListView/Resources/filter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/ObjectListView/Resources/filter.png
--------------------------------------------------------------------------------
/source/ObjectListView/Resources/sort-ascending.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/ObjectListView/Resources/sort-ascending.png
--------------------------------------------------------------------------------
/source/ObjectListView/Resources/sort-descending.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Klocman/Bulk-Crap-Uninstaller/47e0afc0968776ff8df9c6d1d353e75e66657a5f/source/ObjectListView/Resources/sort-descending.png
--------------------------------------------------------------------------------
/source/OculusHelper/OculusApp.cs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2018 Marcin Szeniak (https://github.com/Klocman/)
3 | Apache License Version 2.0
4 | */
5 |
6 | namespace OculusHelper
7 | {
8 | internal class OculusApp
9 | {
10 | public OculusApp(string canonicalName, string version, bool isCore, string installLocation, string launchFile)
11 | {
12 | CanonicalName = canonicalName;
13 | Version = version;
14 | IsCore = isCore;
15 | InstallLocation = installLocation;
16 | LaunchFile = launchFile;
17 | }
18 |
19 | public string CanonicalName { get; }
20 | public string Version { get; }
21 | public bool IsCore { get; }
22 | public string InstallLocation { get; }
23 | public string LaunchFile { get; }
24 | }
25 | }
--------------------------------------------------------------------------------
/source/OculusHelper/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2018 Marcin Szeniak (https://github.com/Klocman/)
3 | Apache License Version 2.0
4 | */
5 |
6 | using System.Reflection;
7 | using System.Runtime.InteropServices;
8 |
9 | // General Information about an assembly is controlled through the following
10 | // set of attributes. Change these attribute values to modify the information
11 | // associated with an assembly.
12 | [assembly: AssemblyTitle("OculusHelper")]
13 | [assembly: AssemblyDescription("Manages applications installed through the Oculus store.")]
14 | [assembly: AssemblyProduct("OculusHelper")]
15 |
16 | // Setting ComVisible to false makes the types in this assembly not visible
17 | // to COM components. If you need to access a type in this assembly from
18 | // COM, set the ComVisible attribute to true on that type.
19 | [assembly: ComVisible(false)]
20 |
21 | // The following GUID is for the ID of the typelib if this project is exposed to COM
22 | [assembly: Guid("319c4596-0ee6-4392-9d7b-f937794133c7")]
--------------------------------------------------------------------------------
/source/OculusHelper/Properties/PublishProfiles/FolderProfile.pubxml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 | Release
8 | Any CPU
9 | FileSystem
10 | net6.0-windows10.0.18362.0
11 | win-x64
12 | true
13 | False
14 | True
15 | False
16 |
17 |
--------------------------------------------------------------------------------
/source/PortableSettingsProvider/Properties/PublishProfiles/FolderProfile.pubxml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 | Release
8 | Any CPU
9 | FileSystem
10 | net6.0-windows10.0.18362.0
11 | win-x64
12 | true
13 | False
14 | True
15 | False
16 |
17 |
--------------------------------------------------------------------------------
/source/PortableSettingsProvider/U3SettingsProvider.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace PortableSettingsProvider
4 | {
5 | public class U3SettingsProvider : PortableSettingsProvider
6 | {
7 | private const string U3APPDATAPATH = "U3_APP_DATA_PATH";
8 |
9 | public override string GetAppSettingsPath()
10 | {
11 | // Get the environment variable set by the U3 application for a pointer to its data
12 | try
13 | {
14 | return Environment.GetEnvironmentVariable(U3APPDATAPATH);
15 | }
16 | catch (Exception)
17 | {
18 | // Not running in a U3 environment, just return the application path
19 |
20 | return base.GetAppSettingsPath();
21 | }
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/source/ScriptHelper/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2018 Marcin Szeniak (https://github.com/Klocman/)
3 | Apache License Version 2.0
4 | */
5 |
6 | using System.Reflection;
7 | using System.Runtime.InteropServices;
8 |
9 | // General Information about an assembly is controlled through the following
10 | // set of attributes. Change these attribute values to modify the information
11 | // associated with an assembly.
12 | [assembly: AssemblyTitle("ScriptHelper")]
13 | [assembly: AssemblyDescription("Manages BCU's pre-defined rules and scripts.")]
14 | [assembly: AssemblyProduct("ScriptHelper")]
15 |
16 | // Setting ComVisible to false makes the types in this assembly not visible
17 | // to COM components. If you need to access a type in this assembly from
18 | // COM, set the ComVisible attribute to true on that type.
19 | [assembly: ComVisible(false)]
20 |
21 | // The following GUID is for the ID of the typelib if this project is exposed to COM
22 | [assembly: Guid("fa4f2993-a7f5-4738-9fe1-81f34db032a7")]
--------------------------------------------------------------------------------
/source/ScriptHelper/Properties/PublishProfiles/FolderProfile.pubxml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 | Release
8 | Any CPU
9 | FileSystem
10 | net6.0-windows10.0.18362.0
11 | win-x64
12 | true
13 | False
14 | True
15 | False
16 |
17 |
--------------------------------------------------------------------------------
/source/ScriptHelper/Properties/launchSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "profiles": {
3 | "ScriptHelper": {
4 | "commandName": "Project",
5 | "commandLineArgs": "list"
6 | },
7 | "newProfile1": {
8 | "commandName": "Project",
9 | "commandLineArgs": "uninstall Tweak-Showing3DObjectsUnderThisPC"
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/source/SimpleTreeMap/Element.cs:
--------------------------------------------------------------------------------
1 | using System.Drawing;
2 |
3 | namespace SimpleTreeMap
4 | {
5 | public class Element
6 | {
7 | public T Object { get; set; }
8 |
9 | public double Value { get; set; }
10 |
11 | public Color Color { get; set; }
12 | public string Text { get; set; }
13 | }
14 | }
--------------------------------------------------------------------------------
/source/SimpleTreeMap/Properties/PublishProfiles/FolderProfile.pubxml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 | Release
8 | Any CPU
9 | FileSystem
10 | net6.0-windows10.0.18362.0
11 | win-x64
12 | true
13 | False
14 | True
15 | False
16 |
17 |
--------------------------------------------------------------------------------
/source/SimpleTreeMap/Slice.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using System.Linq;
3 |
4 | namespace SimpleTreeMap
5 | {
6 | public class Slice
7 | {
8 | public ICollection> Elements { get; set; }
9 |
10 | public double Size { get; set; }
11 |
12 | public ICollection> SubSlices { get; set; }
13 |
14 | public string ToElementNames()
15 | {
16 | return string.Join("\n", Elements.Select(x => x.Text).ToArray());
17 | }
18 | }
19 | }
--------------------------------------------------------------------------------
/source/SimpleTreeMap/SliceRectangle.cs:
--------------------------------------------------------------------------------
1 | using System.Drawing;
2 |
3 | namespace SimpleTreeMap
4 | {
5 | public class SliceRectangle
6 | {
7 | public int Height { get; set; }
8 |
9 | public Slice Slice { get; set; }
10 |
11 | public int Width { get; set; }
12 |
13 | public int X { get; set; }
14 |
15 | public int Y { get; set; }
16 | public Rectangle PaintRect { get; set; }
17 |
18 | public bool Contains(Point p)
19 | {
20 | return p.X >= X && p.X <= X + Width && p.Y >= Y && p.Y <= Y + Height;
21 | }
22 | }
23 | }
--------------------------------------------------------------------------------
/source/SimpleTreeMap/SliceResult.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace SimpleTreeMap
4 | {
5 | public class SliceResult
6 | {
7 | public ICollection> Elements { get; set; }
8 |
9 | public double ElementsSize { get; set; }
10 |
11 | public ICollection> RemainingElements { get; set; }
12 | }
13 | }
--------------------------------------------------------------------------------
/source/SimpleTreeMapTests/Form1.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using System.Windows.Forms;
3 |
4 | namespace SimpleTreeMapTests
5 | {
6 | public partial class Form1 : Form
7 | {
8 | public Form1()
9 | {
10 | InitializeComponent();
11 |
12 | treeMap1.ObjectNameGetter = o => o.ToString();
13 | treeMap1.ObjectValueGetter = o => (int)o;
14 | treeMap1.Populate(new [] {10,9,8,7,6,5,3,3,3,1}.Cast