mirror of
https://github.com/builtbybel/BloatyNosy.git
synced 2024-11-25 09:23:50 +01:00
More to add (just finished)
This commit is contained in:
parent
e99ec1c7d9
commit
26d90bd271
49
src/BloatyNosy.sln
Normal file
49
src/BloatyNosy.sln
Normal file
@ -0,0 +1,49 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.1.32210.238
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BloatyNosy", "BloatyNosy\BloatyNosy.csproj", "{44CAFCEB-0F6D-487F-9F5F-63F230DBB069}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Debug|ARM = Debug|ARM
|
||||
Debug|ARM64 = Debug|ARM64
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|Any CPU = Release|Any CPU
|
||||
Release|ARM = Release|ARM
|
||||
Release|ARM64 = Release|ARM64
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{44CAFCEB-0F6D-487F-9F5F-63F230DBB069}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{44CAFCEB-0F6D-487F-9F5F-63F230DBB069}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{44CAFCEB-0F6D-487F-9F5F-63F230DBB069}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{44CAFCEB-0F6D-487F-9F5F-63F230DBB069}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{44CAFCEB-0F6D-487F-9F5F-63F230DBB069}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{44CAFCEB-0F6D-487F-9F5F-63F230DBB069}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{44CAFCEB-0F6D-487F-9F5F-63F230DBB069}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{44CAFCEB-0F6D-487F-9F5F-63F230DBB069}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{44CAFCEB-0F6D-487F-9F5F-63F230DBB069}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{44CAFCEB-0F6D-487F-9F5F-63F230DBB069}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{44CAFCEB-0F6D-487F-9F5F-63F230DBB069}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{44CAFCEB-0F6D-487F-9F5F-63F230DBB069}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{44CAFCEB-0F6D-487F-9F5F-63F230DBB069}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{44CAFCEB-0F6D-487F-9F5F-63F230DBB069}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{44CAFCEB-0F6D-487F-9F5F-63F230DBB069}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{44CAFCEB-0F6D-487F-9F5F-63F230DBB069}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{44CAFCEB-0F6D-487F-9F5F-63F230DBB069}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{44CAFCEB-0F6D-487F-9F5F-63F230DBB069}.Release|x64.Build.0 = Release|Any CPU
|
||||
{44CAFCEB-0F6D-487F-9F5F-63F230DBB069}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{44CAFCEB-0F6D-487F-9F5F-63F230DBB069}.Release|x86.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {8E4625AD-7C1B-4CFB-8374-5F44D4508DBA}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
6
src/BloatyNosy/App.config
Normal file
6
src/BloatyNosy/App.config
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
|
||||
</startup>
|
||||
</configuration>
|
BIN
src/BloatyNosy/AppIcon.ico
Normal file
BIN
src/BloatyNosy/AppIcon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 66 KiB |
BIN
src/BloatyNosy/AppLogo.png
Normal file
BIN
src/BloatyNosy/AppLogo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.6 KiB |
239
src/BloatyNosy/BloatyNosy.csproj
Normal file
239
src/BloatyNosy/BloatyNosy.csproj
Normal file
@ -0,0 +1,239 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{44CAFCEB-0F6D-487F-9F5F-63F230DBB069}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<RootNamespace>BloatyNosy</RootNamespace>
|
||||
<AssemblyName>BloatyNosy</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<Deterministic>true</Deterministic>
|
||||
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||
<PublishUrl>publish\</PublishUrl>
|
||||
<Install>true</Install>
|
||||
<InstallFrom>Disk</InstallFrom>
|
||||
<UpdateEnabled>false</UpdateEnabled>
|
||||
<UpdateMode>Foreground</UpdateMode>
|
||||
<UpdateInterval>7</UpdateInterval>
|
||||
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
|
||||
<UpdatePeriodically>false</UpdatePeriodically>
|
||||
<UpdateRequired>false</UpdateRequired>
|
||||
<MapFileExtensions>true</MapFileExtensions>
|
||||
<ApplicationRevision>0</ApplicationRevision>
|
||||
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||
<UseApplicationTrust>false</UseApplicationTrust>
|
||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup />
|
||||
<PropertyGroup>
|
||||
<StartupObject />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ApplicationManifest>app.manifest</ApplicationManifest>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ApplicationIcon>AppIcon.ico</ApplicationIcon>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Management.Automation, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\..\Windows\Microsoft.NET\assembly\GAC_MSIL\System.Management.Automation\v4.0_3.0.0.0__31bf3856ad364e35\System.Management.Automation.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="FeatureBase.cs" />
|
||||
<Compile Include="FeatureNode.cs" />
|
||||
<Compile Include="Features\Browser\GoogleChrome.cs" />
|
||||
<Compile Include="Features\Browser\MozillaFirefox.cs" />
|
||||
<Compile Include="Features\Desktop\AppsTheme.cs" />
|
||||
<Compile Include="Features\Desktop\SnapAssistFlyout.cs" />
|
||||
<Compile Include="Features\Desktop\Stickers.cs" />
|
||||
<Compile Include="Features\Desktop\Transparency.cs" />
|
||||
<Compile Include="Features\Desktop\Widgets.cs" />
|
||||
<Compile Include="Features\Desktop\WidgetsR.cs" />
|
||||
<Compile Include="Features\Desktop\WindowsTheme.cs" />
|
||||
<Compile Include="Features\Explorer\FileExplorer.cs" />
|
||||
<Compile Include="Features\Explorer\HiddenFileExt.cs" />
|
||||
<Compile Include="Features\Explorer\HiddenFileFolder.cs" />
|
||||
<Compile Include="Features\Recommendation\EnableWSL.cs" />
|
||||
<Compile Include="Features\Gaming\GameDVR.cs" />
|
||||
<Compile Include="Features\Gaming\PowerThrottling.cs" />
|
||||
<Compile Include="Features\Gaming\VisualFX.cs" />
|
||||
<Compile Include="Features\Privacy\Advertising.cs" />
|
||||
<Compile Include="Features\Privacy\AppsAutoInstall.cs" />
|
||||
<Compile Include="Features\Privacy\Biometrics.cs" />
|
||||
<Compile Include="Features\Privacy\CompatibilityTelemetry.cs" />
|
||||
<Compile Include="Features\Privacy\DiagnosticData.cs" />
|
||||
<Compile Include="Features\Privacy\Feedback.cs" />
|
||||
<Compile Include="Features\Privacy\LocationTracking.cs" />
|
||||
<Compile Include="Features\Privacy\SuggestedContent.cs" />
|
||||
<Compile Include="Features\Privacy\TailoredExperiences.cs" />
|
||||
<Compile Include="Features\Privacy\Telemetry.cs" />
|
||||
<Compile Include="Features\Privacy\WindowsTips.cs" />
|
||||
<Compile Include="Features\Apps\StoreApps.cs" />
|
||||
<Compile Include="Features\Apps\StoreAppsEngine.cs" />
|
||||
<Compile Include="Features\System\FaxPrinter.cs" />
|
||||
<Compile Include="Features\System\FullContextMenus.cs" />
|
||||
<Compile Include="Features\System\OneDriveR.cs" />
|
||||
<Compile Include="Features\System\RemoveW11Watermark.cs" />
|
||||
<Compile Include="Features\System\TeamsAutostart.cs" />
|
||||
<Compile Include="Features\System\TPMCheck.cs" />
|
||||
<Compile Include="Features\System\XPSWriter.cs" />
|
||||
<Compile Include="Features\Taskbar\MostUsedApps.cs" />
|
||||
<Compile Include="Features\Taskbar\StartmenuLayout.cs" />
|
||||
<Compile Include="Features\Taskbar\TaskbarChat.cs" />
|
||||
<Compile Include="Features\Taskbar\TaskbarSearch.cs" />
|
||||
<Compile Include="Features\Taskbar\TaskView.cs" />
|
||||
<Compile Include="Helpers\ErrorHelper.cs" />
|
||||
<Compile Include="Helpers\HelperTool.cs" />
|
||||
<Compile Include="Helpers\OsHelper.cs" />
|
||||
<Compile Include="ITreeNode.cs" />
|
||||
<Compile Include="Helpers\RegistryHelper.cs" />
|
||||
<Compile Include="MainForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="MainForm.Designer.cs">
|
||||
<DependentUpon>MainForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Modules\Setup\Pages.cs" />
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Views\AboutPageView.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Views\AboutPageView.Designer.cs">
|
||||
<DependentUpon>AboutPageView.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Views\AppsPageView.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Views\AppsPageView.Designer.cs">
|
||||
<DependentUpon>AppsPageView.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Modules\WinModder\ModsParser.cs" />
|
||||
<Compile Include="Modules\WinModder\ModsManifest.cs" />
|
||||
<Compile Include="Views\ModsPageView.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Views\ModsPageView.Designer.cs">
|
||||
<DependentUpon>ModsPageView.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Views\PackagesPageView.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Views\PackagesPageView.Designer.cs">
|
||||
<DependentUpon>PackagesPageView.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Helpers\WindowsHelper.cs" />
|
||||
<Compile Include="Views\IModsPageView.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Views\IModsPageView.Designer.cs">
|
||||
<DependentUpon>IModsPageView.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Views\SetupPageView.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Views\SetupPageView.Designer.cs">
|
||||
<DependentUpon>SetupPageView.cs</DependentUpon>
|
||||
</Compile>
|
||||
<EmbeddedResource Include="MainForm.resx">
|
||||
<DependentUpon>MainForm.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
<DesignTime>True</DesignTime>
|
||||
</Compile>
|
||||
<EmbeddedResource Include="Views\AboutPageView.resx">
|
||||
<DependentUpon>AboutPageView.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Views\AppsPageView.resx">
|
||||
<DependentUpon>AppsPageView.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Views\ModsPageView.resx">
|
||||
<DependentUpon>ModsPageView.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Views\PackagesPageView.resx">
|
||||
<DependentUpon>PackagesPageView.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Views\IModsPageView.resx">
|
||||
<DependentUpon>IModsPageView.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Views\SetupPageView.resx">
|
||||
<DependentUpon>SetupPageView.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<None Include="app.manifest" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="AppIcon.ico" />
|
||||
<Content Include="Resources\systemApps.txt" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<BootstrapperPackage Include=".NETFramework,Version=v4.8">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>Microsoft .NET Framework 4.8 %28x86 und x64%29</ProductName>
|
||||
<Install>true</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5 SP1</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
13
src/BloatyNosy/BloatyNosy.csproj.user
Normal file
13
src/BloatyNosy/BloatyNosy.csproj.user
Normal file
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<PublishUrlHistory />
|
||||
<InstallUrlHistory />
|
||||
<SupportUrlHistory />
|
||||
<UpdateUrlHistory />
|
||||
<BootstrapperUrlHistory />
|
||||
<ErrorReportUrlHistory />
|
||||
<FallbackCulture>de-DE</FallbackCulture>
|
||||
<VerifyUploadedFiles>false</VerifyUploadedFiles>
|
||||
</PropertyGroup>
|
||||
</Project>
|
35
src/BloatyNosy/FeatureBase.cs
Normal file
35
src/BloatyNosy/FeatureBase.cs
Normal file
@ -0,0 +1,35 @@
|
||||
namespace Features.Feature
|
||||
{
|
||||
public abstract class FeatureBase
|
||||
{
|
||||
/// <summary>
|
||||
/// Name of Feature
|
||||
/// </summary>
|
||||
/// <returns>The feature name</returns>
|
||||
public abstract string ID();
|
||||
|
||||
/// <summary>
|
||||
/// Tooltip text of sssessments
|
||||
/// </summary>
|
||||
/// <returns>The feature tooltip</returns>
|
||||
public abstract string Info();
|
||||
|
||||
/// <summary>
|
||||
/// Checks whether Features should be applied
|
||||
/// </summary>
|
||||
/// <returns>Returns true if the feature should be applied, false otherwise.</returns>
|
||||
public abstract bool CheckFeature();
|
||||
|
||||
/// <summary>
|
||||
/// Do the Feature
|
||||
/// </summary>
|
||||
/// <returns>Returns true if the feature was successfull, false otherwise.</returns>
|
||||
public abstract bool DoFeature();
|
||||
|
||||
/// <summary>
|
||||
/// Undo the Feature
|
||||
/// </summary>
|
||||
/// <returns>Returns true if the feature was successfull, false otherwise.</returns>
|
||||
public abstract bool UndoFeature();
|
||||
}
|
||||
}
|
17
src/BloatyNosy/FeatureNode.cs
Normal file
17
src/BloatyNosy/FeatureNode.cs
Normal file
@ -0,0 +1,17 @@
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Features.Feature
|
||||
{
|
||||
internal class FeatureNode : TreeNode
|
||||
{
|
||||
public FeatureBase Feature { get; }
|
||||
|
||||
public FeatureNode(FeatureBase feature)
|
||||
{
|
||||
Feature = feature;
|
||||
Text = Feature.ID();
|
||||
ToolTipText = Feature.Info();
|
||||
Checked = true;
|
||||
}
|
||||
}
|
||||
}
|
24
src/BloatyNosy/ITreeNode.cs
Normal file
24
src/BloatyNosy/ITreeNode.cs
Normal file
@ -0,0 +1,24 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace BloatyNosy.ITreeNode
|
||||
{
|
||||
public static class ITreeNode
|
||||
{
|
||||
public static IEnumerable<TreeNode> All(this TreeNodeCollection nodes)
|
||||
{
|
||||
if (nodes == null) throw new ArgumentNullException(nameof(nodes));
|
||||
|
||||
foreach (TreeNode n in nodes)
|
||||
{
|
||||
yield return n;
|
||||
|
||||
foreach (TreeNode child in n.Nodes.All())
|
||||
{
|
||||
yield return child;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
437
src/BloatyNosy/MainForm.Designer.cs
generated
Normal file
437
src/BloatyNosy/MainForm.Designer.cs
generated
Normal file
@ -0,0 +1,437 @@
|
||||
namespace BloatyNosy
|
||||
{
|
||||
partial class MainForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Erforderliche Designervariable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Verwendete Ressourcen bereinigen.
|
||||
/// </summary>
|
||||
/// <param name="disposing">True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Vom Windows Form-Designer generierter Code
|
||||
|
||||
/// <summary>
|
||||
/// Erforderliche Methode für die Designerunterstützung.
|
||||
/// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
this.pnlForm = new System.Windows.Forms.Panel();
|
||||
this.pnlMain = new System.Windows.Forms.Panel();
|
||||
this.lnkRunSetup = new System.Windows.Forms.LinkLabel();
|
||||
this.btnAppOptions = new System.Windows.Forms.Button();
|
||||
this.btnSettings = new System.Windows.Forms.Button();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.btnKebapMenu = new System.Windows.Forms.Button();
|
||||
this.btnAnalyze = new System.Windows.Forms.Button();
|
||||
this.lnkSubHeader = new System.Windows.Forms.LinkLabel();
|
||||
this.progress = new System.Windows.Forms.ProgressBar();
|
||||
this.lblTools = new System.Windows.Forms.Label();
|
||||
this.cmbTools = new System.Windows.Forms.ComboBox();
|
||||
this.lblHeader = new System.Windows.Forms.Label();
|
||||
this.rtbLog = new System.Windows.Forms.RichTextBox();
|
||||
this.tvwFeatures = new System.Windows.Forms.TreeView();
|
||||
this.contextKebapMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.menuAdvanced = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.menuIgnoreLowLevelP = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.menuImportProfile = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.menuExportProfile = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.contextAppMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.menuFix = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.menuFixInfo = new System.Windows.Forms.ToolStripTextBox();
|
||||
this.menuRestore = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.menuRestoreInfo = new System.Windows.Forms.ToolStripTextBox();
|
||||
this.pnlForm.SuspendLayout();
|
||||
this.pnlMain.SuspendLayout();
|
||||
this.contextKebapMenu.SuspendLayout();
|
||||
this.contextAppMenu.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// pnlForm
|
||||
//
|
||||
this.pnlForm.AutoScroll = true;
|
||||
this.pnlForm.Controls.Add(this.pnlMain);
|
||||
this.pnlForm.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.pnlForm.Location = new System.Drawing.Point(0, 0);
|
||||
this.pnlForm.Name = "pnlForm";
|
||||
this.pnlForm.Size = new System.Drawing.Size(1019, 801);
|
||||
this.pnlForm.TabIndex = 0;
|
||||
//
|
||||
// pnlMain
|
||||
//
|
||||
this.pnlMain.AutoScroll = true;
|
||||
this.pnlMain.Controls.Add(this.lnkRunSetup);
|
||||
this.pnlMain.Controls.Add(this.btnAppOptions);
|
||||
this.pnlMain.Controls.Add(this.btnSettings);
|
||||
this.pnlMain.Controls.Add(this.label1);
|
||||
this.pnlMain.Controls.Add(this.btnKebapMenu);
|
||||
this.pnlMain.Controls.Add(this.btnAnalyze);
|
||||
this.pnlMain.Controls.Add(this.lnkSubHeader);
|
||||
this.pnlMain.Controls.Add(this.progress);
|
||||
this.pnlMain.Controls.Add(this.lblTools);
|
||||
this.pnlMain.Controls.Add(this.cmbTools);
|
||||
this.pnlMain.Controls.Add(this.lblHeader);
|
||||
this.pnlMain.Controls.Add(this.rtbLog);
|
||||
this.pnlMain.Controls.Add(this.tvwFeatures);
|
||||
this.pnlMain.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.pnlMain.Location = new System.Drawing.Point(0, 0);
|
||||
this.pnlMain.Name = "pnlMain";
|
||||
this.pnlMain.Size = new System.Drawing.Size(1019, 801);
|
||||
this.pnlMain.TabIndex = 0;
|
||||
//
|
||||
// lnkRunSetup
|
||||
//
|
||||
this.lnkRunSetup.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.lnkRunSetup.AutoSize = true;
|
||||
this.lnkRunSetup.Font = new System.Drawing.Font("Segoe UI Variable Text", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lnkRunSetup.Location = new System.Drawing.Point(704, 764);
|
||||
this.lnkRunSetup.Name = "lnkRunSetup";
|
||||
this.lnkRunSetup.Size = new System.Drawing.Size(229, 15);
|
||||
this.lnkRunSetup.TabIndex = 179;
|
||||
this.lnkRunSetup.TabStop = true;
|
||||
this.lnkRunSetup.Text = "I want to set up Windows 11 for the first time...";
|
||||
this.lnkRunSetup.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lnkRunSetup_LinkClicked);
|
||||
//
|
||||
// btnAppOptions
|
||||
//
|
||||
this.btnAppOptions.AutoEllipsis = true;
|
||||
this.btnAppOptions.BackColor = System.Drawing.Color.MediumVioletRed;
|
||||
this.btnAppOptions.FlatAppearance.BorderSize = 0;
|
||||
this.btnAppOptions.Font = new System.Drawing.Font("Segoe Fluent Icons", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnAppOptions.ForeColor = System.Drawing.Color.White;
|
||||
this.btnAppOptions.Location = new System.Drawing.Point(350, 213);
|
||||
this.btnAppOptions.Name = "btnAppOptions";
|
||||
this.btnAppOptions.Size = new System.Drawing.Size(54, 42);
|
||||
this.btnAppOptions.TabIndex = 178;
|
||||
this.btnAppOptions.Text = "...";
|
||||
this.btnAppOptions.UseVisualStyleBackColor = false;
|
||||
this.btnAppOptions.Click += new System.EventHandler(this.btnAppOptions_Click);
|
||||
//
|
||||
// btnSettings
|
||||
//
|
||||
this.btnSettings.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnSettings.FlatAppearance.BorderSize = 0;
|
||||
this.btnSettings.FlatAppearance.MouseOverBackColor = System.Drawing.Color.WhiteSmoke;
|
||||
this.btnSettings.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnSettings.Font = new System.Drawing.Font("Segoe Fluent Icons", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnSettings.ForeColor = System.Drawing.Color.MediumVioletRed;
|
||||
this.btnSettings.Location = new System.Drawing.Point(965, 751);
|
||||
this.btnSettings.Name = "btnSettings";
|
||||
this.btnSettings.Size = new System.Drawing.Size(42, 38);
|
||||
this.btnSettings.TabIndex = 177;
|
||||
this.btnSettings.Text = "...";
|
||||
this.btnSettings.UseVisualStyleBackColor = true;
|
||||
this.btnSettings.Click += new System.EventHandler(this.btnSettings_Click);
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.label1.AutoEllipsis = true;
|
||||
this.label1.Font = new System.Drawing.Font("Segoe UI Variable Text Semibold", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.label1.Location = new System.Drawing.Point(47, 49);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(532, 43);
|
||||
this.label1.TabIndex = 176;
|
||||
this.label1.Text = "Welcome to the new era of Windows debloating";
|
||||
//
|
||||
// btnKebapMenu
|
||||
//
|
||||
this.btnKebapMenu.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnKebapMenu.FlatAppearance.BorderSize = 0;
|
||||
this.btnKebapMenu.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnKebapMenu.Font = new System.Drawing.Font("Segoe Fluent Icons", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnKebapMenu.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.btnKebapMenu.Location = new System.Drawing.Point(977, 0);
|
||||
this.btnKebapMenu.Name = "btnKebapMenu";
|
||||
this.btnKebapMenu.Size = new System.Drawing.Size(42, 38);
|
||||
this.btnKebapMenu.TabIndex = 175;
|
||||
this.btnKebapMenu.Text = "...";
|
||||
this.btnKebapMenu.UseVisualStyleBackColor = true;
|
||||
this.btnKebapMenu.Click += new System.EventHandler(this.btnMenu_Click);
|
||||
//
|
||||
// btnAnalyze
|
||||
//
|
||||
this.btnAnalyze.AutoEllipsis = true;
|
||||
this.btnAnalyze.BackColor = System.Drawing.Color.MediumVioletRed;
|
||||
this.btnAnalyze.FlatAppearance.BorderSize = 0;
|
||||
this.btnAnalyze.Font = new System.Drawing.Font("Segoe UI Variable Text Semibold", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnAnalyze.ForeColor = System.Drawing.Color.White;
|
||||
this.btnAnalyze.Location = new System.Drawing.Point(71, 213);
|
||||
this.btnAnalyze.Name = "btnAnalyze";
|
||||
this.btnAnalyze.Size = new System.Drawing.Size(286, 42);
|
||||
this.btnAnalyze.TabIndex = 27;
|
||||
this.btnAnalyze.Text = "Analyze";
|
||||
this.btnAnalyze.UseVisualStyleBackColor = false;
|
||||
this.btnAnalyze.Click += new System.EventHandler(this.btnAnalyze_Click);
|
||||
//
|
||||
// lnkSubHeader
|
||||
//
|
||||
this.lnkSubHeader.ActiveLinkColor = System.Drawing.Color.MediumVioletRed;
|
||||
this.lnkSubHeader.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.lnkSubHeader.AutoEllipsis = true;
|
||||
this.lnkSubHeader.Font = new System.Drawing.Font("Segoe UI Variable Text Semibold", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lnkSubHeader.ForeColor = System.Drawing.Color.Black;
|
||||
this.lnkSubHeader.ImeMode = System.Windows.Forms.ImeMode.NoControl;
|
||||
this.lnkSubHeader.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
|
||||
this.lnkSubHeader.LinkColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.lnkSubHeader.Location = new System.Drawing.Point(71, 679);
|
||||
this.lnkSubHeader.Name = "lnkSubHeader";
|
||||
this.lnkSubHeader.Size = new System.Drawing.Size(795, 18);
|
||||
this.lnkSubHeader.TabIndex = 171;
|
||||
this.lnkSubHeader.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lnkSubHeader_LinkClicked);
|
||||
//
|
||||
// progress
|
||||
//
|
||||
this.progress.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.progress.Location = new System.Drawing.Point(72, 285);
|
||||
this.progress.Name = "progress";
|
||||
this.progress.Size = new System.Drawing.Size(856, 5);
|
||||
this.progress.TabIndex = 166;
|
||||
this.progress.Visible = false;
|
||||
//
|
||||
// lblTools
|
||||
//
|
||||
this.lblTools.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.lblTools.AutoSize = true;
|
||||
this.lblTools.Font = new System.Drawing.Font("Segoe UI Variable Text", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblTools.ForeColor = System.Drawing.Color.DeepPink;
|
||||
this.lblTools.Location = new System.Drawing.Point(32, 749);
|
||||
this.lblTools.Name = "lblTools";
|
||||
this.lblTools.Size = new System.Drawing.Size(38, 30);
|
||||
this.lblTools.TabIndex = 25;
|
||||
this.lblTools.Text = "More\r\nApps!";
|
||||
//
|
||||
// cmbTools
|
||||
//
|
||||
this.cmbTools.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.cmbTools.BackColor = System.Drawing.Color.WhiteSmoke;
|
||||
this.cmbTools.DropDownHeight = 200;
|
||||
this.cmbTools.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.cmbTools.Font = new System.Drawing.Font("Segoe UI Variable Text Semiligh", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.cmbTools.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.cmbTools.FormattingEnabled = true;
|
||||
this.cmbTools.IntegralHeight = false;
|
||||
this.cmbTools.ItemHeight = 21;
|
||||
this.cmbTools.Location = new System.Drawing.Point(75, 750);
|
||||
this.cmbTools.Name = "cmbTools";
|
||||
this.cmbTools.Size = new System.Drawing.Size(338, 29);
|
||||
this.cmbTools.TabIndex = 19;
|
||||
this.cmbTools.SelectedIndexChanged += new System.EventHandler(this.cmbTools_SelectedIndexChanged);
|
||||
//
|
||||
// lblHeader
|
||||
//
|
||||
this.lblHeader.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.lblHeader.AutoEllipsis = true;
|
||||
this.lblHeader.Font = new System.Drawing.Font("Segoe UI Variable Text Semiligh", 12.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblHeader.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.lblHeader.Location = new System.Drawing.Point(69, 112);
|
||||
this.lblHeader.Name = "lblHeader";
|
||||
this.lblHeader.Size = new System.Drawing.Size(843, 59);
|
||||
this.lblHeader.TabIndex = 16;
|
||||
this.lblHeader.Text = "Windows 11 is too bloaty && nosey and has some annoying features that just need t" +
|
||||
"o go.\r\nThis app will scan your system and inform you which features it likes or " +
|
||||
"dislikes in your configuration.";
|
||||
//
|
||||
// rtbLog
|
||||
//
|
||||
this.rtbLog.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.rtbLog.BackColor = System.Drawing.Color.White;
|
||||
this.rtbLog.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.rtbLog.Cursor = System.Windows.Forms.Cursors.IBeam;
|
||||
this.rtbLog.Font = new System.Drawing.Font("Segoe UI Variable Text Semiligh", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.rtbLog.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.rtbLog.HideSelection = false;
|
||||
this.rtbLog.Location = new System.Drawing.Point(72, 305);
|
||||
this.rtbLog.Name = "rtbLog";
|
||||
this.rtbLog.ReadOnly = true;
|
||||
this.rtbLog.Size = new System.Drawing.Size(861, 360);
|
||||
this.rtbLog.TabIndex = 138;
|
||||
this.rtbLog.Text = "";
|
||||
this.rtbLog.Visible = false;
|
||||
this.rtbLog.LinkClicked += new System.Windows.Forms.LinkClickedEventHandler(this.richLog_LinkClicked);
|
||||
//
|
||||
// tvwFeatures
|
||||
//
|
||||
this.tvwFeatures.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.tvwFeatures.BackColor = System.Drawing.Color.White;
|
||||
this.tvwFeatures.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.tvwFeatures.CheckBoxes = true;
|
||||
this.tvwFeatures.Font = new System.Drawing.Font("Segoe UI Variable Text", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.tvwFeatures.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.tvwFeatures.FullRowSelect = true;
|
||||
this.tvwFeatures.ItemHeight = 30;
|
||||
this.tvwFeatures.LineColor = System.Drawing.Color.HotPink;
|
||||
this.tvwFeatures.Location = new System.Drawing.Point(72, 305);
|
||||
this.tvwFeatures.Name = "tvwFeatures";
|
||||
this.tvwFeatures.ShowLines = false;
|
||||
this.tvwFeatures.ShowNodeToolTips = true;
|
||||
this.tvwFeatures.ShowRootLines = false;
|
||||
this.tvwFeatures.Size = new System.Drawing.Size(858, 360);
|
||||
this.tvwFeatures.TabIndex = 168;
|
||||
this.tvwFeatures.Visible = false;
|
||||
this.tvwFeatures.AfterCheck += new System.Windows.Forms.TreeViewEventHandler(this.treeFeatures_AfterCheck);
|
||||
//
|
||||
// contextKebapMenu
|
||||
//
|
||||
this.contextKebapMenu.BackColor = System.Drawing.SystemColors.Control;
|
||||
this.contextKebapMenu.Font = new System.Drawing.Font("Segoe UI Variable Text Semiligh", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.contextKebapMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.menuAdvanced,
|
||||
this.menuIgnoreLowLevelP,
|
||||
this.menuImportProfile,
|
||||
this.menuExportProfile});
|
||||
this.contextKebapMenu.Name = "menuMain";
|
||||
this.contextKebapMenu.RenderMode = System.Windows.Forms.ToolStripRenderMode.System;
|
||||
this.contextKebapMenu.Size = new System.Drawing.Size(259, 108);
|
||||
//
|
||||
// menuAdvanced
|
||||
//
|
||||
this.menuAdvanced.Name = "menuAdvanced";
|
||||
this.menuAdvanced.Size = new System.Drawing.Size(258, 26);
|
||||
this.menuAdvanced.Text = "Advanced mode";
|
||||
this.menuAdvanced.Click += new System.EventHandler(this.menuAdvanced_Click);
|
||||
//
|
||||
// menuIgnoreLowLevelP
|
||||
//
|
||||
this.menuIgnoreLowLevelP.Name = "menuIgnoreLowLevelP";
|
||||
this.menuIgnoreLowLevelP.Size = new System.Drawing.Size(258, 26);
|
||||
this.menuIgnoreLowLevelP.Text = "Ignore Low level problems";
|
||||
this.menuIgnoreLowLevelP.TextDirection = System.Windows.Forms.ToolStripTextDirection.Horizontal;
|
||||
this.menuIgnoreLowLevelP.Click += new System.EventHandler(this.menuIgnoreLowLevelP_Click);
|
||||
//
|
||||
// menuImportProfile
|
||||
//
|
||||
this.menuImportProfile.Name = "menuImportProfile";
|
||||
this.menuImportProfile.Size = new System.Drawing.Size(258, 26);
|
||||
this.menuImportProfile.Text = "Import profile";
|
||||
this.menuImportProfile.Click += new System.EventHandler(this.menuImportProfile_Click);
|
||||
//
|
||||
// menuExportProfile
|
||||
//
|
||||
this.menuExportProfile.Name = "menuExportProfile";
|
||||
this.menuExportProfile.Size = new System.Drawing.Size(258, 26);
|
||||
this.menuExportProfile.Text = "Export profile";
|
||||
this.menuExportProfile.Click += new System.EventHandler(this.menuExportProfile_Click);
|
||||
//
|
||||
// contextAppMenu
|
||||
//
|
||||
this.contextAppMenu.BackColor = System.Drawing.SystemColors.Control;
|
||||
this.contextAppMenu.Font = new System.Drawing.Font("Segoe UI Variable Text Semiligh", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.contextAppMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.menuFix,
|
||||
this.menuFixInfo,
|
||||
this.menuRestore,
|
||||
this.menuRestoreInfo});
|
||||
this.contextAppMenu.Name = "menuMain";
|
||||
this.contextAppMenu.RenderMode = System.Windows.Forms.ToolStripRenderMode.System;
|
||||
this.contextAppMenu.Size = new System.Drawing.Size(361, 104);
|
||||
//
|
||||
// menuFix
|
||||
//
|
||||
this.menuFix.Name = "menuFix";
|
||||
this.menuFix.Size = new System.Drawing.Size(360, 32);
|
||||
this.menuFix.Text = "Fix problems";
|
||||
this.menuFix.Click += new System.EventHandler(this.menuFix_Click);
|
||||
//
|
||||
// menuFixInfo
|
||||
//
|
||||
this.menuFixInfo.BackColor = System.Drawing.SystemColors.Control;
|
||||
this.menuFixInfo.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.menuFixInfo.Enabled = false;
|
||||
this.menuFixInfo.Font = new System.Drawing.Font("Segoe UI Variable Text Semiligh", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.menuFixInfo.Margin = new System.Windows.Forms.Padding(5, 1, 1, 1);
|
||||
this.menuFixInfo.Name = "menuFixInfo";
|
||||
this.menuFixInfo.Size = new System.Drawing.Size(300, 16);
|
||||
this.menuFixInfo.Text = "This will fix all found and selected problems";
|
||||
//
|
||||
// menuRestore
|
||||
//
|
||||
this.menuRestore.Name = "menuRestore";
|
||||
this.menuRestore.Size = new System.Drawing.Size(360, 32);
|
||||
this.menuRestore.Text = "Restore settings";
|
||||
this.menuRestore.TextDirection = System.Windows.Forms.ToolStripTextDirection.Horizontal;
|
||||
this.menuRestore.Click += new System.EventHandler(this.menuRestore_Click);
|
||||
//
|
||||
// menuRestoreInfo
|
||||
//
|
||||
this.menuRestoreInfo.BackColor = System.Drawing.SystemColors.Control;
|
||||
this.menuRestoreInfo.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.menuRestoreInfo.Enabled = false;
|
||||
this.menuRestoreInfo.Font = new System.Drawing.Font("Segoe UI Variable Text Semiligh", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.menuRestoreInfo.Margin = new System.Windows.Forms.Padding(5, 1, 1, 1);
|
||||
this.menuRestoreInfo.Name = "menuRestoreInfo";
|
||||
this.menuRestoreInfo.Size = new System.Drawing.Size(300, 16);
|
||||
this.menuRestoreInfo.Text = "This will restore the default settings ";
|
||||
//
|
||||
// MainForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
this.BackColor = System.Drawing.Color.White;
|
||||
this.ClientSize = new System.Drawing.Size(1019, 801);
|
||||
this.Controls.Add(this.pnlForm);
|
||||
this.Name = "MainForm";
|
||||
this.ShowIcon = false;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.Text = "BloatyNosy";
|
||||
this.Shown += new System.EventHandler(this.MainForm_Shown);
|
||||
this.pnlForm.ResumeLayout(false);
|
||||
this.pnlMain.ResumeLayout(false);
|
||||
this.pnlMain.PerformLayout();
|
||||
this.contextKebapMenu.ResumeLayout(false);
|
||||
this.contextAppMenu.ResumeLayout(false);
|
||||
this.contextAppMenu.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
public System.Windows.Forms.Panel pnlForm;
|
||||
private System.Windows.Forms.Panel pnlMain;
|
||||
private System.Windows.Forms.Label lblTools;
|
||||
private System.Windows.Forms.ComboBox cmbTools;
|
||||
private System.Windows.Forms.Label lblHeader;
|
||||
private System.Windows.Forms.Button btnAnalyze;
|
||||
private System.Windows.Forms.RichTextBox rtbLog;
|
||||
private System.Windows.Forms.ProgressBar progress;
|
||||
private System.Windows.Forms.LinkLabel lnkSubHeader;
|
||||
private System.Windows.Forms.TreeView tvwFeatures;
|
||||
private System.Windows.Forms.Button btnKebapMenu;
|
||||
private System.Windows.Forms.ContextMenuStrip contextKebapMenu;
|
||||
private System.Windows.Forms.ToolStripMenuItem menuAdvanced;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Button btnSettings;
|
||||
private System.Windows.Forms.ToolStripMenuItem menuIgnoreLowLevelP;
|
||||
private System.Windows.Forms.Button btnAppOptions;
|
||||
private System.Windows.Forms.ContextMenuStrip contextAppMenu;
|
||||
private System.Windows.Forms.ToolStripMenuItem menuFix;
|
||||
private System.Windows.Forms.ToolStripTextBox menuFixInfo;
|
||||
private System.Windows.Forms.ToolStripMenuItem menuRestore;
|
||||
private System.Windows.Forms.ToolStripTextBox menuRestoreInfo;
|
||||
private System.Windows.Forms.ToolStripMenuItem menuImportProfile;
|
||||
private System.Windows.Forms.LinkLabel lnkRunSetup;
|
||||
private System.Windows.Forms.ToolStripMenuItem menuExportProfile;
|
||||
}
|
||||
}
|
||||
|
514
src/BloatyNosy/MainForm.cs
Normal file
514
src/BloatyNosy/MainForm.cs
Normal file
@ -0,0 +1,514 @@
|
||||
using BloatyNosy.ITreeNode;
|
||||
using Features.Feature;
|
||||
using HelperTool;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace BloatyNosy
|
||||
{
|
||||
public partial class MainForm : Form
|
||||
{
|
||||
public Control INavPage;
|
||||
private int progression = 0;
|
||||
private int progressionIncrease = 0;
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
public MainForm()
|
||||
=> InitializeComponent();
|
||||
|
||||
private void MainForm_Shown(object sender, EventArgs e)
|
||||
{
|
||||
this.AddDefaultFeatures();
|
||||
this.AddMoreApps();
|
||||
|
||||
this.SetStyle();
|
||||
}
|
||||
|
||||
private void SetStyle()
|
||||
{
|
||||
btnAppOptions.Text = "\uE70D";
|
||||
btnKebapMenu.Text = "\u22ee";
|
||||
btnSettings.Text = "\uE713";
|
||||
btnAnalyze.Text += "\x20" + OsHelper.thisOS;
|
||||
|
||||
BackColor =
|
||||
tvwFeatures.BackColor =
|
||||
rtbLog.BackColor =
|
||||
Color.FromArgb(244, 241, 249);
|
||||
logger.SetTarget(rtbLog); // Log messages to target richLog
|
||||
INavPage = pnlForm.Controls[0]; // Set default NavPage
|
||||
}
|
||||
|
||||
public void SetView(Control View)
|
||||
{
|
||||
var control = View as Control;
|
||||
|
||||
control.Anchor = (AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Bottom);
|
||||
control.Dock = DockStyle.Fill;
|
||||
INavPage.Anchor = (AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Bottom);
|
||||
INavPage.Dock = DockStyle.Fill;
|
||||
|
||||
pnlForm.Controls.Clear();
|
||||
pnlForm.Controls.Add(View);
|
||||
}
|
||||
|
||||
private void AddMoreApps()
|
||||
{
|
||||
cmbTools.Items.Add("InstaPackage");
|
||||
cmbTools.Items.Add("BloatFinder");
|
||||
cmbTools.Items.Add("WinModder");
|
||||
cmbTools.Items.Insert(0, "Select...");
|
||||
cmbTools.SelectedIndex = 0;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Register some more Tools
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void cmbTools_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
string message = Convert.ToString(cmbTools.SelectedItem);
|
||||
string[] keys = new string[] { "Insta", "Bloat", "Mod" };
|
||||
|
||||
string sKeyResult = keys.FirstOrDefault<string>(s => message.Contains(s));
|
||||
|
||||
switch (sKeyResult)
|
||||
{
|
||||
case "Insta":
|
||||
this.SetView(new PackagesPageView()); // Packages > InstaPackages view
|
||||
break;
|
||||
|
||||
case "Bloat":
|
||||
this.SetView(new AppsPageView()); // In-box apps > BloatFinder view
|
||||
break;
|
||||
|
||||
case "Mod":
|
||||
this.SetView(new ModsPageView()); // Mods > WinModder view
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void lnkRunSetup_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
=> this.SetView(new SetupPageView(this)); // Mods > Setup view
|
||||
|
||||
private void btnSettings_Click(object sender, EventArgs e)
|
||||
=> this.SetView(new AboutPageView()); // Settings view
|
||||
|
||||
public void AddDefaultFeatures()
|
||||
{
|
||||
tvwFeatures.Nodes.Clear();
|
||||
tvwFeatures.BeginUpdate();
|
||||
|
||||
// Root node
|
||||
TreeNode root = new TreeNode("Problems to be checked ")
|
||||
{
|
||||
Checked = true,
|
||||
};
|
||||
|
||||
TreeNode browser = new TreeNode("Browser", new TreeNode[] {
|
||||
new FeatureNode(new Features.Feature.Browser.ChromeTelemetry()),
|
||||
new FeatureNode(new Features.Feature.Browser.FirefoxTelemetry()),
|
||||
})
|
||||
{
|
||||
Checked = true,
|
||||
};
|
||||
|
||||
TreeNode explorer = new TreeNode("Explorer", new TreeNode[] {
|
||||
new FeatureNode(new Features.Feature.Explorer.FileExplorer()),
|
||||
new FeatureNode(new Features.Feature.Explorer.HiddenFileFolder()),
|
||||
new FeatureNode(new Features.Feature.Explorer.HiddenFileExt()),
|
||||
})
|
||||
{
|
||||
Checked = true,
|
||||
};
|
||||
|
||||
TreeNode desktop = new TreeNode("Desktop", new System.Windows.Forms.TreeNode[] {
|
||||
new FeatureNode(new Features.Feature.Desktop.AppsTheme()),
|
||||
new FeatureNode(new Features.Feature.Desktop.WindowsTheme()),
|
||||
new FeatureNode(new Features.Feature.Desktop.Transparency()),
|
||||
new FeatureNode(new Features.Feature.Desktop.SnapAssistFlyout()),
|
||||
new FeatureNode(new Features.Feature.Desktop.Widgets()),
|
||||
new FeatureNode(new Features.Feature.Desktop.WidgetsRemove()),
|
||||
new FeatureNode(new Features.Feature.Desktop.Stickers()),
|
||||
})
|
||||
{
|
||||
Checked = true,
|
||||
};
|
||||
|
||||
TreeNode taskbar = new TreeNode("Taskbar and Start menu", new System.Windows.Forms.TreeNode[] {
|
||||
new FeatureNode(new Features.Feature.Taskbar.TaskbarSearch()),
|
||||
new FeatureNode(new Features.Feature.Taskbar.TaskbarChat()),
|
||||
new FeatureNode(new Features.Feature.Taskbar.TaskView()),
|
||||
new FeatureNode(new Features.Feature.Taskbar.MostUsedApps()),
|
||||
new FeatureNode(new Features.Feature.Taskbar.StartmenuLayout()),
|
||||
})
|
||||
{
|
||||
Checked = true,
|
||||
};
|
||||
|
||||
TreeNode system = new TreeNode("System", new System.Windows.Forms.TreeNode[] {
|
||||
new FeatureNode(new Features.Feature.System.FullContextMenus()),
|
||||
new FeatureNode(new Features.Feature.System.RemoveW11Watermark()),
|
||||
new FeatureNode(new Features.Feature.System.TeamsAutostart()),
|
||||
new FeatureNode(new Features.Feature.System.Fax()),
|
||||
new FeatureNode(new Features.Feature.System.XPSWriter()),
|
||||
new FeatureNode(new Features.Feature.System.TPMCheck()),
|
||||
new FeatureNode(new Features.Feature.System.OneDriveRemove()),
|
||||
})
|
||||
{
|
||||
Checked = true,
|
||||
};
|
||||
|
||||
TreeNode gaming = new TreeNode("Gaming", new TreeNode[] {
|
||||
new FeatureNode(new Features.Feature.Gaming.GameDVR()),
|
||||
new FeatureNode(new Features.Feature.Gaming.PowerThrottling()),
|
||||
new FeatureNode(new Features.Feature.Gaming.VisualFX()),
|
||||
})
|
||||
{
|
||||
Checked = true,
|
||||
};
|
||||
|
||||
TreeNode privacy = new TreeNode("Privacy", new TreeNode[] {
|
||||
new FeatureNode(new Features.Feature.Privacy.DiagnosticData()),
|
||||
new FeatureNode(new Features.Feature.Privacy.Telemetry()),
|
||||
new FeatureNode(new Features.Feature.Privacy.CompatibilityTelemetry()),
|
||||
new FeatureNode(new Features.Feature.Privacy.LocationTracking()),
|
||||
new FeatureNode(new Features.Feature.Privacy.Advertising()),
|
||||
new FeatureNode(new Features.Feature.Privacy.Feedback()),
|
||||
new FeatureNode(new Features.Feature.Privacy.SuggestedContent()),
|
||||
new FeatureNode(new Features.Feature.Privacy.Biometrics()),
|
||||
new FeatureNode(new Features.Feature.Privacy.AppsAutoInstall()),
|
||||
new FeatureNode(new Features.Feature.Privacy.WindowsTips()),
|
||||
new FeatureNode(new Features.Feature.Privacy.TailoredExperiences()),
|
||||
})
|
||||
{
|
||||
Checked = true
|
||||
};
|
||||
|
||||
TreeNode components = new TreeNode("Feature Recommendation", new TreeNode[] {
|
||||
new FeatureNode(new Features.Feature.Recommendation.EnableWSL()),
|
||||
})
|
||||
{
|
||||
Checked = true,
|
||||
};
|
||||
|
||||
TreeNode apps = new TreeNode("Bloatware (from Microsoft, ASUS, Adobe, HP, Meta etc.)", new TreeNode[] {
|
||||
new FeatureNode(new Features.Feature.Apps.StoreApps()),
|
||||
})
|
||||
{
|
||||
Checked = true,
|
||||
};
|
||||
|
||||
root.Nodes.AddRange(new TreeNode[]
|
||||
{
|
||||
browser,
|
||||
explorer,
|
||||
desktop,
|
||||
taskbar,
|
||||
system,
|
||||
gaming,
|
||||
privacy,
|
||||
components,
|
||||
apps,
|
||||
});
|
||||
|
||||
tvwFeatures.Nodes.Add(root);
|
||||
|
||||
// Some tvw nicety
|
||||
foreach (TreeNode tn in tvwFeatures.Nodes) { tn.Expand(); }
|
||||
tvwFeatures.Nodes[0].NodeFont = new Font(tvwFeatures.Font, FontStyle.Bold);
|
||||
tvwFeatures.EndUpdate();
|
||||
}
|
||||
|
||||
private async void btnAnalyze_Click(object sender, EventArgs e)
|
||||
{
|
||||
Reset();
|
||||
|
||||
int performFeaturesCount = 0;
|
||||
|
||||
List<FeatureNode> selectedFeatures = CollectFeatureNodes();
|
||||
|
||||
foreach (FeatureNode node in selectedFeatures)
|
||||
{
|
||||
var feature = node.Feature;
|
||||
ConfiguredTaskAwaitable<bool> analyzeTask = Task<bool>.Factory.StartNew(() => feature.CheckFeature()).ConfigureAwait(true);
|
||||
// logger.Log("Check {0}", node.Text);
|
||||
|
||||
bool shouldPerform = await analyzeTask;
|
||||
lnkSubHeader.Text = "Check " + feature.ID();
|
||||
|
||||
if (menuIgnoreLowLevelP.Checked == true)
|
||||
if (shouldPerform & !node.Text.Contains("LOW"))
|
||||
{
|
||||
logger.Log("Problem on " + node.Parent.Text + ": " + feature.ID());
|
||||
//logger.Log("- {0}", node.Text);
|
||||
|
||||
performFeaturesCount += 1;
|
||||
node.ForeColor = Color.MediumVioletRed;
|
||||
}
|
||||
else
|
||||
{
|
||||
node.Checked = false; // Uncheck all fixed
|
||||
node.ForeColor = Color.Gray;
|
||||
//logger.Log("Problem fixed: {0}", node.Text);
|
||||
}
|
||||
else if (shouldPerform)
|
||||
{
|
||||
logger.Log("Problem on " + node.Parent.Text + ": " + feature.ID());
|
||||
performFeaturesCount += 1;
|
||||
node.ForeColor = Color.MediumVioletRed;
|
||||
}
|
||||
else
|
||||
{
|
||||
node.Checked = false;
|
||||
node.ForeColor = Color.Gray;
|
||||
}
|
||||
}
|
||||
|
||||
tvwFeatures.ExpandAll();
|
||||
tvwFeatures.SelectedNode = tvwFeatures.Nodes[0];
|
||||
DoProgress(100);
|
||||
|
||||
StringBuilder sum = new StringBuilder();
|
||||
sum.Append(Environment.NewLine);
|
||||
sum.Append("======= Summary =======\n");
|
||||
sum.Append($"We've checked {selectedFeatures.Count} features of your Windows 11 installation.\r\n");
|
||||
sum.Append($"We like {selectedFeatures.Count - performFeaturesCount} of these features (no need for action).\r\n");
|
||||
|
||||
logger.Log(sum.ToString(), "");
|
||||
|
||||
lnkSubHeader.Text = $"There are {performFeaturesCount} features we don't like and which should be fixed (click for details).\r\n";
|
||||
|
||||
}
|
||||
private void SelectFeatureNodes(TreeNodeCollection trNodeCollection, bool isCheck)
|
||||
{
|
||||
foreach (TreeNode trNode in trNodeCollection)
|
||||
{
|
||||
trNode.Checked = isCheck;
|
||||
if (trNode.Nodes.Count > 0)
|
||||
SelectFeatureNodes(trNode.Nodes, isCheck);
|
||||
}
|
||||
}
|
||||
|
||||
private List<FeatureNode> CollectFeatureNodes()
|
||||
{
|
||||
List<FeatureNode> selectedFeatures = new List<FeatureNode>();
|
||||
|
||||
foreach (TreeNode treeNode in tvwFeatures.Nodes.All())
|
||||
{
|
||||
if (treeNode.Checked && treeNode.GetType() == typeof(FeatureNode))
|
||||
{
|
||||
selectedFeatures.Add((FeatureNode)treeNode);
|
||||
}
|
||||
}
|
||||
|
||||
progressionIncrease = (int)Math.Floor(100.0f / selectedFeatures.Count);
|
||||
|
||||
return selectedFeatures;
|
||||
}
|
||||
|
||||
private void Reset()
|
||||
{
|
||||
progression = 0;
|
||||
progressionIncrease = 0;
|
||||
|
||||
progress.Value = 0;
|
||||
progress.Visible = true;
|
||||
rtbLog.Visible = true;
|
||||
rtbLog.Text = "";
|
||||
}
|
||||
|
||||
private void DoProgress(int value)
|
||||
{
|
||||
progression = value;
|
||||
progress.Value = progression;
|
||||
}
|
||||
|
||||
private void IncrementProgress()
|
||||
{
|
||||
progression += progressionIncrease;
|
||||
progress.Value = progression;
|
||||
}
|
||||
|
||||
private async void ApplyFeatures(List<FeatureNode> treeNodes)
|
||||
{
|
||||
tvwFeatures.Enabled = false;
|
||||
|
||||
foreach (FeatureNode node in treeNodes)
|
||||
{
|
||||
var assessment = node.Feature;
|
||||
ConfiguredTaskAwaitable<bool> performTask = Task<bool>.Factory.StartNew(() => assessment.DoFeature()).ConfigureAwait(true);
|
||||
|
||||
lnkSubHeader.Text = "Fixing " + node.Text;
|
||||
|
||||
var result = await performTask;
|
||||
IncrementProgress();
|
||||
}
|
||||
|
||||
DoProgress(100);
|
||||
lnkSubHeader.Text = "";
|
||||
|
||||
tvwFeatures.Enabled = true;
|
||||
}
|
||||
|
||||
private async void UndoFeatures(List<FeatureNode> treeNodes)
|
||||
{
|
||||
tvwFeatures.Enabled = false;
|
||||
|
||||
foreach (FeatureNode node in treeNodes)
|
||||
{
|
||||
var assessment = node.Feature;
|
||||
ConfiguredTaskAwaitable<bool> performTask = Task<bool>.Factory.StartNew(() => assessment.UndoFeature()).ConfigureAwait(true);
|
||||
|
||||
lnkSubHeader.Text = "Restore " + node.Text;
|
||||
|
||||
var result = await performTask;
|
||||
IncrementProgress();
|
||||
}
|
||||
|
||||
DoProgress(100);
|
||||
lnkSubHeader.Text = "";
|
||||
|
||||
tvwFeatures.Enabled = true;
|
||||
}
|
||||
|
||||
private void menuFix_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(rtbLog.Text))
|
||||
{
|
||||
MessageBox.Show("No analyze has taken place yet");
|
||||
return;
|
||||
}
|
||||
|
||||
Reset();
|
||||
|
||||
List<FeatureNode> performNodes = CollectFeatureNodes();
|
||||
ApplyFeatures(performNodes);
|
||||
}
|
||||
|
||||
private void menuRestore_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (MessageBox.Show("Do you want to restore selected features to Windows default state?", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
|
||||
{
|
||||
Reset();
|
||||
|
||||
List<FeatureNode> performNodes = CollectFeatureNodes();
|
||||
UndoFeatures(performNodes);
|
||||
}
|
||||
}
|
||||
|
||||
private void treeFeatures_AfterCheck(object sender, TreeViewEventArgs e)
|
||||
{
|
||||
tvwFeatures.BeginUpdate();
|
||||
|
||||
foreach (TreeNode child in e.Node.Nodes)
|
||||
{
|
||||
child.Checked = e.Node.Checked;
|
||||
}
|
||||
|
||||
tvwFeatures.EndUpdate();
|
||||
}
|
||||
|
||||
private void menuAdvanced_Click(object sender, EventArgs e)
|
||||
{
|
||||
menuAdvanced.Checked = !(menuAdvanced.Checked);
|
||||
|
||||
if (menuAdvanced.Checked == true)
|
||||
{
|
||||
tvwFeatures.Visible = true;
|
||||
tvwFeatures.BringToFront();
|
||||
}
|
||||
else if (menuAdvanced.Checked == false)
|
||||
tvwFeatures.Visible = false;
|
||||
rtbLog.Visible = true;
|
||||
}
|
||||
|
||||
private void menuIgnoreLowLevelP_Click(object sender, EventArgs e)
|
||||
{
|
||||
menuIgnoreLowLevelP.Checked = !(menuIgnoreLowLevelP.Checked);
|
||||
SelectFeatureNodes(tvwFeatures.Nodes, true);
|
||||
}
|
||||
|
||||
private void richLog_LinkClicked(object sender, LinkClickedEventArgs e)
|
||||
=> Utils.LaunchUri(e.LinkText);
|
||||
|
||||
private void btnAppOptions_Click(object sender, EventArgs e)
|
||||
=> this.contextAppMenu.Show(Cursor.Position.X, Cursor.Position.Y);
|
||||
|
||||
private void btnMenu_Click(object sender, EventArgs e)
|
||||
=> this.contextKebapMenu.Show(Cursor.Position.X, Cursor.Position.Y);
|
||||
|
||||
private void lnkSubHeader_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
=> menuAdvanced.PerformClick();
|
||||
|
||||
private void menuImportProfile_Click(object sender, EventArgs e)
|
||||
{
|
||||
OpenFileDialog f = new OpenFileDialog();
|
||||
f.InitialDirectory = HelperTool.Utils.Data.DataRootDir;
|
||||
f.Filter = "BloatyNosy files (*.bloos)|*.bloos|ThisIsWin11 files (*.tiw1)|*.tiw1";
|
||||
|
||||
if (f.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
SelectFeatureNodes(tvwFeatures.Nodes, false);
|
||||
tvwFeatures.ExpandAll();
|
||||
tvwFeatures.Nodes[0].EnsureVisible();
|
||||
menuAdvanced.PerformClick();
|
||||
|
||||
using (StreamReader reader = new StreamReader(f.OpenFile()))
|
||||
{
|
||||
while (!reader.EndOfStream)
|
||||
{
|
||||
string line = reader.ReadLine();
|
||||
foreach (TreeNode treeNode in tvwFeatures.Nodes.All())
|
||||
{
|
||||
if (treeNode.Text.Contains(line))
|
||||
{
|
||||
treeNode.BackColor = Color.Yellow;
|
||||
treeNode.Text += "\x20" + "(" + Path.GetFileNameWithoutExtension(f.FileName) + ")";
|
||||
treeNode.Checked = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
MessageBox.Show("Profile has been successfully imported.\n\nWe have highlighted the configuration that would be enabled (no changes are done yet).", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void menuExportProfile_Click(object sender, EventArgs e)
|
||||
{
|
||||
SaveFileDialog f = new SaveFileDialog();
|
||||
f.InitialDirectory = HelperTool.Utils.Data.DataRootDir;
|
||||
f.FileName = "debloos-profile";
|
||||
f.Filter = "BloatyNosy files *.bloos|*.bloos";
|
||||
|
||||
if (f.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
using (StreamWriter writer = new StreamWriter(f.OpenFile()))
|
||||
{
|
||||
foreach (TreeNode treeNode in tvwFeatures.Nodes.All())
|
||||
{
|
||||
if (!treeNode.Checked)
|
||||
continue;
|
||||
writer.WriteLine(String.Format("{0}", treeNode.Text));
|
||||
}
|
||||
|
||||
writer.Close();
|
||||
}
|
||||
MessageBox.Show("Profile has been successfully exported.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
126
src/BloatyNosy/MainForm.resx
Normal file
126
src/BloatyNosy/MainForm.resx
Normal file
@ -0,0 +1,126 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="contextKebapMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="contextAppMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>172, 17</value>
|
||||
</metadata>
|
||||
</root>
|
24
src/BloatyNosy/Program.cs
Normal file
24
src/BloatyNosy/Program.cs
Normal file
@ -0,0 +1,24 @@
|
||||
using System;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace BloatyNosy
|
||||
{
|
||||
internal static class Program
|
||||
{
|
||||
/// <summary>
|
||||
/// Get app version
|
||||
/// </summary>
|
||||
internal static string GetCurrentVersionTostring() => new Version(Application.ProductVersion).ToString(3);
|
||||
|
||||
/// <summary>
|
||||
/// The main entry point for the application.
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
private static void Main()
|
||||
{
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
Application.Run(new MainForm());
|
||||
}
|
||||
}
|
||||
}
|
79
src/BloatyNosy/app.manifest
Normal file
79
src/BloatyNosy/app.manifest
Normal file
@ -0,0 +1,79 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
|
||||
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
|
||||
<security>
|
||||
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<!-- UAC-Manifestoptionen
|
||||
Wenn Sie die Ebene der Benutzerkontensteuerung für Windows ändern möchten, ersetzen Sie den
|
||||
Knoten "requestedExecutionLevel" wie folgt.
|
||||
|
||||
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
|
||||
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
|
||||
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
|
||||
|
||||
Durch Angabe des Elements "requestedExecutionLevel" wird die Datei- und Registrierungsvirtualisierung deaktiviert.
|
||||
Entfernen Sie dieses Element, wenn diese Virtualisierung aus Gründen der Abwärtskompatibilität
|
||||
für die Anwendung erforderlich ist.
|
||||
-->
|
||||
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
|
||||
</requestedPrivileges>
|
||||
</security>
|
||||
</trustInfo>
|
||||
|
||||
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
|
||||
<application>
|
||||
<!-- Eine Liste der Windows-Versionen, unter denen diese Anwendung getestet
|
||||
und für die sie entwickelt wurde. Wenn Sie die Auskommentierung der entsprechenden Elemente aufheben,
|
||||
wird von Windows automatisch die kompatibelste Umgebung ausgewählt. -->
|
||||
|
||||
<!-- Windows Vista -->
|
||||
<!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
|
||||
|
||||
<!-- Windows 7 -->
|
||||
<!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->
|
||||
|
||||
<!-- Windows 8 -->
|
||||
<!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
|
||||
|
||||
<!-- Windows 8.1 -->
|
||||
<!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
|
||||
|
||||
<!-- Windows 10 -->
|
||||
<!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />-->
|
||||
|
||||
</application>
|
||||
</compatibility>
|
||||
|
||||
<!-- Gibt an, dass die Anwendung mit DPI-Werten kompatibel ist und von Windows nicht automatisch auf höhere
|
||||
DPI-Werte skaliert wird. WPF-Anwendungen (Windows Presentation Foundation) sind automatisch mit DPI-Werten kompatibel, eine Aktivierung
|
||||
ist nicht erforderlich. Für Windows Forms-Anwendungen für .NET Framework 4.6, die diese Einstellung aktivieren, muss
|
||||
auch die Einstellung "'EnableWindowsFormsHighDpiAutoResizing" in der Datei "app.config" auf TRUE festgelegt werden.
|
||||
|
||||
Hierdurch können für die Anwendung lange Pfade verwendet werden. Weitere Informationen finden Sie unter https://docs.microsoft.com/windows/win32/fileio/maximum-file-path-limitation.-->
|
||||
|
||||
<application xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<windowsSettings>
|
||||
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
|
||||
<longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
|
||||
</windowsSettings>
|
||||
</application>
|
||||
|
||||
|
||||
<!-- Designs für allgemeine Windows-Steuerelemente und -Dialogfelder (Windows XP und höher) aktivieren -->
|
||||
<!--
|
||||
<dependency>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity
|
||||
type="win32"
|
||||
name="Microsoft.Windows.Common-Controls"
|
||||
version="6.0.0.0"
|
||||
processorArchitecture="*"
|
||||
publicKeyToken="6595b64144ccf1df"
|
||||
language="*"
|
||||
/>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
-->
|
||||
|
||||
</assembly>
|
Loading…
Reference in New Issue
Block a user