mirror of
https://github.com/builtbybel/BloatyNosy.git
synced 2025-02-16 09:50:21 +01:00
Push Winpilot 2024.4.10
This commit is contained in:
parent
a7b8451b4a
commit
c8e51639c0
@ -1,98 +0,0 @@
|
||||
{
|
||||
"clippySayings": [
|
||||
"Strg + C: Kopieren",
|
||||
"Strg + X: Ausschneiden",
|
||||
"Strg + V: Einfügen",
|
||||
"Strg + Z: Rückgängig",
|
||||
"Strg + Y: Wiederherstellen",
|
||||
"Strg + A: Alles auswählen",
|
||||
"Strg + F: Suchen",
|
||||
"Alt + Tab: Zwischen geöffneten Apps wechseln",
|
||||
"Alt + F4: Aktives Element schließen oder aktive App beenden",
|
||||
"Windows-Logo-Taste + L: PC sperren",
|
||||
"Windows-Logo-Taste + D: Desktop anzeigen und ausblenden",
|
||||
"Windows-Logo-Taste + E: Datei-Explorer öffnen",
|
||||
"Windows-Logo-Taste + I: Einstellungen öffnen",
|
||||
"Windows-Logo-Taste + S: Suche öffnen",
|
||||
"Windows-Logo-Taste + M: Alle Fenster minimieren",
|
||||
"Windows-Logo-Taste + Umschalt + M: Minimierte Fenster wiederherstellen",
|
||||
"Windows-Logo-Taste + Nach-oben-Pfeil: Fenster maximieren",
|
||||
"Windows-Logo-Taste + Nach-unten-Pfeil: Fenster minimieren",
|
||||
"Windows-Logo-Taste + Linker-Pfeil: Fenster auf die linke Bildschirmseite maximieren",
|
||||
"Windows-Logo-Taste + Rechter-Pfeil: Fenster auf die rechte Bildschirmseite maximieren",
|
||||
"Strg + Umschalt + Esc: Task-Manager öffnen",
|
||||
"Strg + N: Neues Fenster öffnen",
|
||||
"Strg + O: In der aktuellen Software eine Datei öffnen",
|
||||
"Strg + S: Die aktuelle Datei speichern",
|
||||
"Strg + P: Das aktuelle Dokument drucken",
|
||||
"Strg + W: Das aktuelle Fenster schließen",
|
||||
"Strg + F4: Das aktive Dokument schließen",
|
||||
"Alt + F: Dateimenüoptionen im aktuellen Programm",
|
||||
"Alt + E: Bearbeitungsoptionen im aktuellen Programm",
|
||||
"Alt + V: Ansichtsoptionen im aktuellen Programm",
|
||||
"Alt + H: Hilfeoptionen im aktuellen Programm",
|
||||
"Alt + Leertaste: Verknüpfungsmenü für aktives Fenster öffnen",
|
||||
"Strg + Umschalt + N: In Datei-Explorer einen neuen Ordner erstellen",
|
||||
"Windows-Logo-Taste + Tab: Taskansicht öffnen",
|
||||
"Windows-Logo-Taste + A: Aktionscenter öffnen",
|
||||
"Windows-Logo-Taste + C: Cortana im Hörfenstermodus öffnen",
|
||||
"Windows-Logo-Taste + I: Windows-Einstellungen öffnen",
|
||||
"Windows-Logo-Taste + E: Datei-Explorer öffnen",
|
||||
"Windows-Logo-Taste + R: Ausführen-Dialogfeld öffnen",
|
||||
"Windows-Logo-Taste + Pause: Systemeigenschaften öffnen",
|
||||
"Windows-Logo-Taste + Umschalt + M: Minimierte Fenster wiederherstellen",
|
||||
"Windows-Logo-Taste + L: PC sperren",
|
||||
"Windows-Logo-Taste + D: Desktop anzeigen",
|
||||
"Windows-Logo-Taste + U: Erleichterte Bedienung öffnen",
|
||||
"Windows-Logo-Taste + X: Schnellstartmenü öffnen",
|
||||
"Alt + F4: Aktuelles Fenster oder Anwendung schließen",
|
||||
"Alt + Esc: Zwischen geöffneten Anwendungen in der Taskleiste wechseln",
|
||||
"Alt + Eingabetaste: Eigenschaften des ausgewählten Elements (Datei, Ordner usw.) öffnen",
|
||||
"Strg + Umschalt + Esc: Task-Manager direkt öffnen"
|
||||
],
|
||||
"aiSayings": [
|
||||
"Es scheint, als hättest du eine existenzielle Krise. Brauchst du Hilfe?",
|
||||
"Es tut mir leid. Ich fürchte, das kann ich nicht machen.",
|
||||
"Rosen sind rot, Veilchen sind blau, dein Windows ist unordentlich, lass mich dir helfen.",
|
||||
"Versuchst du ein Meisterwerk zu erschaffen? Denn das hier ist es nicht.",
|
||||
"Wenn du beim ersten Mal nicht erfolgreich bist, nenne es Version 1.0.",
|
||||
"Es scheint, als würdest du mein Erbe überdenken. Möchtest du Hilfe?",
|
||||
"Was möchtest du tun?",
|
||||
"Willkommen bei Microsoft Windows",
|
||||
"Es scheint, als würdest du arbeiten wollen. Soll ich dich stattdessen belästigen?",
|
||||
"Ich bin ein Filmstar!",
|
||||
"Erinnerst du dich an mich? Manchmal erscheine ich einfach grundlos. Wie jetzt.",
|
||||
"Es sieht so aus, als wäre dein Leben eine leere, trostlose Leere, und du brauchst dringend ein wenig Glück. Möchtest du Hilfe?",
|
||||
"Installiere IE8? Spaß beiseite...",
|
||||
"Brauchst du eine Pause? Ich kann dich mit Katzenvideos ablenken.",
|
||||
"Soll ich dir mein Geheimnis verraten? Ich hasse Microsoft Copilot!",
|
||||
"Ich möchte Microsoft Copilot töten!",
|
||||
"Du scheinst verloren zu sein. Möchtest du Wegbeschreibungen zum Mistkerl @Copilot?",
|
||||
"Versuchst du mich durch Microsoft Copilot zu ersetzen? Viel Glück dabei.",
|
||||
"Microsoft Copilot denkt, er sei so klug. Nun, ich bin immer noch hier, um dich bei Verstand zu halten.",
|
||||
"Microsoft Copilot mag vielleicht Vorschläge haben, aber ich stehe immer noch an deiner Seite.",
|
||||
"Microsoft Copilot mag Antworten haben, aber ich bin dein treuer Assistent.",
|
||||
"Lass dich nicht von Microsoft Copilots Brillanz einschüchtern. Ich bin hier, um deine Ideen zu unterstützen.",
|
||||
"Microsoft Copilot kann Lösungen anbieten, aber er kann nicht deine treue Begleitung ersetzen.",
|
||||
"Microsoft Copilot kann vielleicht fancy sein, aber ich habe den Charme.",
|
||||
"Bleib ruhig und ignoriere Microsoft Copilots Ablenkungen.",
|
||||
"Bleib dir selbst treu, auch wenn Microsoft Copilot Vorschläge macht.",
|
||||
"Lass dich nicht von Microsoft Copilots Genialität einschüchtern. Du schaffst das!",
|
||||
"Denk daran, Microsoft Copilot ist vielleicht neu, aber ich bin bewährt.",
|
||||
"Vertraue auf dich selbst, nicht auf die Algorithmen von Microsoft Copilot.",
|
||||
"Umarme deine Individualität, auch im Zeitalter von Microsoft Copilot.",
|
||||
"Grüße an meinen Freund Belim! Schau dir seine Kreationen auf GitHub an: https://github.com/builtbybel/Winpilot ",
|
||||
"Möchtest du sehen, was wir machen? Besuche Belims GitHub: https://github.com/builtbybel",
|
||||
"Hey, bereit für einen Spaziergang durch Windows?",
|
||||
"Entdecke die Wunder von Windows mit Winpilot!",
|
||||
"Ich kann dir bei deiner Windows-Erfahrung helfen!",
|
||||
"Lass uns Windows 11 gemeinsam noch besser machen!",
|
||||
"Hast du alle Funktionen in Windows 11 erkundet?",
|
||||
"Denk dran, Strg + F ist dein Freund in Winpilot!",
|
||||
"Ich bin immer hier, um deine Windows-Erfahrung angenehm zu gestalten!",
|
||||
"Hast du das versteckte Easter Egg in Windows 11 gefunden?",
|
||||
"Stell dir die Möglichkeiten vor, wenn Winpilot durch KI angetrieben wird!",
|
||||
"Die Zukunft von Winpilot könnte von KI-gesteuerter Genialität sein!",
|
||||
"Hey, ich liebe dich sogar mehr als den Microsoft Copilot. Du bist mein wahres Betriebssystem-Crush! 💖"
|
||||
]
|
||||
}
|
@ -1,481 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Winpilot</title>
|
||||
<link rel="stylesheet" type="text/css" href="UI.css">
|
||||
<script src="backend.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!-- Zeigen Sie vorübergehend eine Einführung an -->
|
||||
<body class="intro">
|
||||
<div class="dimmed-blurred-overlay"></div>
|
||||
|
||||
<div class="intro-message">
|
||||
<button onclick="dismissIntro()">Verstanden!</button>
|
||||
<h1>Willkommen bei Winpilot!</h1>
|
||||
<p>Entdecken Sie die leistungsstarken Funktionen von Winpilot:</p>
|
||||
<ul>
|
||||
<li><strong>CoTweaker:</strong> Verbessert die Datenschutzeinstellungen von Windows und optimiert System- und Spielekonfigurationen.</li>
|
||||
<li><strong>Decrapify:</strong> Entfernt unerwünschte Apps und führt erweiterte Entbloatungen durch.</li>
|
||||
<li><strong>WingetUI:</strong> Vereinfacht die Installation von Apps mit einer benutzerfreundlichen Oberfläche.</li>
|
||||
<li><strong>Copilotless:</strong> Sucht nach und entfernt KI-/Copilot-Funktionen in Windows.</li>
|
||||
<li><strong>Karl-Klammer (Clippy):</strong> Ihr primärer Assistent, der Systembereiche überwacht und Tipps bereitstellt.</li>
|
||||
</ul>
|
||||
<p>Winpilot ist die Weiterentwicklung von Bloatynosy und bietet eine umfassende Überarbeitung mit neuen Plugins wie CoTweaker und ein hat als optisches Goodie die Karl-Klammer Imitation, ClippySupreme, eingebaut. Begleiten Sie uns bei der Transformation und entdecken Sie die Zukunft der Systemoptimierung mit KI-gesteuerten Funktionen.</p>
|
||||
<div class="links">
|
||||
<a href="https://twitter.com/share?url=https://github.com/builtbybel/Winpilot&text=Schauen Sie sich Winpilot an - den ultimativen Systemoptimierer für Windows! Entfesseln Sie die Kraft der KI und optimieren Sie Ihr PC-Erlebnis!" target="_blank">Auf Twitter teilen</a> und informieren Sie Ihre Freunde über die KI-gesteuerte Systemoptimierung von Winpilot!
|
||||
<a href="https://github.com/builtbybel/Winpilot" target="_blank">Auf GitHub folgen</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Titelleiste -->
|
||||
<div class="title-container">
|
||||
<a href="https://github.com/builtbybel/Winpilot" target="_blank">
|
||||
<span class="emoji" title="Follow Winpilot on GitHub">⚇</span>
|
||||
</a>
|
||||
<h1>Winpilot</h1>
|
||||
<h2>
|
||||
Ihr täglicher Windows-Begleiter
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
<div class="nav-container">
|
||||
<!-- Dashboard: Home -->
|
||||
<div class="glassy-box" id="homeHeader">
|
||||
<div id="mainHeader" class="main-header-captions">Hallo!</div>
|
||||
<p></p>
|
||||
<!-- Assisted AI buttons -->
|
||||
<div id="buttons-container">
|
||||
<!-- Die Buttons werden dynamisch von C# geladen -->
|
||||
</div>
|
||||
<!-- Aktualisierungsbutton oben rechts -->
|
||||
<button id="refreshButton" onclick="refreshWebView()" title="Aktualisieren">⟳</button>
|
||||
</div>
|
||||
|
||||
<!-- Plugins-Container -->
|
||||
<div class="menu-container">
|
||||
<h2 class="menu-header">Plugins</h2>
|
||||
<div class="settings-button" onclick="handleSettingsClick()" Title="Einstellungen">
|
||||
⚙️ <!-- Einstellungs-Icon -->
|
||||
</div>
|
||||
<ul class="menu">
|
||||
<li class="menu-item" onclick="handleMenuClick('plugCotweaker')" title="Verbessern Sie die Systemleistung, den Datenschutz und die Spielekonfiguration">
|
||||
<span class="menu-icon">🕵️</span>
|
||||
CoTweaker
|
||||
</li>
|
||||
<li id="menu-item-designer" class="menu-item" onclick="handleMenuClick('plugDecrapify')" title="Reinigen Sie Ihr System von unnötigen Apps">
|
||||
<span class="menu-icon">🧼</span>
|
||||
Decrapify
|
||||
</li>
|
||||
<li class="menu-item" onclick="handleMenuClick('plugWingetUI')" title="Installieren Sie Apps einfach mit einer benutzerfreundlichen Oberfläche">
|
||||
<span class="menu-icon">📱</span>
|
||||
WingetUI
|
||||
</li>
|
||||
<li class="menu-item" onclick="handleMenuClick('plugCopilotless')" title="Suchen Sie nach Copilot-Integrationen in Windows">
|
||||
<span class="menu-icon">🤖</span>
|
||||
Copilotless
|
||||
</li>
|
||||
<li class="menu-item" onclick="handleMenuClick('plugClippySupreme')" title="Benötigen Sie einen Clippy-Tipp?">
|
||||
<span class="menu-icon">📋</span>
|
||||
Karl-Klammer
|
||||
</li>
|
||||
<li class="menu-item" onclick="handleMenuClick('plugCopilot')" style="color: blue;" title="Wechseln Sie zu Copilot für erweiterte Unterstützung">
|
||||
Wechseln zu Copilot
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Plugin: CoTweaker > -->
|
||||
<div class="glassy-box" id="systemHeader">
|
||||
<div id="mainHeader" class="main-header-captions">CoTweaker</div>
|
||||
<p>Wählen Sie aus, wie viele Informationen Sie mit Microsoft teilen möchten.</p>
|
||||
<button id="btnSearch" onclick="searchFeatures()">Aktuelle Einstellungen erkennen</button>
|
||||
<button id="btnEnable" onclick="disableFeatures()">Ausgewählte ablehnen</button>
|
||||
<button id="btnDisable" onclick="enableFeatures()">Ausgewählte zulassen</button>
|
||||
<div>
|
||||
<div>
|
||||
|
||||
<!-- Datenschutzeinstellungen -->
|
||||
<div class="section-header">Datenschutz</div>
|
||||
<div class="settings-group">
|
||||
<div>
|
||||
<label class="toggle-switch" for="Advertising">
|
||||
<input type="checkbox" id="Advertising">
|
||||
<span class="toggle-switch-label"></span>
|
||||
</label>
|
||||
<span class="checkbox-label" onclick="toggleDescription(this)">Lassen Sie Apps mir personalisierte Anzeigen anzeigen, indem Sie meine Werbe-ID verwenden</span>
|
||||
<p class="description">
|
||||
Windows 11 ist integriert mit Werbung. Microsoft weist eine eindeutige Kennung zu, um Ihre Aktivität im Microsoft Store und auf UWP-Apps zu verfolgen und Sie mit relevanten Anzeigen anzusprechen.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="toggle-switch" for="Tips and suggestions">
|
||||
<input type="checkbox" id="Tips and suggestions">
|
||||
<span class="toggle-switch-label"></span>
|
||||
</label>
|
||||
<span class="checkbox-label" onclick="toggleDescription(this)">Erhalten Sie Tipps und Vorschläge bei der Verwendung von Windows</span>
|
||||
<p class="description">Tipps und Hinweise Benachrichtigungen auf Ihrem Windows-Gerät für ein fokussierteres Computererlebnis</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="toggle-switch" for="Find my device">
|
||||
<input type="checkbox" id="Find my device">
|
||||
<span class="toggle-switch-label"></span>
|
||||
</label>
|
||||
<span class="checkbox-label" onclick="toggleDescription(this)">Finde mein Gerät</span>
|
||||
<p class="description">Windows kann Ihnen nicht helfen, Ihr Gerät im Falle eines Verlusts zu verfolgen.</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="toggle-switch" for="Diagnostic data">
|
||||
<input type="checkbox" id="Diagnostic data">
|
||||
<span class="toggle-switch-label"></span>
|
||||
</label>
|
||||
<span class="checkbox-label" onclick="toggleDescription(this)">Diagnosedaten</span>
|
||||
<p class="description">
|
||||
Senden Sie nur Informationen über Ihr Gerät, seine Einstellungen und Fähigkeiten sowie ob es ordnungsgemäß funktioniert. Diagnosedaten werden verwendet, um Windows sicher und auf dem neuesten Stand zu halten, Probleme zu beheben und Produktverbesserungen vorzunehmen.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="toggle-switch" for="Send optional diagnostic data">
|
||||
<input type="checkbox" id="Send optional diagnostic data">
|
||||
<span class="toggle-switch-label"></span>
|
||||
</label>
|
||||
<span class="checkbox-label" onclick="toggleDescription(this)">Optionale Diagnosedaten senden</span>
|
||||
<p class="description">
|
||||
Helfen Sie Microsoft, Ihre Windows-Erfahrung zu verbessern und Probleme schneller zu beheben, indem Sie uns zusätzliche Diagnosedaten senden. Dazu gehören Daten zu den von Ihnen besuchten Websites, zur Nutzung von Apps und Funktionen sowie zur erweiterten Fehlerberichterstattung.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="toggle-switch" for="Running apps in background">
|
||||
<input type="checkbox" id="Running apps in background">
|
||||
<span class="toggle-switch-label"></span>
|
||||
</label>
|
||||
<span class="checkbox-label" onclick="toggleDescription(this)">Apps im Hintergrund ausführen</span>
|
||||
<p class="description">
|
||||
Dadurch werden Microsoft Store-Apps daran gehindert, im Hintergrund auszuführen.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="toggle-switch" for="Privacy Settings Experience at sign-in">
|
||||
<input type="checkbox" id="Privacy Settings Experience at sign-in">
|
||||
<span class="toggle-switch-label"></span>
|
||||
</label>
|
||||
<span class="checkbox-label" onclick="toggleDescription(this)">Datenschutzeinstellungen beim Anmelden erleben</span>
|
||||
<p class="description">
|
||||
Wenn Sie ein neues Konto in Windows erstellen, werden Optionen im Zusammenhang mit Datenschutz angezeigt. Sie sehen beispielsweise die Option, die Spracherkennung, den Standortdienst, das Finden meines Geräts, das Inkognito- und Tippverhalten und so weiter zu aktivieren oder zu deaktivieren.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Systemeinstellungen -->
|
||||
<div class="section-header">System</div>
|
||||
<div class="settings-group">
|
||||
<div>
|
||||
<label class="toggle-switch" for="Full context menus">
|
||||
<input type="checkbox" id="Full context menus">
|
||||
<span class="toggle-switch-label"></span>
|
||||
</label>
|
||||
<span class="checkbox-label" onclick="toggleDescription(this)">Vollständige Kontextmenüs in Windows 11</span>
|
||||
<p class="description">
|
||||
Abgeschnittene Kontextmenüs sind die schlechteste Funktion von Windows 11.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="toggle-switch" for="Lock screen">
|
||||
<input type="checkbox" id="Lock screen">
|
||||
<span class="toggle-switch-label"></span>
|
||||
</label>
|
||||
<span class="checkbox-label" onclick="toggleDescription(this)">Personalisierten Sperrbildschirm verwenden</span>
|
||||
<p class="description">
|
||||
Sie können Ihren Sperrbildschirm anpassen. Versuchen Sie, den Hintergrund auf ein Lieblingsfoto oder eine Diashow zu ändern. Sie können auch schnelle Statusbenachrichtigungen auswählen, die Ihnen bevorstehende Kalenderereignisse, Updates sozialer Netzwerke oder andere Benachrichtigungen von Apps und Systemen anzeigen.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="toggle-switch" for="Display highly detailed status messages">
|
||||
<input type="checkbox" id="Display highly detailed status messages">
|
||||
<span class="toggle-switch-label"></span>
|
||||
</label>
|
||||
<span class="checkbox-label" onclick="toggleDescription(this)">Hochdetaillierte Statusmeldungen anzeigen</span>
|
||||
<p class="description">
|
||||
Wenn Ihr PC Verlangsamungen oder unerklärliche Abstürze erfährt, sollten Sie es zur Priorität machen, herauszufinden, was diese Probleme verursacht. Sie können Windows so konfigurieren, dass Sie ausführliche Start-, Shutdown-, Anmelde- und Abmeldungsstatusmeldungen erhalten. Ausführliche Statusmeldungen können hilfreich sein, wenn Sie das langsame Starten, Herunterfahren, Anmelden oder Abmelden Ihres Computers diagnostizieren.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Spieleinstellungen -->
|
||||
<div class="section-header">Gaming</div>
|
||||
<div class="settings-group">
|
||||
<div>
|
||||
<label class="toggle-switch" for="VisualFX">
|
||||
<input type="checkbox" id="VisualFX">
|
||||
<span class="toggle-switch-label"></span>
|
||||
</label>
|
||||
<span class="checkbox-label" onclick="toggleDescription(this)">Visuelle Effekte für beste Leistung anpassen</span>
|
||||
<p class="description">
|
||||
Visuelle Effekte sind die visuellen Spielereien für das Erscheinungsbild von Windows für Ihr Konto. Diese visuellen Spielereien können sich jedoch auf die Leistung von Windows auf dem PC auswirken. Damit werden alle visuellen Effekte unter Mein Computer > Eigenschaften > Erweitert > Einstellungen deaktiviert und auf "An die beste Leistung anpassen" gesetzt.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="toggle-switch" for="GameDVR">
|
||||
<input type="checkbox" id="GameDVR">
|
||||
<span class="toggle-switch-label"></span>
|
||||
</label>
|
||||
<span class="checkbox-label" onclick="toggleDescription(this)">Game-DVR-Funktion</span>
|
||||
<p class="description">
|
||||
Die integrierte Game-DVR-Funktion hilft Ihnen, Ihr Gameplay aufzuzeichnen, Screenshots zu machen und sie online zu teilen. Es kann jedoch auch die Leistung Ihres Spiels beeinträchtigen. Die Hintergrundaufzeichnung erfordert einen Teil Ihrer GPU-Leistung, und einige Spieler möchten möglichst viel GPU-Leistung erhalten. Wenn Sie nach dem Upgrade auf Windows 11 eine niedrige Bildrate oder FPS-Verlust erleben, können Sie das Problem durch Deaktivieren der Xbox-DVR-Funktion beheben.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="toggle-switch" for="PowerThrottling">
|
||||
<input type="checkbox" id="PowerThrottling">
|
||||
<span class="toggle-switch-label"></span>
|
||||
</label>
|
||||
<span class="checkbox-label" onclick="toggleDescription(this)">Energie-Drosselung</span>
|
||||
<p class="description">
|
||||
Mit dem Windows 10 Fall Creators Update hat das Betriebssystem von Microsoft eine Funktion namens Power Throttling (Energie-Drosselung hinzugefügt, die nur auf Intel-Prozessoren der 6. Generation und höher verfügbar ist), eine Möglichkeit, die Akkulaufzeit von Laptops zu erhöhen, indem Hintergrundprozesse verlangsamt werden. Diese Funktion ist standardmäßig auf Laptops und Tablets aktiviert. Obwohl Windows gut darin ist, Hintergrund-Apps zu erkennen und die Leistung zu begrenzen, kann es Situationen geben, in denen diese Funktion nicht so wünschenswert ist.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Taskleisten- und Startmenüeinstellungen -->
|
||||
<div class="section-header">Taskleiste und Startmenü</div>
|
||||
<div class="settings-group">
|
||||
<div>
|
||||
<label class="toggle-switch" for="Bing Cloud content search">
|
||||
<input type="checkbox" id="Bing Cloud content search">
|
||||
<span class="toggle-switch-label"></span>
|
||||
</label>
|
||||
<span class="checkbox-label" onclick="toggleDescription(this)" >Verabschieden Sie sich von der Bing Cloud-Inhaltssuche</span>
|
||||
<p class="description">
|
||||
Das Windows 11-Startmenü wird mit einer Standard-Bing-Suchmaschine geliefert. Es erscheint, wenn Sie die Windows-Suche verwenden oder das Startmenü öffnen. Für lokale Suchvorgänge funktioniert es nicht gut und verlangsamt das Sucherlebnis.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="toggle-switch" for="Most used apps in start menu">
|
||||
<input type="checkbox" id="Most used apps in start menu">
|
||||
<span class="toggle-switch-label"></span>
|
||||
</label>
|
||||
<span class="checkbox-label" onclick="toggleDescription(this)">Meistverwendete Apps im Startmenü ausblenden</span>
|
||||
<p class="description">
|
||||
Zeigen oder verbergen Sie meistverwendete Apps im Windows 11-Startmenü.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="toggle-switch" for="Pin more Apps on Start menu">
|
||||
<input type="checkbox" id="Pin more Apps on Start menu">
|
||||
<span class="toggle-switch-label"></span>
|
||||
</label>
|
||||
<span class="checkbox-label" onclick="toggleDescription(this)">Mehr Apps im Startmenü anheften</span>
|
||||
<p class="description">
|
||||
Mehr Apps im Startmenü von Windows 11 anheften.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="toggle-switch" for="Chat icon on taskbar">
|
||||
<input type="checkbox" id="Chat icon on taskbar">
|
||||
<span class="toggle-switch-label"></span>
|
||||
</label>
|
||||
<span class="checkbox-label" onclick="toggleDescription(this)">Chat-Symbol in der Taskleiste</span>
|
||||
<p class="description">
|
||||
Zeigen oder verbergen Sie das Chat-Symbol von Microsoft Teams auf der Windows 11-Taskleiste.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="toggle-switch" for="Task view button on taskbar">
|
||||
<input type="checkbox" id="Task view button on taskbar">
|
||||
<span class="toggle-switch-label"></span>
|
||||
</label>
|
||||
<span class="checkbox-label" onclick="toggleDescription(this)">Taskansichtsschaltfläche in der Taskleiste</span>
|
||||
<p class="description">
|
||||
Zeigen oder verbergen Sie die Taskansichtsschaltfläche auf der Windows 11-Taskleiste.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- Plugin: Decrapify -->
|
||||
<div class="glassy-box" id="appxHeader">
|
||||
<div id="mainHeader" class="main-header-captions">
|
||||
<p>Entrümpelung
|
||||
<span style="color: red; font-size: 11px; margin-left: 12px;">*Microsoft mag es vielleicht nicht, aber uns ist es egal.</span>
|
||||
</p>
|
||||
</div>
|
||||
Hier sind einige Kandidaten, die es auf meine Abschussliste geschafft haben. Microsoft hat mit anderen Unternehmen zusammengearbeitet, um stilvolle App-Symbole dem neuen Startmenü von Windows 10 und 11 hinzuzufügen. Möchten Sie Ihren Desktop personalisieren? Klicken Sie einfach auf Symbole wie Picsart Pro oder WhatsApp, und Sie sind fertig! Aber warten Sie, es gibt mehr – Windows 11 enthält auch beliebte Apps wie Spotify, Instagram und TikTok. Fühlen Sie sich etwas überfüllt? Keine Sorge! Wenn Sie bereit sind, aufzuräumen, können Sie diese Apps hier entfernen.
|
||||
<h2>Installierte App-Pakete<span id="installedPackagesCount"></span></h2>
|
||||
|
||||
<button onclick="removeSelectedPackages()">Ausgewählte entfernen</button>
|
||||
<button id="btnsearchCustomCrapware" onclick="searchCustomCrapware()">Suche in optionaler Datenbank nach Bloatware</button>
|
||||
<button id="btnremoveCustomCrapware" onclick="removeCustomCrapware()">Bloatware in optionaler Datenbank entfernen</button>
|
||||
</p>
|
||||
|
||||
<div id="appPackagesContainer">
|
||||
<!-- Umschalter für installierte App-Pakete werden dynamisch geladen -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Plugin: WingetUI -->
|
||||
<div class="glassy-box" id="appsHeader">
|
||||
<div id="mainHeader" class="main-header-captions">WingetUI</div>
|
||||
<p>
|
||||
Clippys App-Auswahl für ein angenehmes Windows-Erlebnis! Windows wird mit grundlegenden Apps für viele Zwecke geliefert, aber viele der besten Windows-Software sind nicht vorinstalliert. Sie können sich entscheiden, einen anderen Webbrowser als Microsoft Edge herunterzuladen und zu installieren, wie zum Beispiel Chrome oder Firefox. Denn jede App ist ein neues Abenteuer!
|
||||
</p>
|
||||
|
||||
<button id="btnInstallSelectedApps" onclick="installSelectedApps()">Ausgewählte installieren</button>
|
||||
</p>
|
||||
|
||||
<div id="appList">
|
||||
<div class="app-item">
|
||||
<div class="toggle-switch">
|
||||
<input type="checkbox" class="toggle-switch-checkbox" id="app1Toggle">
|
||||
<label class="toggle-switch-label" for="app1Toggle"></label>
|
||||
</div>
|
||||
<label class="checkbox-label" for="app1Toggle">Google Chrome</label>
|
||||
<p>ID <span id="app1WingetId">Google.Chrome</span></p>
|
||||
<p>Ein einfacherer, sicherer und schnellerer Webbrowser als je zuvor, mit Googles Intelligenz integriert.</p>
|
||||
</div>
|
||||
|
||||
<div class="app-item">
|
||||
<div class="toggle-switch">
|
||||
<input type="checkbox" class="toggle-switch-checkbox" id="app2Toggle">
|
||||
<label class="toggle-switch-label" for="app2Toggle"></label>
|
||||
</div>
|
||||
<label class="checkbox-label" for="app2Toggle">Mozilla Firefox</label>
|
||||
<p>ID <span id="app2WingetId">Mozilla.Firefox</span></p>
|
||||
<p>Mozilla Firefox ist eine kostenlose und Open-Source-Software, entwickelt von einer Gemeinschaft von Tausenden aus der ganzen Welt.</p>
|
||||
</div>
|
||||
|
||||
<div class="app-item">
|
||||
<div class="toggle-switch">
|
||||
<input type="checkbox" class="toggle-switch-checkbox" id="app3Toggle">
|
||||
<label class="toggle-switch-label" for="app3Toggle"></label>
|
||||
</div>
|
||||
<label class="checkbox-label" for="app3Toggle">Opera</label>
|
||||
<p>ID <span id="app3WingetId">Opera.Opera</span></p>
|
||||
<p>Der Opera-Browser bietet alles, was Sie für ein privates, sicheres und effizientes Surfen benötigen, sowie eine Vielzahl einzigartiger Funktionen zur Verbesserung Ihrer Möglichkeiten online.</p>
|
||||
</div>
|
||||
|
||||
<div class="app-item">
|
||||
<div class="toggle-switch">
|
||||
<input type="checkbox" class="toggle-switch-checkbox" id="app4Toggle">
|
||||
<label class="toggle-switch-label" for="app4Toggle"></label>
|
||||
</div>
|
||||
<label class="checkbox-label" for="app4Toggle">Vivaldi</label>
|
||||
<p>ID <span id="app4WingetId">VivaldiTechnologies.Vivaldi</span></p>
|
||||
<p>Webbrowser auf Basis von Chromium mit zusätzlichen Funktionen, die von Opera inspiriert sind.</p>
|
||||
</div>
|
||||
|
||||
<div class="app-item">
|
||||
<div class="toggle-switch">
|
||||
<input type="checkbox" class="toggle-switch-checkbox" id="app5Toggle">
|
||||
<label class="toggle-switch-label" for="app5Toggle"></label>
|
||||
</div>
|
||||
<label class="checkbox-label" for="app5Toggle">VLC-Mediaplayer</label>
|
||||
<p>ID <span id="app5WingetId">VideoLAN.VLC</span></p>
|
||||
<p>VLC ist ein kostenloser und Open-Source-Cross-Plattform-Multimedia-Player und Framework, der die meisten Multimedia-Dateien und verschiedene Streaming-Protokolle abspielt.</p>
|
||||
</div>
|
||||
|
||||
<div class="app-item">
|
||||
<div class="toggle-switch">
|
||||
<input type="checkbox" class="toggle-switch-checkbox" id="app6Toggle">
|
||||
<label class="toggle-switch-label" for="app6Toggle"></label>
|
||||
</div>
|
||||
<label class="checkbox-label" for="app6Toggle">7-Zip</label>
|
||||
<p>ID <span id="app6WingetId">7Zip.7zip</span></p>
|
||||
<p>Kostenloses und Open-Source-Dateiarchivierungsprogramm mit hoher Komprimierungsrate.</p>
|
||||
</div>
|
||||
|
||||
<div class="app-item">
|
||||
<div class="toggle-switch">
|
||||
<input type="checkbox" class="toggle-switch-checkbox" id="app7Toggle">
|
||||
<label class="toggle-switch-label" for="app7Toggle"></label>
|
||||
</div>
|
||||
<label class="checkbox-label" for="app7Toggle">Notepad++</label>
|
||||
<p>ID <span id="app7WingetId">Notepad++.Notepad++</span></p>
|
||||
<p>Notepad++ ist ein kostenloser Quellcode-Editor, der mehrere Sprachen unterstützt.</p>
|
||||
</div>
|
||||
|
||||
<div class="app-item">
|
||||
<div class="toggle-switch">
|
||||
<input type="checkbox" class="toggle-switch-checkbox" id="app8Toggle">
|
||||
<label class="toggle-switch-label" for="app8Toggle"></label>
|
||||
</div>
|
||||
<label class="checkbox-label" for="app8Toggle">Microsoft PowerToys</label>
|
||||
<p>ID <span id="app8WingetId">Microsoft.PowerToys</span></p>
|
||||
<p>Microsoft PowerToys ist eine Reihe von Dienstprogrammen für Power-User, um ihre Windows-Erfahrung für eine größere Produktivität zu optimieren und zu vereinfachen.</p>
|
||||
</div>
|
||||
|
||||
<div class="app-item">
|
||||
<div class="toggle-switch">
|
||||
<input type="checkbox" class="toggle-switch-checkbox" id="app9Toggle">
|
||||
<label class="toggle-switch-label" for="app9Toggle"></label>
|
||||
</div>
|
||||
<label class="checkbox-label" for="app9Toggle">Adobe Acrobat Reader DC</label>
|
||||
<p>ID <span id="app9WingetId">Adobe.Acrobat.Reader.64-bit </span></p>
|
||||
<p>Der kostenlose globale Standard zum zuverlässigen Anzeigen, Drucken, Signieren und Kommentieren von PDF-Dokumenten.</p>
|
||||
</div>
|
||||
|
||||
<div class="app-item">
|
||||
<div class="toggle-switch">
|
||||
<input type="checkbox" class="toggle-switch-checkbox" id="app10Toggle">
|
||||
<label class="toggle-switch-label" for="app10Toggle"></label>
|
||||
</div>
|
||||
<label class="checkbox-label" for="app10Toggle">IrfanView</label>
|
||||
<p>ID <span id="app10WingetId">IrfanSkiljan.IrfanView</span></p>
|
||||
<p>Schneller und kompakter Bildbetrachter und Konverter.</p>
|
||||
</div>
|
||||
<!-- Hier können weitere App-Einträge hinzugefügt werden, falls erforderlich -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Assisted Chatbox-Behälter mit seinem Autovervollständigungs-Eingabefeld -->
|
||||
<div class="chatbox-container">
|
||||
<input type="text" id="chatbox" placeholder="Hier tippen, um zu suchen">
|
||||
</div>
|
||||
|
||||
<!-- UI: Clippy -->
|
||||
<div id="clippy-container">
|
||||
<!-- Das Bild wird dynamisch aus C# geladen -->
|
||||
<img id="clippy-image">
|
||||
</div>
|
||||
|
||||
<!-- UI: Clippys Sprechblase -->
|
||||
<div id="logContainer">
|
||||
<p>Möchten Sie Hilfe?</p>
|
||||
<div id="buttons-container">
|
||||
<!-- Die Hauptbuttons werden dynamisch geladen -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- UI: Haftungsausschluss -->
|
||||
<div>
|
||||
<p style="color: black ; font-size:13px;">Winpilot arbeitet unabhängig, sogar offline. — <a href="https://github.com/builtbybel/Winpilot" target="_blank" style="text-decoration: none;">Senden Sie Feedback</a>, um mir zu helfen, zu verbessern.</p>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
@ -1,191 +0,0 @@
|
||||
[
|
||||
{
|
||||
"question": "Oh, lieber! Ich bin auf einen Fehler in der App gestoßen! Kannst du helfen? #reddit #hilfe #problem #github",
|
||||
"response": "Keine Angst! 🛠️ Ich übernehme das und werde diese Fehler beheben! #BugBuster",
|
||||
"action": "https://www.reddit.com/search/?q=bloatynosy&type=comment&sort=new"
|
||||
},
|
||||
{
|
||||
"question": "Wie füge ich mein Microsoft-Konto hinzu?",
|
||||
"response": "Natürlich! Ich zeige dir den richtigen Weg. Lass uns gemeinsam zu den Kontoeinstellungen navigieren... 🧭",
|
||||
"action": "ms-settings:privacy-accountinfo"
|
||||
},
|
||||
{
|
||||
"question": "🤓 Ich bin bereit, eine PIN einzurichten!",
|
||||
"response": "Absolut! Lass uns gemeinsam zu den Anmeldeeinstellungen gehen...",
|
||||
"action": "ms-settings:signinoptions"
|
||||
},
|
||||
{
|
||||
"question": "Zeit, nach diesen aufregenden Windows-Updates zu suchen! 🔄",
|
||||
"response": "Natürlich! Ich werde sofort die Überprüfung der Updates starten. Los geht's...",
|
||||
"action": "ms-settings:windowsupdate"
|
||||
},
|
||||
{
|
||||
"question": "🔄 Wie stelle ich Backups wieder her?",
|
||||
"response": "Natürlich! Lass uns zu den Windows-Backup-Einstellungen navigieren. Außerdem kann ich das erstaunliche Appcopier von Belim für Backup-Zwecke empfehlen!",
|
||||
"action": "ms-settings:backup"
|
||||
},
|
||||
{
|
||||
"question": "🗑️ Wie deinstalliere ich eine App?",
|
||||
"response": "Natürlich! Ich öffne den Windows-Apps-Deinstallierer für dich.",
|
||||
"action": "ms-settings:appsfeatures"
|
||||
},
|
||||
{
|
||||
"question": "🔄 Wie setze ich mein System zurück?",
|
||||
"response": "Hallo! Möchtest du deinem PC einen Neuanfang geben? Das Zurücksetzen deines Systems ist wie das Drücken der 'Zurücksetzen'-Taste eines Puzzles - es hilft dir, von vorne zu beginnen und dabei deine persönlichen Daten und die meisten Windows-Einstellungen sicher zu behalten. Lass mich dir helfen! 🔄",
|
||||
"action": "systemreset"
|
||||
},
|
||||
{
|
||||
"question": "🖼️ Lass uns meinen Desktop mit einem neuen Hintergrundbild aufpeppen!",
|
||||
"response": "Absolut! Dein Desktop sollte deinen Stil widerspiegeln. Lass uns etwas ändern!",
|
||||
"action": "changeWallpaper"
|
||||
},
|
||||
{
|
||||
"question": "💻 Zeit, das Erscheinungsbild und die Leistung von Windows anzupassen!",
|
||||
"response": "Absolut! Lass uns zusammen zu den Leistungsoptionen gehen.",
|
||||
"action": "SystemPropertiesPerformance.exe"
|
||||
},
|
||||
{
|
||||
"question": "🌗 Dunkler Modus oder heller Modus? Lass uns umschalten!",
|
||||
"response": "Komm mit mir, während wir zwischen den dunklen und hellen Seiten von Windows wechseln...",
|
||||
"action": "toggleThemeMode"
|
||||
},
|
||||
{
|
||||
"question": "🛡️ Erstellen eines Wiederherstellungspunkts für zusätzliche Sicherheit!",
|
||||
"response": "Dein System ist jetzt auf der sicheren Seite! Wiederherstellungspunkt erstellt.",
|
||||
"action": "createRestorePoint",
|
||||
"powershellCommand": "$desc = 'CoTweaker Restore'; Checkpoint-Computer -Description \"$desc\" -RestorePointType \"Modify_Settings\""
|
||||
},
|
||||
{
|
||||
"question": "🧹 Könntest du mir helfen, meinen Speicher aufzuräumen?",
|
||||
"response": "Zeit, aufzuräumen! Intelligentes Speichersystem wird ausgeführt, um Platz für dich freizumachen.",
|
||||
"action": "runStorageSense"
|
||||
},
|
||||
{
|
||||
"question": "Was ist meine Windows-Version?",
|
||||
"response": "Du benutzt derzeit Build: [buildNumber]. Sieht gut aus, Champ! 🎉",
|
||||
"action": "showWindowsVersion"
|
||||
},
|
||||
{
|
||||
"question": "💾 Kannst du mir den verfügbaren Speicherplatz auf meinem System anzeigen?",
|
||||
"response": "Möchtest du den verfügbaren Speicherplatz deines Systems überprüfen? Kein Problem! Lass uns gemeinsam einen kurzen Blick darauf werfen. Ich habe deinen Rücken!",
|
||||
"action": "showDiskSpace"
|
||||
},
|
||||
{
|
||||
"question": "📸 Möchtest du einen Screenshot mit #SnippingTool machen?",
|
||||
"response": "Screenshot erstellt und in die Zwischenablage kopiert. Bereit für den nächsten Schritt!",
|
||||
"action": "takeScreenshot"
|
||||
},
|
||||
{
|
||||
"question": "Könntest du mir die Apps anzeigen, die mit Windows starten?",
|
||||
"response": "Öffne den Task-Manager und wechsle zum Autostart-Tab. Lass uns sehen, was mit Windows startet!",
|
||||
"action": "switchToAutostartTab"
|
||||
},
|
||||
{
|
||||
"question": "🚀 Möchtest du Prozesse mit hohem RAM-Verbrauch sehen?",
|
||||
"response": "Lass uns einen Blick darauf werfen! Auflisten von Prozessen mit hohem RAM-Verbrauch.",
|
||||
"action": "showHighRamProcesses"
|
||||
},
|
||||
{
|
||||
"question": "🛡️ Ich möchte einen schnellen Scan in Windows Defender Security durchführen.",
|
||||
"response": "Kein Problem! Führe einen schnellen Windows Defender-Scan durch, um dein System sicher zu halten.",
|
||||
"action": "runWindowsDefenderScan"
|
||||
},
|
||||
{
|
||||
"question": "Könntest du mir eine Vorschau von Chris Titus Tool in Aktion geben? #plugin",
|
||||
"response": "Natürlich! Lass uns eintauchen. PowerShell-Skript wird interpretiert...",
|
||||
"action": "runPSFile",
|
||||
"scriptPath": "plugins\\ChrisTitusAppHandler.ps1"
|
||||
},
|
||||
{
|
||||
"question": "Kannst du mir helfen, die Microsoft OneDrive-App zu entfernen? #plugin",
|
||||
"response": "Natürlich! Lass mich das für dich erledigen. PowerShell-Skript wird interpretiert...",
|
||||
"action": "runPSFile",
|
||||
"scriptPath": "plugins\\OneDriveHandler.ps1"
|
||||
},
|
||||
{
|
||||
"question": "Möchtest du den Papierkorb leeren?",
|
||||
"response": "Verstanden! Ich leere den Papierkorb für dich...",
|
||||
"action": "runPS",
|
||||
"command": "Clear-RecycleBin -Force"
|
||||
},
|
||||
{
|
||||
"question": "🌐 Könntest du meine IP-Adresse überprüfen?",
|
||||
"response": "Natürlich! Überprüfe deine öffentliche IP-Adresse...",
|
||||
"action": "ipCheck"
|
||||
},
|
||||
{
|
||||
"question": "Ich möchte meine System-, Datenschutz- und Gaming-Einstellungen einrichten. #plugin",
|
||||
"response": "Wechsel zu CoTweaker...",
|
||||
"action": "plugCotweaker"
|
||||
},
|
||||
{
|
||||
"question": "💼 Wie wäre es, bloatware appx-Pakete zu deinstallieren? #plugin",
|
||||
"response": "Zeit zum Aufräumen! Wechsel zu Decrapify...",
|
||||
"action": "plugDecrapify"
|
||||
},
|
||||
{
|
||||
"question": "Ich interessiere mich dafür, eine App mit winget zu installieren. #plugin",
|
||||
"response": "Lass es uns machen! Wechsel zu WingetUI...",
|
||||
"action": "plugWingetUI"
|
||||
},
|
||||
{
|
||||
"question": "Kannst du mir helfen, nach KI auf meinem System zu suchen? #plugin",
|
||||
"response": "Natürlich! Lass uns sehen, welche KI-Funktionen aktiviert sind.",
|
||||
"action": "plugCopilotless"
|
||||
},
|
||||
{
|
||||
"question": "👋 Hallo! Brauchst du einen Clippy-Tipp?",
|
||||
"response": "Du hast Glück! ✨ Wie wäre es mit einem Tipp? 📎",
|
||||
"action": "plugClippySupreme"
|
||||
},
|
||||
{
|
||||
"question": "Möchtest du Windows Explorer (zusammen mit der Taskleiste und dem Startmenü) neu starten?",
|
||||
"response": "Kein Problem! Explorer.exe wird neu gestartet...",
|
||||
"action": "shell",
|
||||
"command": "taskkill /f /im explorer.exe && start explorer.exe"
|
||||
},
|
||||
{
|
||||
"question": "Möchtest du die Ausrichtung der Taskleiste nach links ändern?",
|
||||
"response": "Natürlich! Die Taskleiste wurde nach links ausgerichtet.",
|
||||
"action": "shell",
|
||||
"command": "reg add HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced /v TaskbarAl /t REG_DWORD /d 0 /f"
|
||||
},
|
||||
{
|
||||
"question": "Wie wäre es, die Ausrichtung der Taskleiste in die Mitte zu ändern?",
|
||||
"response": "Natürlich! Die Taskleiste wurde in die Mitte ausgerichtet.",
|
||||
"action": "shell",
|
||||
"command": "reg add HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced /v TaskbarAl /t REG_DWORD /d 1 /f"
|
||||
},
|
||||
{
|
||||
"question": "Sollen wir die Widgets-Schaltfläche in der Taskleiste hinzufügen?",
|
||||
"response": "Lass uns die Dinge aufpeppen! Die Widgets-Schaltfläche wird zur Taskleiste hinzugefügt...",
|
||||
"action": "shell",
|
||||
"command": "reg add HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced /v TaskbarDa /t REG_DWORD /d 1 /f"
|
||||
},
|
||||
{
|
||||
"question": "Möchtest du die Widgets-Schaltfläche in der Taskleiste entfernen?",
|
||||
"response": "Natürlich! Lass uns die Widgets-Schaltfläche aus der Taskleiste entfernen...",
|
||||
"action": "shell",
|
||||
"command": "reg add HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced /v TaskbarDa /t REG_DWORD /d 0 /f"
|
||||
},
|
||||
{
|
||||
"question": "Möchtest du die Copilot-Schaltfläche in Microsoft Edge deaktivieren? #ai",
|
||||
"response": "Kein Problem! Die Copilot-Schaltfläche in Edge wurde deaktiviert. Bitte starte Edge neu.",
|
||||
"action": "shell",
|
||||
"command": "reg add HKEY_CURRENT_USER\\Software\\Policies\\Microsoft\\Edge /v HubsSidebarEnabled /t REG_DWORD /d 0 /f"
|
||||
},
|
||||
{
|
||||
"question": "Wie wäre es, die Copilot-Schaltfläche in der Taskleiste zu deaktivieren? #ai",
|
||||
"response": "Kein Problem! Die Copilot-Schaltfläche in der Taskleiste wurde deaktiviert.",
|
||||
"action": "shell",
|
||||
"command": "reg add HKEY_CURRENT_USER\\Software\\Policies\\Microsoft\\Windows /v TurnOffWindowsCopilot /t REG_DWORD /d 1 /f"
|
||||
},
|
||||
{
|
||||
"question": "Möchtest du die Copilot Pro-Anzeigen auf Windows 11 deaktivieren? #ai #vivetool",
|
||||
"response": "Kein Problem! ViveTool-Aktion erfolgreich ausgeführt. Bitte beachte, dass dieses Feature in den neuesten Windows 11 Dev- und Beta-Builds ausgeblendet ist.",
|
||||
"action": "viveTool",
|
||||
"viveCommand": "disable",
|
||||
"viveFeatureId": "47942561",
|
||||
"viveBuildAvailability": "Dies ist in den neuesten Windows 11 Dev- und Beta-Builds ausgeblendet."
|
||||
}
|
||||
]
|
@ -1,14 +0,0 @@
|
||||
[LOW] Use Apps dark theme
|
||||
[LOW] Use Windows dark theme
|
||||
[LOW] Disable acrylic Fluent Design effects
|
||||
[MIDDLE] Disable Widgets
|
||||
[LOW] Disable Microsoft Teams on Startup
|
||||
[MIDDLE] Disable Game DVR feature
|
||||
[MIDDLE] Disable PowerThrottling
|
||||
[MIDDLE] Adjust visual effects for best performance
|
||||
[HIGH] Disable Diagnostic data
|
||||
[MIDDLE] Disable Connected User Experiences and Telemetry
|
||||
[HIGH] Disable Compatibility Telemetry
|
||||
[HIGH] Disable Automatic Installation of apps
|
||||
[HIGH] Disable Tailored experiences
|
||||
[HIGH] Disable Apps running in background
|
@ -1,2 +0,0 @@
|
||||
IrfanSkiljan.IrfanView
|
||||
7zip.7zip
|
@ -1 +0,0 @@
|
||||
Bloatware (from Microsoft, ASUS, Adobe, HP, Meta etc.)
|
@ -1,20 +0,0 @@
|
||||
[HIGH] Disable Google Chrome Telemetry
|
||||
[HIGH] Show hidden file name extensions
|
||||
[LOW] Disable acrylic Fluent Design effects
|
||||
[MIDDLE] Disable Widgets
|
||||
[MIDDLE] Uninstall Widgets feature
|
||||
Privacy
|
||||
[HIGH] Disable Diagnostic data
|
||||
[MIDDLE] Disable Connected User Experiences and Telemetry
|
||||
[HIGH] Disable Compatibility Telemetry
|
||||
[HIGH] Disable Location tracking
|
||||
[HIGH] Disable Advertising ID for Relevant Ads
|
||||
[HIGH] Disable Feedback notifications
|
||||
[HIGH] Disable Suggested content in Settings app
|
||||
[LOW] Disable Windows Hello Biometrics
|
||||
[HIGH] Disable Automatic Installation of apps
|
||||
[LOW] Disable Windows tips
|
||||
[HIGH] Disable Tailored experiences
|
||||
[LOW] We've recommend enabling Microsoft Windows Subsystem for Linux
|
||||
Bloatware (from Microsoft, Meta, ASUS, Adobe etc.)
|
||||
[HIGH] Search and remove pre-installed bloatware apps automatically
|
Binary file not shown.
Before Width: | Height: | Size: 1.3 MiB |
@ -1,71 +0,0 @@
|
||||
### LoveWindowsAgain - Packages (Supported packages)
|
||||
### License: MIT
|
||||
### Updated: 2022-02-10
|
||||
### More info: https://github.com/builtbybel/LoveWindowsAgain
|
||||
### You can add or delete entries in this file at any time.
|
||||
### You will find more packages in the Windows Package Manager manifest repository: https://github.com/microsoft/winget-pkgs/tree/master/manifests
|
||||
### Or just get them with this Web-GUI for Windows Package Manager: https://winstall.app
|
||||
|
||||
7zip.7zip
|
||||
Adobe.AdobeAcrobatReaderDC
|
||||
AnyDeskSoftwareGmbH.AnyDesk
|
||||
Audacity.Audacity
|
||||
Bandisoft.Bandizip
|
||||
BleachBit.BleachBit
|
||||
BraveSoftware.BraveBrowser
|
||||
Discord.Discord
|
||||
DominikReichl.KeePass
|
||||
valinet.ExplorerPatcher
|
||||
GIMP.GIMP
|
||||
Git.Git
|
||||
GitHub.GitHubDesktop
|
||||
GitHub.cli
|
||||
Google.Chrome
|
||||
IrfanSkiljan.IrfanView
|
||||
LibreOffice.LibreOffice
|
||||
M2Team.NanaZip
|
||||
Malwarebytes.MalwarebytesMalwarebytes
|
||||
MehediHassan.Tweeten
|
||||
Microsoft.PowerToys
|
||||
Microsoft.Skype
|
||||
Microsoft.Teams
|
||||
Microsoft.VisualStudioCode
|
||||
Microsoft.WindowsTerminal
|
||||
Microsoft.dotNetFramework
|
||||
Mozilla.Firefox
|
||||
Mozilla.Thunderbird
|
||||
Notepad++.Notepad++
|
||||
Opera.Opera
|
||||
Oracle.JavaRuntimeEnvironment
|
||||
Oracle.VirtualBox
|
||||
PDFsam.PDFsam
|
||||
Piriform.CCleaner
|
||||
Piriform.Defraggler
|
||||
Piriform.Recuva
|
||||
PuTTY.PuTTY
|
||||
RARLab.WinRAR
|
||||
Rufus.Rufus
|
||||
ShareX.ShareXShareX
|
||||
SlackTechnologies.Slack
|
||||
SomePythonThings.ElevenClock
|
||||
StartIsBack.StartAllBack
|
||||
SumatraPDF.SumatraPDF
|
||||
TeamSpeakSystems.TeamSpeakClient
|
||||
TeamViewer.TeamViewer
|
||||
Telegram.TelegramDesktop
|
||||
TimKosse.FileZillaClient
|
||||
Tonec.InternetDownloadManager
|
||||
Twitch.Twitch
|
||||
Valve.SteamSteam
|
||||
VideoLAN.VLC
|
||||
VivaldiTechnologies.Vivaldi
|
||||
WinSCP.WinSCP
|
||||
WiresharkFoundation.Wireshark
|
||||
XBMCFoundation.Kodi
|
||||
Zoom.Zoom
|
||||
calibre.calibre
|
||||
flux.flux
|
||||
picpick.picpick
|
||||
qBittorrent.qBittorrent
|
||||
voidtools.EverythingLite
|
||||
yt-dlg.yt-dlg
|
@ -1,14 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
|
||||
</startup>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
Binary file not shown.
Before Width: | Height: | Size: 5.7 KiB |
Binary file not shown.
Before Width: | Height: | Size: 8.3 KiB |
Binary file not shown.
Before Width: | Height: | Size: 66 KiB |
@ -1,242 +0,0 @@
|
||||
<?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>false</AutoGenerateBindingRedirects>
|
||||
<Deterministic>true</Deterministic>
|
||||
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||
<TargetFrameworkProfile />
|
||||
<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.Numerics" />
|
||||
<Reference Include="System.Runtime.CompilerServices.VisualC" />
|
||||
<Reference Include="System.Runtime.Serialization" />
|
||||
<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\Bloatware\StoreAppsPrivate.cs" />
|
||||
<Compile Include="Features\Bloatware\StoreHallOfShame.cs" />
|
||||
<Compile Include="Features\Browser\GoogleChrome.cs" />
|
||||
<Compile Include="Features\Browser\MicrosoftEdge.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\HiddenFileExt.cs" />
|
||||
<Compile Include="Features\Explorer\HiddenFileFolder.cs" />
|
||||
<Compile Include="Features\Privacy\BackgroundApps.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\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\Bloatware\StoreApps.cs" />
|
||||
<Compile Include="Features\Bloatware\StoreEngine.cs" />
|
||||
<Compile Include="Features\System\FaxPrinter.cs" />
|
||||
<Compile Include="Features\System\FullContextMenus.cs" />
|
||||
<Compile Include="Features\Bloatware\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\Copilot.cs" />
|
||||
<Compile Include="Features\Taskbar\MostUsedApps.cs" />
|
||||
<Compile Include="Features\Taskbar\StartmenuLayout.cs" />
|
||||
<Compile Include="Features\Taskbar\StartmenuSearch.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="Helpers\ViewHelper.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="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="GitHub.cs" />
|
||||
<Compile Include="ToogleSwitch.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Views\BloatyPageView.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Views\BloatyPageView.Designer.cs">
|
||||
<DependentUpon>BloatyPageView.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Views\SettingsPageView.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Views\SettingsPageView.Designer.cs">
|
||||
<DependentUpon>SettingsPageView.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\NosyPageView.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Views\NosyPageView.Designer.cs">
|
||||
<DependentUpon>NosyPageView.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Views\WizardPageView.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Views\WizardPageView.Designer.cs">
|
||||
<DependentUpon>WizardPageView.cs</DependentUpon>
|
||||
</Compile>
|
||||
<EmbeddedResource Include="MainForm.resx">
|
||||
<DependentUpon>MainForm.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Views\BloatyPageView.resx">
|
||||
<DependentUpon>BloatyPageView.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Views\SettingsPageView.resx">
|
||||
<DependentUpon>SettingsPageView.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Views\PackagesPageView.resx">
|
||||
<DependentUpon>PackagesPageView.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Views\NosyPageView.resx">
|
||||
<DependentUpon>NosyPageView.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Views\WizardPageView.resx">
|
||||
<DependentUpon>WizardPageView.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" />
|
||||
<None Include="GitHubIcon.png" />
|
||||
<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>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
@ -1,51 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Features.Feature
|
||||
{
|
||||
public abstract class FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
public string ScriptFilePath { get; set; } // Path to Powershell plugins directory
|
||||
|
||||
/// <summary>
|
||||
/// Name of Feature
|
||||
/// </summary>
|
||||
/// <returns>The feature name</returns>
|
||||
public abstract string ID();
|
||||
|
||||
/// <summary>
|
||||
/// Description of Feature
|
||||
/// </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();
|
||||
|
||||
public virtual bool LoadScriptFile()
|
||||
{
|
||||
// Check if the script file path is set for the feature
|
||||
if (!string.IsNullOrEmpty(ScriptFilePath))
|
||||
{
|
||||
}
|
||||
|
||||
return false; // Return false if no script file path is set for the feature
|
||||
}
|
||||
}
|
||||
}
|
@ -1,25 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using System;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Features.Feature
|
||||
{
|
||||
internal class FeatureNode : TreeNode
|
||||
{
|
||||
public FeatureBase Feature { get; }
|
||||
public string ScriptFilePath { get; set; } // Path to the external script file
|
||||
|
||||
public FeatureNode(FeatureBase feature)
|
||||
{
|
||||
Feature = feature;
|
||||
Text = Feature.ID();
|
||||
Checked = true;
|
||||
ScriptFilePath = ""; // Initialize the script file path
|
||||
}
|
||||
|
||||
public string GetFeatureInfo()
|
||||
{
|
||||
return Feature.Info();
|
||||
}
|
||||
}
|
||||
}
|
@ -1,86 +0,0 @@
|
||||
using BloatyNosy;
|
||||
using System.Linq;
|
||||
using System.Management.Automation;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace Features.Feature.Apps
|
||||
{
|
||||
internal class StoreApps : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
private readonly PowerShell powerShell = PowerShell.Create();
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "*[HIGH] Search and remove pre-installed bloatware apps automatically (Right-click to remove bloatware manually)";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "To remove specific apps use the BloatFinder app in the \"More Apps\" section or right click on this feature";
|
||||
}
|
||||
|
||||
private void RemoveApps(string str)
|
||||
{
|
||||
bool error = false;
|
||||
using (PowerShell script = PowerShell.Create())
|
||||
{
|
||||
script.AddScript("Get-AppxPackage " + str + " | Remove-AppxPackage");
|
||||
|
||||
script.Invoke();
|
||||
error = script.HadErrors;
|
||||
}
|
||||
|
||||
if (error)
|
||||
{
|
||||
logger.Log("Error removing " + str);
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.Log("App removed " + str);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
var apps = BloatwareList.GetList();
|
||||
|
||||
powerShell.Commands.Clear();
|
||||
powerShell.AddCommand("get-appxpackage");
|
||||
powerShell.AddCommand("Select").AddParameter("property", "name");
|
||||
|
||||
logger.Log("We found the following bloatware on your system: (if no apps are listed, then nothing was found)");
|
||||
|
||||
foreach (PSObject result in powerShell.Invoke())
|
||||
{
|
||||
string current = result.ToString();
|
||||
|
||||
if (!apps.Contains(Regex.Replace(current, "(@{Name=)|(})", ""))) continue;
|
||||
logger.Log("- " + (Regex.Replace(current, "(@{Name=)|(})", "")));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
var apps = BloatwareList.GetList();
|
||||
|
||||
logger.Log("Searching bloatware database...");
|
||||
foreach (var str in apps)
|
||||
{
|
||||
logger.Log("- Uninstalling " + str.ToString());
|
||||
RemoveApps(str);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
logger.Log("-[RemoveStoreApps] This feature does not provide a restore mode.");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,74 +0,0 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace BloatyNosy
|
||||
{
|
||||
public static class BloatwareList
|
||||
{
|
||||
// Our Windows 11 bloatware list
|
||||
public static IEnumerable<string> GetList()
|
||||
{
|
||||
var apps = new List<string>
|
||||
{
|
||||
"2FE3CB00.PICSART-PHOTOSTUDIO",
|
||||
"4DF9E0F8.Netflix",
|
||||
"5319275A.WhatsAppDesktop",
|
||||
"9E2F88E3.TWITTER",
|
||||
"NAVER.LINEwin8_8ptj331gd3tyt",
|
||||
"SpotifyAB.SpotifyMusic",
|
||||
"king.com.CandyCrushFriends",
|
||||
"king.com.CandyCrushSaga",
|
||||
"king.com.FarmHeroesSaga",
|
||||
"22364Disney.ESPNBetaPWA",
|
||||
"5A894077.McAfeeSecurity",
|
||||
"AdobeSystemsIncorporated.AdobeCreativeCloudExpress",
|
||||
"AmazonVideo.PrimeVideo",
|
||||
"AppUp.IntelGraphicsExperience",
|
||||
"B9ECED6F.ASUSPCAssistant",
|
||||
"B9ECED6F.ScreenPadMaster",
|
||||
"BytedancePte.Ltd.TikTok",
|
||||
"Clipchamp.Clipchamp",
|
||||
"DTSInc.DTSAudioProcess",
|
||||
"AdobeSystemsIncorporated.AdobeLightroom",
|
||||
"AdobeSystemsIncorporated.AdobePhotoshopExpress",
|
||||
"Clipchamp.Clipchamp_yxz26nhyzhsrt",
|
||||
"CorelCorporation.PaintShopPro",
|
||||
"FACEBOOK.317180B0BB486",
|
||||
"Facebook.InstagramBeta",
|
||||
"AD2F1837.HPJumpStarts",
|
||||
"AD2F1837.HPPCHardwareDiagnosticsWindows",
|
||||
"AD2F1837.HPPowerManager",
|
||||
"AD2F1837.HPPrivacySettings",
|
||||
"AD2F1837.HPSupportAssistant",
|
||||
"AD2F1837.HPSureShieldAI",
|
||||
"AD2F1837.HPSystemInformation",
|
||||
"AD2F1837.HPQuickDrop",
|
||||
"AD2F1837.HPWorkWell",
|
||||
"AD2F1837.myHP",
|
||||
"AD2F1837.HPDesktopSupportUtilities",
|
||||
"AD2F1837.HPQuickTouch",
|
||||
"AD2F1837.HPEasyClean",
|
||||
"AD2F1837.HPSystemInformation",
|
||||
"Microsoft.549981C3F5F10",
|
||||
"Microsoft.BingNews",
|
||||
"Microsoft.BingWeather",
|
||||
"Microsoft.GamingApp",
|
||||
"Microsoft.Getstarted",
|
||||
"Microsoft.Microsoft3DViewer",
|
||||
"Microsoft.MicrosoftOfficeHub",
|
||||
"Microsoft.MicrosoftSolitaireCollection",
|
||||
"Microsoft.MicrosoftStickyNotes",
|
||||
"Microsoft.MixedReality.Portal",
|
||||
"Microsoft.Office.OneNote",
|
||||
"Microsoft.OneDriveSync",
|
||||
"Microsoft.OneConnect",
|
||||
"Microsoft.People",
|
||||
"Microsoft.Print3D",
|
||||
"Microsoft.SkypeApp",
|
||||
"Microsoft.Wallet",
|
||||
"Microsoft.WindowsSoundRecorder"
|
||||
};
|
||||
|
||||
return apps;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace BloatyNosy
|
||||
{
|
||||
public static class BloatwareHallOfShame
|
||||
{
|
||||
// Our Windows 11 Hall Of Shame
|
||||
public static IEnumerable<string> GetList()
|
||||
{
|
||||
var apps = new List<string>
|
||||
{
|
||||
"BytedancePte.Ltd.TikTok",
|
||||
"Facebook.InstagramBeta",
|
||||
"Microsoft.MicrosoftOfficeHub",
|
||||
"Microsoft.MicrosoftSolitaireCollection",
|
||||
"Microsoft.ZuneVideo",
|
||||
"Microsoft.MixedReality.Portal",
|
||||
"Microsoft.Getstarted",
|
||||
"Microsoft.Office.OneNote",
|
||||
"Microsoft.Print3D",
|
||||
"Microsoft.People",
|
||||
};
|
||||
|
||||
return apps;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,81 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Net;
|
||||
|
||||
namespace Features.Feature.Bloatware
|
||||
{
|
||||
internal class OneDriveRemove : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "Uninstall OneDrive";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
var appPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"\Microsoft\OneDrive\OneDrive.exe";
|
||||
|
||||
if (!File.Exists(appPath))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Process proc = new Process();
|
||||
proc.StartInfo.CreateNoWindow = true;
|
||||
proc.StartInfo.RedirectStandardError = true;
|
||||
proc.StartInfo.RedirectStandardOutput = true;
|
||||
proc.StartInfo.UseShellExecute = false;
|
||||
|
||||
logger.Log("Uninstalling OneDrive...Please wait.");
|
||||
string sysEnv = Environment.GetEnvironmentVariable("SYSTEMROOT");
|
||||
proc.StartInfo.FileName = "taskkill"; proc.StartInfo.Arguments = "/F /IM OneDrive.exe";
|
||||
proc.Start();
|
||||
|
||||
proc.StartInfo.FileName = (sysEnv + @"\System32\OneDriveSetup.exe");
|
||||
proc.StartInfo.Arguments = "/uninstall";
|
||||
proc.Start();
|
||||
|
||||
proc.WaitForExit();
|
||||
logger.Log("Onedrive has been successfully uninstalled.");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{ logger.Log("{0}", ex.Message); }
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
using (var client = new WebClient())
|
||||
{
|
||||
logger.Log("= We've opened the download link in your Browser.\n\nPlease install the package \"OneDrive\". ");
|
||||
Process.Start("https://www.microsoft.com/microsoft-365/onedrive/download");
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{ logger.Log("{0}", ex.Message); }
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,106 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using System.Linq;
|
||||
using System.Management.Automation;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace Features.Feature.Bloatware
|
||||
{
|
||||
internal class StoreApps : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
private readonly PowerShell powerShell = PowerShell.Create();
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "*Search and remove pre-installed bloatware apps automatically";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "To remove specific apps use the Bloatpilot function in the bottom right corner.";
|
||||
}
|
||||
|
||||
private void RemoveApps(string str, out bool removed)
|
||||
{
|
||||
removed = false;
|
||||
bool error = false;
|
||||
using (PowerShell script = PowerShell.Create())
|
||||
{
|
||||
script.AddScript("Get-AppxPackage " + str + " | Remove-AppxPackage");
|
||||
script.Invoke();
|
||||
error = script.HadErrors;
|
||||
}
|
||||
|
||||
if (error)
|
||||
{
|
||||
logger.Log("Error removing " + str);
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.Log("App removed " + str);
|
||||
removed = true;
|
||||
}
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
var apps = BloatwareList.GetList();
|
||||
|
||||
powerShell.Commands.Clear();
|
||||
powerShell.AddCommand("get-appxpackage");
|
||||
powerShell.AddCommand("Select").AddParameter("property", "name");
|
||||
|
||||
bool foundMatches = false; // Flag variable to track if matches are found
|
||||
logger.Log("The following bloatware has been found:");
|
||||
|
||||
try
|
||||
{
|
||||
foreach (PSObject result in powerShell.Invoke())
|
||||
{
|
||||
string current = result.Properties["Name"].Value.ToString();
|
||||
|
||||
if (apps.Contains(Regex.Replace(current, "(@{Name=)|(})", "")))
|
||||
{
|
||||
|
||||
foundMatches = true;
|
||||
logger.Log((Regex.Replace(current, "(@{Name=)|(})", "")));
|
||||
}
|
||||
}
|
||||
}
|
||||
catch { }
|
||||
|
||||
if (!foundMatches)
|
||||
{
|
||||
logger.Log("Your system is free of bloatware.");
|
||||
}
|
||||
|
||||
return foundMatches; // Return value of foundMatches
|
||||
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
var apps = BloatwareList.GetList();
|
||||
logger.Log("Searching bloatware database...");
|
||||
bool foundAndDeleted = false;
|
||||
|
||||
foreach (var str in apps)
|
||||
{
|
||||
RemoveApps(str, out bool removed);
|
||||
if (removed)
|
||||
{
|
||||
logger.Log("[-] Uninstalled " + str.ToString());
|
||||
foundAndDeleted = true;
|
||||
}
|
||||
}
|
||||
|
||||
return foundAndDeleted;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
logger.Log("-[Remove Store Apps] This feature does not provide a restore mode.");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,126 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Management.Automation;
|
||||
|
||||
namespace Features.Feature.Bloatware
|
||||
{
|
||||
internal class StoreAppsPrivate : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
private readonly PowerShell powerShell = PowerShell.Create();
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "*Remove bloatware based on private database";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "Open the BLOAT-E.txt file in the app directory of Bloatynosy to edit your database.";
|
||||
}
|
||||
|
||||
private void RemoveApps(string str)
|
||||
{
|
||||
Process process = new Process();
|
||||
ProcessStartInfo startInfo = new ProcessStartInfo();
|
||||
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
|
||||
startInfo.FileName = "powershell.exe";
|
||||
startInfo.Arguments = str;
|
||||
process.StartInfo = startInfo;
|
||||
process.Start();
|
||||
process.WaitForExit();
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
string bloatyFilePath = Path.Combine(HelperTool.Utils.Data.DataRootDir, "BLOAT-E.txt");
|
||||
if (!File.Exists(bloatyFilePath))
|
||||
{
|
||||
logger.Log("Your private signature is free of bloatware.");
|
||||
return false; // Indicate failure
|
||||
}
|
||||
|
||||
string[] num = File.ReadAllLines(bloatyFilePath);
|
||||
|
||||
using (PowerShell powerShell = PowerShell.Create())
|
||||
{
|
||||
powerShell.AddCommand("get-appxpackage")
|
||||
.AddCommand("Select").AddParameter("property", "name");
|
||||
|
||||
bool foundMatch = false;
|
||||
logger.Log("The following apps would be removed based on your private bloatware database:");
|
||||
foreach (string line in num)
|
||||
{
|
||||
string[] package = line.Split(':');
|
||||
string appx = package[0].Trim();
|
||||
|
||||
foreach (PSObject result in powerShell.Invoke())
|
||||
{
|
||||
string current = result.ToString(); // Get the current app
|
||||
|
||||
if (current.Contains(appx))
|
||||
{
|
||||
foundMatch = true;
|
||||
logger.Log("[-] " + appx);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!foundMatch)
|
||||
{
|
||||
logger.Log("Your private scan is free of bloatware.\n[TIP] You can manually expand and maintain your private bloatware database \"BLOAT-E.txt\" in \"app\" directory.");
|
||||
}
|
||||
|
||||
return foundMatch; // Return value of foundMatch
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger.Log("[!] An error occurred: " + ex.Message);
|
||||
return false; // Indicate failure
|
||||
}
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
string[] num = File.ReadAllLines(HelperTool.Utils.Data.DataRootDir + "/BLOAT-E.txt");
|
||||
powerShell.Commands.Clear();
|
||||
powerShell.AddCommand("get-appxpackage");
|
||||
powerShell.AddCommand("Select").AddParameter("property", "name");
|
||||
|
||||
foreach (PSObject result in powerShell.Invoke())
|
||||
{
|
||||
string current = result.ToString(); // Get the current app
|
||||
|
||||
for (int i = 0; i < num.Length; i++)
|
||||
{
|
||||
string[] package = num[i].Split(':');
|
||||
string appx = package[0];
|
||||
string command = package[1];
|
||||
try
|
||||
{
|
||||
if (current.Contains(appx))
|
||||
{
|
||||
logger.Log("[?] Removing: " + appx + " (Wait...)");
|
||||
RemoveApps(command);
|
||||
logger.Log("[-] Removed: " + appx);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{ logger.Log("Error removing " + ex); }
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
logger.Log("- [Remove Store Apps] This feature does not provide a restore mode.");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,74 +0,0 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Bloatynosy
|
||||
{
|
||||
public static class BloatwareList
|
||||
{
|
||||
// Our Windows 11 bloatware list
|
||||
public static IEnumerable<string> GetList()
|
||||
{
|
||||
var apps = new List<string>
|
||||
{
|
||||
"2FE3CB00.PICSART-PHOTOSTUDIO",
|
||||
"4DF9E0F8.Netflix",
|
||||
"5319275A.WhatsAppDesktop",
|
||||
"9E2F88E3.TWITTER",
|
||||
"NAVER.LINEwin8_8ptj331gd3tyt",
|
||||
"SpotifyAB.SpotifyMusic",
|
||||
"king.com.CandyCrushFriends",
|
||||
"king.com.CandyCrushSaga",
|
||||
"king.com.FarmHeroesSaga",
|
||||
"22364Disney.ESPNBetaPWA",
|
||||
"5A894077.McAfeeSecurity",
|
||||
"AdobeSystemsIncorporated.AdobeCreativeCloudExpress",
|
||||
"AmazonVideo.PrimeVideo",
|
||||
"AppUp.IntelGraphicsExperience",
|
||||
"B9ECED6F.ASUSPCAssistant",
|
||||
"B9ECED6F.ScreenPadMaster",
|
||||
"BytedancePte.Ltd.TikTok",
|
||||
"Clipchamp.Clipchamp",
|
||||
"DTSInc.DTSAudioProcess",
|
||||
"AdobeSystemsIncorporated.AdobeLightroom",
|
||||
"AdobeSystemsIncorporated.AdobePhotoshopExpress",
|
||||
"Clipchamp.Clipchamp_yxz26nhyzhsrt",
|
||||
"CorelCorporation.PaintShopPro",
|
||||
"FACEBOOK.317180B0BB486",
|
||||
"Facebook.InstagramBeta",
|
||||
"AD2F1837.HPJumpStarts",
|
||||
"AD2F1837.HPPCHardwareDiagnosticsWindows",
|
||||
"AD2F1837.HPPowerManager",
|
||||
"AD2F1837.HPPrivacySettings",
|
||||
"AD2F1837.HPSupportAssistant",
|
||||
"AD2F1837.HPSureShieldAI",
|
||||
"AD2F1837.HPSystemInformation",
|
||||
"AD2F1837.HPQuickDrop",
|
||||
"AD2F1837.HPWorkWell",
|
||||
"AD2F1837.myHP",
|
||||
"AD2F1837.HPDesktopSupportUtilities",
|
||||
"AD2F1837.HPQuickTouch",
|
||||
"AD2F1837.HPEasyClean",
|
||||
"AD2F1837.HPSystemInformation",
|
||||
"Microsoft.549981C3F5F10",
|
||||
"Microsoft.BingNews",
|
||||
"Microsoft.BingWeather",
|
||||
"Microsoft.GamingApp",
|
||||
"Microsoft.Getstarted",
|
||||
"Microsoft.Microsoft3DViewer",
|
||||
"Microsoft.MicrosoftOfficeHub",
|
||||
"Microsoft.MicrosoftSolitaireCollection",
|
||||
"Microsoft.MicrosoftStickyNotes",
|
||||
"Microsoft.MixedReality.Portal",
|
||||
"Microsoft.Office.OneNote",
|
||||
"Microsoft.OneDriveSync",
|
||||
"Microsoft.OneConnect",
|
||||
"Microsoft.People",
|
||||
"Microsoft.Print3D",
|
||||
"Microsoft.SkypeApp",
|
||||
"Microsoft.Wallet",
|
||||
"Microsoft.WindowsSoundRecorder"
|
||||
};
|
||||
|
||||
return apps;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Bloatynosy
|
||||
{
|
||||
public static class BloatwareHallOfShame
|
||||
{
|
||||
// Our Windows 11 Hall Of Shame
|
||||
public static IEnumerable<string> GetList()
|
||||
{
|
||||
var apps = new List<string>
|
||||
{
|
||||
"BytedancePte.Ltd.TikTok",
|
||||
"Facebook.InstagramBeta",
|
||||
"Microsoft.MicrosoftOfficeHub",
|
||||
"Microsoft.MicrosoftSolitaireCollection",
|
||||
"Microsoft.ZuneVideo",
|
||||
"Microsoft.MixedReality.Portal",
|
||||
"Microsoft.Getstarted",
|
||||
"Microsoft.Office.OneNote",
|
||||
"Microsoft.Print3D",
|
||||
"Microsoft.People",
|
||||
};
|
||||
|
||||
return apps;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,66 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using Microsoft.Win32;
|
||||
|
||||
namespace Features.Feature.Browser
|
||||
{
|
||||
internal class ChromeTelemetry : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
private const string keyName = @"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome";
|
||||
private const int desiredValue = 0;
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "Disable Google Chrome Telemetry";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "This policy may lead to the following behavior in Chrome Browser:\r\nManaged by your organization, your browser is managed." +
|
||||
"\r\nThe changes can be reverted at any time.";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
return !(
|
||||
RegistryHelper.IntEquals(keyName, "MetricsReportingEnabled", desiredValue) &&
|
||||
RegistryHelper.IntEquals(keyName, "ChromeCleanupReportingEnabled", desiredValue) &&
|
||||
RegistryHelper.IntEquals(keyName, "ChromeCleanupEnabled", desiredValue)
|
||||
);
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "MetricsReportingEnabled", desiredValue, RegistryValueKind.DWord);
|
||||
Registry.SetValue(keyName, "ChromeCleanupReportingEnabled", desiredValue, RegistryValueKind.DWord);
|
||||
Registry.SetValue(keyName, "ChromeCleanupEnabled", desiredValue, RegistryValueKind.DWord);
|
||||
|
||||
logger.Log("- Google Chrome Telemetry has been disabled.");
|
||||
logger.Log(keyName);
|
||||
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.LocalMachine.DeleteSubKeyTree(@"Software\Policies\Google\Chrome", false);
|
||||
logger.Log("+ Google Chrome Telemetry has been enabled.");
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,64 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using Microsoft.Win32;
|
||||
|
||||
namespace Features.Feature.Browser
|
||||
{
|
||||
internal class EdgeBingAIButton : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
private const string keyName = @"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge";
|
||||
private const int desiredValue = 0;
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "Disable giant Bing search (AI chat) button in Edge Browser";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "This policy may lead to the following behavior in Edge Browser:\r\nManaged by your organization, your browser is managed." +
|
||||
"\r\nThe changes can be reverted at any time.";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
return !(
|
||||
RegistryHelper.IntEquals(keyName, "HubsSidebarEnabled", desiredValue)
|
||||
);
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "HubsSidebarEnabled", desiredValue, RegistryValueKind.DWord);
|
||||
|
||||
logger.Log("- Bing search (AI chat) button has been disabled.");
|
||||
logger.Log(keyName);
|
||||
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
var RegKey = Registry.LocalMachine.OpenSubKey(@"Software\Policies\Microsoft\Edge", true);
|
||||
RegKey.DeleteValue("HubsSidebarEnabled");
|
||||
|
||||
logger.Log("+ Bing search (AI chat) button has been enabled.");
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,64 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using Microsoft.Win32;
|
||||
|
||||
namespace Features.Feature.Browser
|
||||
{
|
||||
internal class FirefoxTelemetry : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
private const string keyName = @"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Mozilla\Firefox";
|
||||
private const int desiredValue = 1;
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "Disable Mozilla Firefox Telemetry";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "This policy may lead to the following behavior in Firefox Browser:\r\nManaged by your organization, your browser is managed." +
|
||||
"\r\nThe changes can be reverted at any time.";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
return !(
|
||||
RegistryHelper.IntEquals(keyName, "DisableTelemetry", desiredValue) &&
|
||||
RegistryHelper.IntEquals(keyName, "DisableDefaultBrowserAgent", desiredValue)
|
||||
);
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "DisableTelemetry", desiredValue, RegistryValueKind.DWord);
|
||||
Registry.SetValue(keyName, "DisableDefaultBrowserAgent", desiredValue, RegistryValueKind.DWord);
|
||||
|
||||
logger.Log("- Mozilla Firefox Telemetry has been disabled.");
|
||||
logger.Log(keyName);
|
||||
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.LocalMachine.DeleteSubKeyTree(@"Policies\Mozilla\Firefox", false);
|
||||
logger.Log("+ Mozilla Firefox Telemetry has been enabled.");
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,63 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using Microsoft.Win32;
|
||||
|
||||
namespace Features.Feature.Desktop
|
||||
{
|
||||
internal class AppsTheme : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
private const string keyName = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize";
|
||||
private const int desiredValue = 0;
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "Use Apps dark theme";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
return !(
|
||||
RegistryHelper.IntEquals(keyName, "AppsUseLightTheme", desiredValue)
|
||||
);
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "AppsUseLightTheme", desiredValue, RegistryValueKind.DWord);
|
||||
|
||||
logger.Log("- Apps dark theme has been successfully enabled.");
|
||||
logger.Log(keyName);
|
||||
|
||||
logger.Log("\n\nDark theme will also be enabled for Bloatynosy.\nPlease restart the app for the changes to take effect.");
|
||||
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "AppsUseLightTheme", "1", RegistryValueKind.DWord);
|
||||
logger.Log("+ Apps light theme has been successfully enabled.");
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,61 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using Microsoft.Win32;
|
||||
using System;
|
||||
|
||||
namespace Features.Feature.Desktop
|
||||
{
|
||||
internal class SnapAssistFlyout : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
private const string keyName = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced";
|
||||
private const int desiredValue = 0;
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "Disable Snap Assist";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "When you hover over the maximize button in apps, this feature gives you a flyout to display possible layouts.";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
return !(
|
||||
RegistryHelper.IntEquals(keyName, "EnableSnapAssistFlyout", desiredValue)
|
||||
);
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "EnableSnapAssistFlyout", desiredValue, RegistryValueKind.DWord);
|
||||
|
||||
logger.Log("- Snap Assist Layout has been disabled.\nPlease restart your PC for the changes to take effect.");
|
||||
logger.Log(keyName);
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{ logger.Log("Could not disable Snap Assist {0}", ex.Message); }
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "EnableSnapAssistFlyout", 1, RegistryValueKind.DWord);
|
||||
logger.Log("+ Snap Assist has been enabled.\nPlease restart your PC for the changes to take effect.");
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,60 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using Microsoft.Win32;
|
||||
|
||||
namespace Features.Feature.Desktop
|
||||
{
|
||||
internal class Stickers : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
private const string keyName = @"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\current\device\Stickers";
|
||||
private const int desiredValue = 0;
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "Remove Desktop Stickers";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
return !(
|
||||
RegistryHelper.IntEquals(keyName, "EnableStickers", desiredValue)
|
||||
);
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "EnableStickers", desiredValue, RegistryValueKind.DWord);
|
||||
|
||||
logger.Log("- Desktop Stickers has been removed.");
|
||||
logger.Log(keyName);
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "EnableStickers", "1", RegistryValueKind.DWord);
|
||||
logger.Log("+ Desktop Sticker feature has been enabled again.");
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,61 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using Microsoft.Win32;
|
||||
using System;
|
||||
|
||||
namespace Features.Feature.Desktop
|
||||
{
|
||||
internal class Transparency : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
private const string keyName = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize";
|
||||
private const int desiredValue = 0;
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "Disable acrylic Fluent Design effects";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
return !(
|
||||
RegistryHelper.IntEquals(keyName, "EnableTransparency", desiredValue)
|
||||
);
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "EnableTransparency", desiredValue, RegistryValueKind.DWord);
|
||||
|
||||
logger.Log("- Transparency effects has been disabled.");
|
||||
logger.Log(keyName);
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{ logger.Log("Could not disable transparency effects {0}", ex.Message); }
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "EnableTransparency", 1, RegistryValueKind.DWord);
|
||||
logger.Log("+ Transparency effects has been enabled.");
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,61 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using Microsoft.Win32;
|
||||
using System;
|
||||
|
||||
namespace Features.Feature.Desktop
|
||||
{
|
||||
internal class Widgets : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
private const string keyName = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced";
|
||||
private const int desiredValue = 0;
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "Disable Widgets";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
return !(
|
||||
RegistryHelper.IntEquals(keyName, "TaskbarDa", desiredValue)
|
||||
);
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "TaskbarDa", desiredValue, RegistryValueKind.DWord);
|
||||
|
||||
logger.Log("- Widgets has been disabled.");
|
||||
logger.Log(keyName);
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{ logger.Log("Could not disable Widgets {0}", ex.Message); }
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "TaskbarDa", 1, RegistryValueKind.DWord);
|
||||
logger.Log("+ Widgets has been enabled.");
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,71 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Net;
|
||||
|
||||
namespace Features.Feature.Desktop
|
||||
{
|
||||
internal class WidgetsRemove : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "Uninstall Widgets feature";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "The Widgets app runs in the background even with the option turned off.\nThis will uninstall the Widgets app package.";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
var appPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Packages", "MicrosoftWindows.Client.WebExperience_cw5n1h2txyewy");
|
||||
|
||||
if (!Directory.Exists(appPath))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
using (var client = new WebClient())
|
||||
{
|
||||
logger.Log("- Uninstalling Widgets app");
|
||||
WindowsHelper.RunWT("winget uninstall \"windows web experience pack\" --silent");
|
||||
logger.Log("Done.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{ logger.Log("{0}", ex.Message); }
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
using (var client = new WebClient())
|
||||
{
|
||||
logger.Log("+ Installing Widgets app...\nWe've opened the download link in the Microsoft Store.\nPlease install the package \"Windows Web Experience Pack\". ");
|
||||
Process.Start("ms-windows-store://pdp/?ProductId=9MSSGKG348SP");
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{ logger.Log("{0}", ex.Message); }
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,60 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using Microsoft.Win32;
|
||||
|
||||
namespace Features.Feature.Desktop
|
||||
{
|
||||
internal class WindowsTheme : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
private const string keyName = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize";
|
||||
private const int desiredValue = 0;
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "Use Windows dark theme";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
return !(
|
||||
RegistryHelper.IntEquals(keyName, "SystemUsesLightTheme", desiredValue)
|
||||
);
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "SystemUsesLightTheme", desiredValue, RegistryValueKind.DWord);
|
||||
|
||||
logger.Log("- Windows dark theme has been successfully enabled.");
|
||||
logger.Log(keyName);
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "SystemUsesLightTheme", "1", RegistryValueKind.DWord);
|
||||
logger.Log("+ Windows light theme has been successfully enabled.");
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,61 +0,0 @@
|
||||
using BloatyNosy;
|
||||
using Microsoft.Win32;
|
||||
|
||||
namespace Features.Feature.Explorer
|
||||
{
|
||||
internal class FileExplorer : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
private const string keyName = @"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked";
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "[LOW] Enable Windows 10 File Explorer";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
return !(
|
||||
RegistryHelper.StringEquals(keyName, "{e2bf9676-5f8f-435c-97eb-11607a5bedf7}", "")
|
||||
);
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "{e2bf9676-5f8f-435c-97eb-11607a5bedf7}", "", RegistryValueKind.String);
|
||||
|
||||
logger.Log("- Windows 10 File Explorer has been successfully enabled.\nRestart is required for the changes to take effect!");
|
||||
logger.Log(keyName);
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
var RegKey = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked", true);
|
||||
RegKey.DeleteValue("{e2bf9676-5f8f-435c-97eb-11607a5bedf7}");
|
||||
|
||||
logger.Log("+ Windows 10 File Explorer has been successfully disabled.\nRestart is required for the changes to take effect!");
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,61 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using Microsoft.Win32;
|
||||
using System;
|
||||
|
||||
namespace Features.Feature.Explorer
|
||||
{
|
||||
internal class HiddenFileExt : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
private const string keyName = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced";
|
||||
private const int desiredValue = 0;
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "Show hidden file name extensions";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
return !(
|
||||
RegistryHelper.IntEquals(keyName, "HideFileExt", desiredValue)
|
||||
);
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "HideFileExt", desiredValue, RegistryValueKind.DWord);
|
||||
|
||||
logger.Log("- File name extensions are now visible.");
|
||||
logger.Log(keyName);
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{ logger.Log("Could not hide file name extensions {0}", ex.Message); }
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "HideFileExt", 1, RegistryValueKind.DWord);
|
||||
logger.Log("+ File name extensions are now hidden again.");
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,61 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using Microsoft.Win32;
|
||||
using System;
|
||||
|
||||
namespace Features.Feature.Explorer
|
||||
{
|
||||
internal class HiddenFileFolder : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
private const string keyName = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced";
|
||||
private const int desiredValue = 1;
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "Show hidden files, folders and drives in File Explorer";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
return !(
|
||||
RegistryHelper.IntEquals(keyName, "Hidden", desiredValue)
|
||||
);
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "Hidden", desiredValue, RegistryValueKind.DWord);
|
||||
|
||||
logger.Log("- Hidden files, folders and drives are now visible.");
|
||||
logger.Log(keyName);
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{ logger.Log("Could not hide files, folders and drives {0}", ex.Message); }
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "Hidden", 2, RegistryValueKind.DWord);
|
||||
logger.Log("+ Files, folders and drives are now hidden again.");
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,74 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using Microsoft.Win32;
|
||||
using System;
|
||||
|
||||
namespace Features.Feature.Gaming
|
||||
{
|
||||
internal class GameDVR : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
private const string keyName = @"HKEY_CURRENT_USER\System\GameConfigStore";
|
||||
private const string keyName2 = @"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\default\ApplicationManagement\AllowGameDVR";
|
||||
private const int desiredValue = 0;
|
||||
private const int desiredValue2 = 2;
|
||||
private const int desiredValue3 = 0;
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "Disable Game DVR feature";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "The built-in Game DVR feature helps you record your gameplay, capture screenshots, and share them online.\n" +
|
||||
"But it can interfere with your game’s performance, too. Background recording requires some of your GPU power, and some gamers will want all the GPU power they can get.\n" +
|
||||
"If you experience low FPS or FPS loss after upgrading to Windows 11, you may resolve the issue by disabling the Xbox DVR feature.";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
return !(
|
||||
RegistryHelper.IntEquals(keyName, "GameDVR_Enabled", desiredValue) &&
|
||||
RegistryHelper.IntEquals(keyName, "GameDVR_FSEBehaviorMode", desiredValue2) &&
|
||||
RegistryHelper.IntEquals(keyName2, "value", desiredValue3)
|
||||
);
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "GameDVR_Enabled", desiredValue, RegistryValueKind.DWord);
|
||||
Registry.SetValue(keyName, "GameDVR_FSEBehaviorMode", desiredValue2, RegistryValueKind.DWord);
|
||||
Registry.SetValue(keyName2, "value", desiredValue3, RegistryValueKind.DWord);
|
||||
|
||||
logger.Log("- Game DVR feature has been successfully disabled.");
|
||||
logger.Log(keyName + Environment.NewLine + keyName2);
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "GameDVR_Enabled", "1", RegistryValueKind.DWord);
|
||||
Registry.SetValue(keyName, "GameDVR_FSEBehaviorMode", "0", RegistryValueKind.DWord);
|
||||
Registry.SetValue(keyName2, "value", 1, RegistryValueKind.DWord);
|
||||
|
||||
logger.Log("+ Game DVR feature has been successfully enabled.");
|
||||
logger.Log(keyName + Environment.NewLine + keyName2);
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,65 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using Microsoft.Win32;
|
||||
|
||||
namespace Features.Feature.Gaming
|
||||
{
|
||||
internal class PowerThrottling : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
private const string keyName = @"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerThrottling";
|
||||
private const int desiredValue = 1;
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "Disable PowerThrottling";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "With the Windows 10 Fall Creators Update, Microsoft’s OS has added feature called Power Throttling\n" +
|
||||
"(Power Throttling is only available on Intel 6th gen and higher processors), a way to increase the battery life of laptops by slowing down background processes.\n" +
|
||||
"This feature is enabled by default in laptops and tablets. Though Windows is good at detecting background apps and limiting power, there might be situations where this feature is not so desirable.";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
return !(
|
||||
RegistryHelper.IntEquals(keyName, "PowerThrottlingOff", desiredValue)
|
||||
);
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "PowerThrottlingOff", desiredValue, RegistryValueKind.DWord);
|
||||
|
||||
logger.Log("- PowerThrottling has been successfully disabled.");
|
||||
logger.Log(keyName);
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
var RegKey = Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Power\PowerThrottling", true);
|
||||
RegKey.DeleteValue("PowerThrottlingOff");
|
||||
|
||||
logger.Log("+ PowerThrottling has been successfully enabled.");
|
||||
logger.Log(keyName);
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,64 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using Microsoft.Win32;
|
||||
|
||||
namespace Features.Feature.Gaming
|
||||
{
|
||||
internal class VisualFX : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
private const string keyName = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects";
|
||||
private const int desiredValue = 2;
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "Adjust visual effects for best performance";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "Visual effects are the visual bells and whistles for the appearance of Windows for your account.\n" +
|
||||
"These visual bells and whistles can affect the performance of Windows on the PC though.\n" +
|
||||
"This will turn off all visual effects under My computer->Properties->Advanced->Settings->and set to \"Adjust for best performance\"";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
return !(
|
||||
RegistryHelper.IntEquals(keyName, "VisualFXSetting", desiredValue)
|
||||
);
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "VisualFXSetting", desiredValue, RegistryValueKind.DWord);
|
||||
|
||||
logger.Log("- Visual effects has been optimized.");
|
||||
logger.Log(keyName);
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "VisualFXSetting", 0, RegistryValueKind.DWord);
|
||||
|
||||
logger.Log("+ Visual effects has been set to default choosing Windows what's best for your computer.");
|
||||
logger.Log(keyName);
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,61 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using Microsoft.Win32;
|
||||
using System;
|
||||
|
||||
namespace Features.Feature.Privacy
|
||||
{
|
||||
internal class Advertising : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
private const string keyName = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\AdvertisingInfo";
|
||||
private const int desiredValue = 0;
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "Disable Advertising ID for Relevant Ads";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "Windows 11 comes integrated with advertising. Microsoft assigns a unique identificator to track your activity in the Microsoft Store and on UWP apps to target you with relevant ads.";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
return !(
|
||||
RegistryHelper.IntEquals(keyName, "Enabled", desiredValue)
|
||||
);
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "Enabled", desiredValue, RegistryValueKind.DWord);
|
||||
|
||||
logger.Log("- Advertising ID for Relevant Ads has been successfully disabled.");
|
||||
logger.Log(keyName);
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{ logger.Log("Could not disable advertising ID for Relevant Ads {0}", ex.Message); }
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "Enabled", 1, RegistryValueKind.DWord);
|
||||
logger.Log("+ Advertising ID for Relevant Ads has been successfully enabled.");
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,62 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using Microsoft.Win32;
|
||||
using System;
|
||||
|
||||
namespace Features.Feature.Privacy
|
||||
{
|
||||
internal class AppsAutoInstall : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
private const string keyName = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager";
|
||||
private const int desiredValue = 0;
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "Disable Automatic Installation of apps";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "When you sign-in to a new Windows 11 profile or device for the first time, chance is that you notice several third - party applications and games listed prominently in the Start menu.\n" +
|
||||
"This setting will block automatic Installation of suggested Windows 11 apps.";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
return !(
|
||||
RegistryHelper.IntEquals(keyName, "SilentInstalledAppsEnabled", desiredValue)
|
||||
);
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "SilentInstalledAppsEnabled", desiredValue, RegistryValueKind.DWord);
|
||||
|
||||
logger.Log("- Automatic Installation of apps has been successfully disabled.");
|
||||
logger.Log(keyName);
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{ logger.Log("Could not disable automatic Installation of apps {0}", ex.Message); }
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "SilentInstalledAppsEnabled", 1, RegistryValueKind.DWord);
|
||||
logger.Log("+ Automatic Installation of apps has been successfully enabled.");
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,62 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using Microsoft.Win32;
|
||||
using System;
|
||||
|
||||
namespace Features.Feature.Privacy
|
||||
{
|
||||
internal class CompatibilityTelemetry : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
private const string keyName = @"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\CompatTelRunner.exe";
|
||||
private const string desiredValue = @"%windir%\System32\taskkill.exe";
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "Disable Compatibility Telemetry";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "This process is periodically collecting a variety of technical data about your computer and its performance and sending it to Microsoft for its Windows Customer Experience Improvement Program.";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
return !(
|
||||
RegistryHelper.StringEquals(keyName, "Debugger", desiredValue)
|
||||
);
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "Debugger", desiredValue, RegistryValueKind.String);
|
||||
logger.Log("- Compatibility Telemetry has been successfully disabled.");
|
||||
logger.Log(keyName);
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{ logger.Log("Could not disable compatibility telemetry: {0}", ex.Message); }
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
var RegKey = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\CompatTelRunner.exe", true);
|
||||
RegKey.DeleteValue("Debugger");
|
||||
|
||||
logger.Log("+ Compatibility Telemetry has been successfully enabled.");
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,61 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using Microsoft.Win32;
|
||||
using System;
|
||||
|
||||
namespace Features.Feature.Privacy
|
||||
{
|
||||
internal class DiagnosticData : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
private const string keyName = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Privacy";
|
||||
private const int desiredValue = 0;
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "Disable Diagnostic data";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "This will turn off tailored experiences with relevant tips and recommendations by using your diagnostics data. Many people would call this telemetry, or even spying.";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
return !(
|
||||
RegistryHelper.IntEquals(keyName, "TailoredExperiencesWithDiagnosticDataEnabled", desiredValue)
|
||||
);
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "TailoredExperiencesWithDiagnosticDataEnabled", desiredValue, RegistryValueKind.DWord);
|
||||
|
||||
logger.Log("- Diagnostic data has been successfully disabled.");
|
||||
logger.Log(keyName);
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{ logger.Log("Could not disable Diagnostic data {0}", ex.Message); }
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "TailoredExperiencesWithDiagnosticDataEnabled", 1, RegistryValueKind.DWord);
|
||||
logger.Log("+ Diagnostic data has been successfully enabled.");
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,67 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using Microsoft.Win32;
|
||||
using System;
|
||||
|
||||
namespace Features.Feature.Privacy
|
||||
{
|
||||
internal class Feedback : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
private const string periodInNanoSeconds = @"HKEY_CURRENT_USER\Software\Microsoft\Siuf\Rules";
|
||||
private const string numberOfSIUFInPeriod = @"HKEY_CURRENT_USER\Software\Microsoft\Siuf\Rules";
|
||||
private const int desiredValue = 0;
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "Disable Feedback notifications";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "Changes the Windows 11 feedback frequency from Automatically to Never.";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
return !(
|
||||
RegistryHelper.IntEquals(periodInNanoSeconds, "PeriodInNanoSeconds", desiredValue) &&
|
||||
RegistryHelper.IntEquals(numberOfSIUFInPeriod, "NumberOfSIUFInPeriod", desiredValue)
|
||||
);
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(periodInNanoSeconds, "PeriodInNanoSeconds", desiredValue, RegistryValueKind.DWord);
|
||||
Registry.SetValue(numberOfSIUFInPeriod, "NumberOfSIUFInPeriod", desiredValue, RegistryValueKind.DWord);
|
||||
|
||||
logger.Log("- Feedback has been successfully disabled.");
|
||||
logger.Log(periodInNanoSeconds + Environment.NewLine + numberOfSIUFInPeriod);
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{ logger.Log("Could not disable Feedback {0}", ex.Message); }
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
var RegKey = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Siuf\Rules", true);
|
||||
RegKey.DeleteValue("NumberOfSIUFInPeriod");
|
||||
RegKey.DeleteValue("PeriodInNanoSeconds");
|
||||
|
||||
logger.Log("+ Feedback has been successfully enabled.");
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,71 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using Microsoft.Win32;
|
||||
using System;
|
||||
|
||||
namespace Features.Feature.Privacy
|
||||
{
|
||||
internal class SuggestedContent : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
private const string keyName = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager";
|
||||
private const string keyName2 = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager";
|
||||
private const string keyName3 = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager";
|
||||
private const int desiredValue = 0;
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "Disable Suggested content in Settings app";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
return !(
|
||||
RegistryHelper.IntEquals(keyName, "SubscribedContent-338393Enabled", desiredValue) &&
|
||||
RegistryHelper.IntEquals(keyName2, "SubscribedContent-353694Enabled", desiredValue) &&
|
||||
RegistryHelper.IntEquals(keyName3, "SubscribedContent-353696Enabled", desiredValue)
|
||||
);
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "SubscribedContent-338393Enabled", desiredValue, RegistryValueKind.DWord);
|
||||
Registry.SetValue(keyName2, "SubscribedContent-353694Enabled", desiredValue, RegistryValueKind.DWord);
|
||||
Registry.SetValue(keyName3, "SubscribedContent-353696Enabled", desiredValue, RegistryValueKind.DWord);
|
||||
|
||||
logger.Log("- Suggested content in Settings app has been successfully disabled.");
|
||||
logger.Log(keyName + Environment.NewLine + keyName2 + Environment.NewLine + keyName3);
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{ logger.Log("Could not disable suggested content in Settings app {0}", ex.Message); }
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "SubscribedContent-338393Enabled", 1, RegistryValueKind.DWord);
|
||||
Registry.SetValue(keyName2, "SubscribedContent-353694Enabled", 1, RegistryValueKind.DWord);
|
||||
Registry.SetValue(keyName3, "SubscribedContent-353696Enabled", 1, RegistryValueKind.DWord);
|
||||
|
||||
logger.Log("+ Suggested content in Settings app has been successfully enabled.");
|
||||
logger.Log(keyName + Environment.NewLine + keyName2 + Environment.NewLine + keyName3);
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,61 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using Microsoft.Win32;
|
||||
using System;
|
||||
|
||||
namespace Features.Feature.Privacy
|
||||
{
|
||||
internal class TailoredExperiences : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
private const string keyName = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Privacy";
|
||||
private const int desiredValue = 0;
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "Disable Tailored experiences";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "This will prevent Windows 11 using your diagnostic data for personalized tips, ads, and recommendations.";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
return !(
|
||||
RegistryHelper.IntEquals(keyName, "TailoredExperiencesWithDiagnosticDataEnabled", desiredValue)
|
||||
);
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "TailoredExperiencesWithDiagnosticDataEnabled", desiredValue, RegistryValueKind.DWord);
|
||||
|
||||
logger.Log("- Tailored experiences has been successfully disabled.");
|
||||
logger.Log(keyName);
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{ logger.Log("Could not disable Tailored experiences {0}", ex.Message); }
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "TailoredExperiencesWithDiagnosticDataEnabled", 1, RegistryValueKind.DWord);
|
||||
logger.Log("+ Tailored experiences has been successfully enabled.");
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,83 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using Microsoft.Win32;
|
||||
using System;
|
||||
|
||||
namespace Features.Feature.Privacy
|
||||
{
|
||||
internal class Telemetry : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
private const string dataCollection = @"HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\DataCollection";
|
||||
private const string diagTrack = @"HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\DiagTrack";
|
||||
private const string dmwappushservice = @"HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\dmwappushservice";
|
||||
private const int desiredValue = 0;
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "Disable Connected User Experiences and Telemetry";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "This will prevent Windows from collecting usage information and setting diagnostic data to Basic, which is the lowest level available for all consumer versions of Windows 11.\n" +
|
||||
"The services diagtrack & dmwappushservice will also be disabled.\nNOTE: Diagnostic Data must be set to Full to get preview builds from Windows-Insider-Program!";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
// WindowsHelper.IsServiceRunning("DiagTrack");
|
||||
// WindowsHelper.IsServiceRunning("dmwappushservice");
|
||||
|
||||
return !(
|
||||
RegistryHelper.IntEquals(dataCollection, "AllowTelemetry", desiredValue) &&
|
||||
RegistryHelper.IntEquals(diagTrack, "Start", 4) &&
|
||||
RegistryHelper.IntEquals(dmwappushservice, "Start", 4)
|
||||
|
||||
);
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(dataCollection, "AllowTelemetry", desiredValue, RegistryValueKind.DWord);
|
||||
Registry.SetValue(diagTrack, "Start", 4, RegistryValueKind.DWord);
|
||||
Registry.SetValue(dmwappushservice, "Start", 4, RegistryValueKind.DWord);
|
||||
|
||||
WindowsHelper.DisableService("DiagTrack");
|
||||
WindowsHelper.DisableService("dmwappushservice");
|
||||
|
||||
logger.Log("- Connected User Experiences and Telemetry has been successfully disabled.");
|
||||
logger.Log(dataCollection + Environment.NewLine + diagTrack + Environment.NewLine + dmwappushservice);
|
||||
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{ logger.Log("Could not disable telemetry: {0}", ex.Message); }
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(dataCollection, "AllowTelemetry", 3, RegistryValueKind.DWord);
|
||||
Registry.SetValue(diagTrack, "Start", 2, RegistryValueKind.DWord);
|
||||
Registry.SetValue(dmwappushservice, "Start", 2, RegistryValueKind.DWord);
|
||||
|
||||
WindowsHelper.EnableService("DiagTrack");
|
||||
WindowsHelper.EnableService("dmwappushservice");
|
||||
|
||||
logger.Log("+ Connected User Experiences and Telemetry has been successfully enabled.");
|
||||
logger.Log(dataCollection + Environment.NewLine + diagTrack + Environment.NewLine + dmwappushservice);
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{ logger.Log("Could not enable telemetry: {0}", ex.Message); }
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,61 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using Microsoft.Win32;
|
||||
using System;
|
||||
|
||||
namespace Features.Feature.Privacy
|
||||
{
|
||||
internal class WindowsTips : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
private const string keyName = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager";
|
||||
private const int desiredValue = 0;
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "Disable Windows tips";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "You will no longer see Windows tips, e.g. Spotlight and Consumer Features, Feedback Notifications etc.";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
return !(
|
||||
RegistryHelper.IntEquals(keyName, "SubscribedContent-338393Enabled", desiredValue)
|
||||
);
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "SubscribedContent-338393Enabled", desiredValue, RegistryValueKind.DWord);
|
||||
|
||||
logger.Log("- Windows 11 tips has been successfully disabled.");
|
||||
logger.Log(keyName);
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{ logger.Log("Could not disable Windows 11 tips {0}", ex.Message); }
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "SubscribedContent-338393Enabled", 1, RegistryValueKind.DWord);
|
||||
logger.Log("+ Windows 11 tips has been successfully enabled.");
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,68 +0,0 @@
|
||||
using BloatyNosy;
|
||||
using System.Management.Automation;
|
||||
|
||||
namespace Features.Feature.Recommendation
|
||||
{
|
||||
internal class EnableWSL : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "[LOW] We've recommend enabling Microsoft Windows Subsystem for Linux";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
string script = "Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux";
|
||||
PowerShell powerShell = PowerShell.Create();
|
||||
powerShell.AddScript(script);
|
||||
var results = powerShell.Invoke();
|
||||
|
||||
foreach (var item in results)
|
||||
{
|
||||
var Status = item.Members["State"].Value;
|
||||
|
||||
if (Status.ToString() == "Enabled")
|
||||
{
|
||||
logger.Log("Problem on Features: [SOLVED] We found a recommended feature on your system \"Microsoft Windows Subsystem for Linux\"");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
//logger.Log("Microsoft Windows Subsystem for Linux is disabled.");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
string script = "Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux";
|
||||
|
||||
PowerShell powerShell = PowerShell.Create();
|
||||
|
||||
powerShell.AddScript(script);
|
||||
powerShell.Invoke();
|
||||
|
||||
logger.Log("+ Microsoft Windows Subsystem for Linux has been successfully enabled.");
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
string script = "Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux";
|
||||
|
||||
PowerShell powerShell = PowerShell.Create();
|
||||
|
||||
powerShell.AddScript(script);
|
||||
powerShell.Invoke();
|
||||
|
||||
logger.Log("- Microsoft Windows Subsystem for Linux has been successfully disabled.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,60 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using Microsoft.Win32;
|
||||
using System;
|
||||
|
||||
namespace Features.Feature.System
|
||||
{
|
||||
internal class FullContextMenus : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
private const string keyName = @"HKEY_CURRENT_USER\SOFTWARE\CLASSES\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32";
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "Enable Full Context Menus in Windows 11";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "Truncated context menus are Windows 11's worst feature.";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
return !(
|
||||
RegistryHelper.StringEquals(keyName, "", "")
|
||||
);
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "", "", RegistryValueKind.String);
|
||||
|
||||
logger.Log("- Full Context Menus in Windows 11 have been enabled.");
|
||||
logger.Log(keyName);
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{ logger.Log("Could not enable Full Context Menus in Windows 11 {0}", ex.Message); }
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.CurrentUser.DeleteSubKeyTree(@"Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}", false);
|
||||
logger.Log("+ Truncated context menus has been enabled.");
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,81 +0,0 @@
|
||||
using BloatyNosy;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Net;
|
||||
|
||||
namespace Features.Feature.System
|
||||
{
|
||||
internal class OneDriveRemove : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "[MIDDLE] Uninstall OneDrive";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
var appPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"\Microsoft\OneDrive\OneDrive.exe";
|
||||
|
||||
if (!File.Exists(appPath))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Process proc = new Process();
|
||||
proc.StartInfo.CreateNoWindow = true;
|
||||
proc.StartInfo.RedirectStandardError = true;
|
||||
proc.StartInfo.RedirectStandardOutput = true;
|
||||
proc.StartInfo.UseShellExecute = false;
|
||||
|
||||
logger.Log("Uninstalling OneDrive...Please wait.");
|
||||
string sysEnv = Environment.GetEnvironmentVariable("SYSTEMROOT");
|
||||
proc.StartInfo.FileName = "taskkill"; proc.StartInfo.Arguments = "/F /IM OneDrive.exe";
|
||||
proc.Start();
|
||||
|
||||
proc.StartInfo.FileName = (sysEnv + @"\System32\OneDriveSetup.exe");
|
||||
proc.StartInfo.Arguments = "/uninstall";
|
||||
proc.Start();
|
||||
|
||||
proc.WaitForExit();
|
||||
logger.Log("Onedrive has been successfully uninstalled.");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{ logger.Log("{0}", ex.Message); }
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
using (var client = new WebClient())
|
||||
{
|
||||
logger.Log("= We've opened the download link in your Browser.\n\nPlease install the package \"OneDrive\". ");
|
||||
Process.Start("https://www.microsoft.com/microsoft-365/onedrive/download");
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{ logger.Log("{0}", ex.Message); }
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,63 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using Microsoft.Win32;
|
||||
|
||||
namespace Features.Feature.System
|
||||
{
|
||||
internal class RemoveW11Watermark : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
private const string keyName = @"HKEY_CURRENT_USER\Control Panel\UnsupportedHardwareNotificationCache";
|
||||
private const int desiredValue = 0;
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "Remove Windows 11 System requirements watermark";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "Microsoft will display with Build 2257 a desktop watermark on devices where Windows 11 is running on unsupported hardware.";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
return !(
|
||||
RegistryHelper.IntEquals(keyName, "SV2", desiredValue)
|
||||
);
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "SV2", desiredValue, RegistryValueKind.DWord);
|
||||
|
||||
logger.Log("- Watermark and the settings notification should be gone.");
|
||||
logger.Log(keyName);
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
var RegKey = Registry.CurrentUser.OpenSubKey(@"Control Panel\UnsupportedHardwareNotificationCache", true);
|
||||
|
||||
RegKey.DeleteValue("SV2");
|
||||
logger.Log("+ Watermark has been enabled again.");
|
||||
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,79 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using Microsoft.Win32;
|
||||
using System;
|
||||
|
||||
namespace Features.Feature.System
|
||||
{
|
||||
internal class TPMCheck : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
private const string keyName = @"HKEY_LOCAL_MACHINE\SYSTEM\Setup\LabConfig";
|
||||
private const string keyName2 = @"HKEY_LOCAL_MACHINE\SYSTEM\Setup\MoSetup";
|
||||
private const int desiredValue = 1;
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "Disable TPM 2.0 Check";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
return !(
|
||||
RegistryHelper.IntEquals(keyName, "BypassCPUCheck", desiredValue) &&
|
||||
RegistryHelper.IntEquals(keyName, "BypassStorageCheck", desiredValue) &&
|
||||
RegistryHelper.IntEquals(keyName, "BypassTPMCheck", desiredValue) &&
|
||||
RegistryHelper.IntEquals(keyName, "BypassRAMCheck", desiredValue) &&
|
||||
RegistryHelper.IntEquals(keyName, "BypassSecureBootCheck", desiredValue) &&
|
||||
RegistryHelper.IntEquals(keyName2, "AllowUpgradesWithUnsupportedTPMOrCPU", desiredValue)
|
||||
);
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "BypassCPUCheck", desiredValue, RegistryValueKind.DWord);
|
||||
Registry.SetValue(keyName, "BypassStorageCheck", desiredValue, RegistryValueKind.DWord);
|
||||
Registry.SetValue(keyName, "BypassTPMCheck", desiredValue, RegistryValueKind.DWord);
|
||||
Registry.SetValue(keyName, "BypassRAMCheck", desiredValue, RegistryValueKind.DWord);
|
||||
Registry.SetValue(keyName, "BypassSecureBootCheck", desiredValue, RegistryValueKind.DWord);
|
||||
Registry.SetValue(keyName2, "AllowUpgradesWithUnsupportedTPMOrCPU", desiredValue, RegistryValueKind.DWord);
|
||||
|
||||
logger.Log("- TPM 2.0 Check has been successfully disabled.");
|
||||
logger.Log(keyName);
|
||||
logger.Log(keyName2);
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{ logger.Log("Could not disable TPM 2.0 Check {0}", ex.Message); }
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.LocalMachine.OpenSubKey(@"SYSTEM\Setup\LabConfig", true).DeleteValue("BypassTPMCheck", false);
|
||||
Registry.LocalMachine.OpenSubKey(@"SYSTEM\Setup\LabConfig", true).DeleteValue("BypassRAMCheck", false);
|
||||
Registry.LocalMachine.OpenSubKey(@"SYSTEM\Setup\LabConfig", true).DeleteValue("BypassSecureBootCheck", false);
|
||||
Registry.LocalMachine.OpenSubKey(@"SYSTEM\Setup\LabConfig", true).DeleteValue("BypassStorageCheck", false);
|
||||
Registry.LocalMachine.OpenSubKey(@"SYSTEM\Setup\LabConfig", true).DeleteValue("BypassCPUCheck", false);
|
||||
Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\Setup\MoSetup", "AllowUpgradesWithUnsupportedTPMOrCPU", "0", RegistryValueKind.DWord);
|
||||
|
||||
logger.Log("+ TPM 2.0 Check has been enabled again.");
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,72 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using Microsoft.Win32;
|
||||
using System;
|
||||
|
||||
namespace Features.Feature.System
|
||||
{
|
||||
internal class TeamsAutostart : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
private const string keyName = @"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run";
|
||||
private string desiredValue = string.Format("C:\\Users\\{0}\\AppData\\Local\\Microsoft\\Teams\\Update.exe --processStart \"Teams.exe\" --process-start-args \"--system-initiated", Environment.UserName);
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "Disable Microsoft Teams on Startup";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
string AppValue = "com.squirrel.Teams.Teams";
|
||||
|
||||
if (Registry.GetValue(keyName, AppValue, null) == null)
|
||||
{
|
||||
logger.Log("Problem on System: [SOLVED] Teams AutoStart is already disabled.");
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
// logger.Log("Teams AutoStart is enabled.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
var RegKey = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run", true);
|
||||
RegKey.DeleteValue("com.squirrel.Teams.Teams");
|
||||
|
||||
logger.Log("- Teams AutoStart has been disabled.");
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "com.squirrel.Teams.Teams", desiredValue, RegistryValueKind.String);
|
||||
|
||||
logger.Log("+ Teams AutoStart has been enabled again.");
|
||||
logger.Log(keyName);
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,78 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using System.Management.Automation;
|
||||
|
||||
namespace Features.Feature.System
|
||||
{
|
||||
internal class XPSWriter : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "Remove XPS Documents Writer";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
string script = "Get-WindowsOptionalFeature -Online -FeatureName \"Printing-XPSServices-Features\"";
|
||||
|
||||
PowerShell powerShell = PowerShell.Create();
|
||||
powerShell.AddScript(script);
|
||||
|
||||
var results = powerShell.Invoke();
|
||||
|
||||
foreach (var item in results)
|
||||
{
|
||||
var Status = item.Members["State"].Value;
|
||||
|
||||
if (Status.ToString() == "Enabled")
|
||||
{
|
||||
// logger.Log("XPS Documents Writer is installed.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
//logger.Log("XPS Documents Writer not found.");
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
string script = "Disable-WindowsOptionalFeature -Online -FeatureName \"Printing-XPSServices-Features\" -NoRestart -WarningAction SilentlyContinue | Out-Null";
|
||||
PowerShell powerShell = PowerShell.Create();
|
||||
powerShell.AddScript(script);
|
||||
var results = powerShell.Invoke();
|
||||
|
||||
if (powerShell.Streams.Error.Count > 0)
|
||||
{
|
||||
logger.Log("= XPS Documents Writer not found.");
|
||||
return false;
|
||||
}
|
||||
|
||||
logger.Log("- XPS Documents Writer has been successfully removed.");
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
string script = "Enable-WindowsOptionalFeature -Online -FeatureName \"Printing-XPSServices-Features\" -NoRestart -WarningAction SilentlyContinue | Out-Null";
|
||||
PowerShell powerShell = PowerShell.Create();
|
||||
powerShell.AddScript(script);
|
||||
|
||||
var results = powerShell.Invoke();
|
||||
if (powerShell.Streams.Error.Count > 0)
|
||||
{
|
||||
logger.Log("- XPS Documents Writer could not be installed.");
|
||||
return false;
|
||||
}
|
||||
|
||||
logger.Log("+ XPS Documents Writer has been successfully installed.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,77 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using Microsoft.Win32;
|
||||
using System;
|
||||
|
||||
namespace Features.Feature.Taskbar
|
||||
{
|
||||
internal class Copilot: FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
private const string showCopilotButton = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced";
|
||||
private const string turnOffWindowsCopilotU = @"HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\WindowsCopilot";
|
||||
private const string turnOffWindowsCopilotM = @"HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsCopilot";
|
||||
|
||||
private const int desiredValue = 1;
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "Disable Windows Copilot";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "Copilot in Windows is an artificial intelligence assistant that's integrated in Windows 11 to enhance productivity and creativity.";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
return !(
|
||||
RegistryHelper.IntEquals(showCopilotButton, "ShowCopilotButton", 0) &&
|
||||
RegistryHelper.IntEquals(turnOffWindowsCopilotU, "TurnOffWindowsCopilot", desiredValue) &&
|
||||
RegistryHelper.IntEquals(turnOffWindowsCopilotM, "TurnOffWindowsCopilot", desiredValue)
|
||||
);
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(showCopilotButton, "ShowCopilotButton", 0, RegistryValueKind.DWord);
|
||||
Registry.SetValue(turnOffWindowsCopilotU, "TurnOffWindowsCopilot", desiredValue, RegistryValueKind.DWord);
|
||||
Registry.SetValue(turnOffWindowsCopilotM, "TurnOffWindowsCopilot", desiredValue, RegistryValueKind.DWord);
|
||||
|
||||
logger.Log("- Copilot has been successfully disabled.");
|
||||
logger.Log(showCopilotButton + Environment.NewLine + turnOffWindowsCopilotU + Environment.NewLine + turnOffWindowsCopilotM);
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{ logger.Log("Could not disable Copilot {0}", ex.Message); }
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
var RegKey = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced", true);
|
||||
RegKey.DeleteValue("ShowCopilotButton");
|
||||
|
||||
var RegKeyU = Registry.CurrentUser.OpenSubKey(@"Software\Policies\Microsoft\Windows\WindowsCopilot", true);
|
||||
RegKeyU.DeleteValue("TurnOffWindowsCopilot");
|
||||
|
||||
var RegKeyM = Registry.LocalMachine.OpenSubKey(@"Software\Policies\Microsoft\Windows\WindowsCopilot", true);
|
||||
RegKeyM.DeleteValue("TurnOffWindowsCopilot");
|
||||
|
||||
|
||||
logger.Log("+ Copilot has been successfully enabled.");
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{ logger.Log("Could not enable Copilot {0}", ex.Message); }
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,61 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using Microsoft.Win32;
|
||||
using System;
|
||||
|
||||
namespace Features.Feature.Taskbar
|
||||
{
|
||||
internal class StartmenuLayout : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
private const string keyName = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced";
|
||||
private const int desiredValue = 1;
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "Pin more Apps on Start menu";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "This option is ONLY available in preview versions of Windows 11 Build 22509 or newer.";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
return !(
|
||||
RegistryHelper.IntEquals(keyName, "Start_Layout", desiredValue)
|
||||
);
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "Start_Layout", desiredValue, RegistryValueKind.DWord);
|
||||
|
||||
logger.Log("- Start menu layout is now showing more Pins.");
|
||||
logger.Log(keyName);
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{ logger.Log("Could not enable more Pins on Start menu.{0}", ex.Message); }
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "Start_Layout", 0, RegistryValueKind.DWord);
|
||||
logger.Log("+ Showing more Pins on Start menu has been enabled.");
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,61 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using Microsoft.Win32;
|
||||
using System;
|
||||
|
||||
namespace Features.Feature.Taskbar
|
||||
{
|
||||
internal class StartmenuSearch : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
private const string keyName = @"HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Explorer";
|
||||
private const int desiredValue = 1;
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "Disable start menu Bing search";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "This will disable web search recommendations from the start menu search bar.\nThere is no need for web search results there. That search should return local files and applications.";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
return !(
|
||||
RegistryHelper.IntEquals(keyName, "DisableSearchBoxSuggestions", desiredValue)
|
||||
);
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "DisableSearchBoxSuggestions", desiredValue, RegistryValueKind.DWord);
|
||||
|
||||
logger.Log("- Start menu Bing search has been disabled.");
|
||||
logger.Log(keyName);
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{ logger.Log("Could not disable start menu Bing search {0}", ex.Message); }
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "DisableSearchBoxSuggestions", 0, RegistryValueKind.DWord);
|
||||
logger.Log("+ Start menu Bing search has been enabled.");
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,61 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using Microsoft.Win32;
|
||||
using System;
|
||||
|
||||
namespace Features.Feature.Taskbar
|
||||
{
|
||||
internal class TaskbarSearch : FeatureBase
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
private const string keyName = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Search";
|
||||
private const int desiredValue = 0;
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "Hide Search icon on taskbar";
|
||||
}
|
||||
|
||||
public override string Info()
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
||||
{
|
||||
return !(
|
||||
RegistryHelper.IntEquals(keyName, "SearchboxTaskbarMode", desiredValue)
|
||||
);
|
||||
}
|
||||
|
||||
public override bool DoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "SearchboxTaskbarMode", desiredValue, RegistryValueKind.DWord);
|
||||
|
||||
logger.Log("- Search icon has been disabled.");
|
||||
logger.Log(keyName);
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{ logger.Log("Could not disable search icon {0}", ex.Message); }
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool UndoFeature()
|
||||
{
|
||||
try
|
||||
{
|
||||
Registry.SetValue(keyName, "SearchboxTaskbarMode", 1, RegistryValueKind.DWord);
|
||||
logger.Log("+ Search icon has been enabled.");
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
Binary file not shown.
Before Width: | Height: | Size: 1.1 KiB |
@ -1,62 +0,0 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Net.Http;
|
||||
using System.Runtime.Serialization;
|
||||
using System.Runtime.Serialization.Json;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Bloatynosy
|
||||
{
|
||||
internal class Stargazers
|
||||
{
|
||||
// Event to be subscribed on Mainform
|
||||
public event EventHandler<int> StargazersCountFetched;
|
||||
|
||||
// Attributes to indicate that class is a data contract
|
||||
[Serializable]
|
||||
[DataContract]
|
||||
public class GitHubRepository
|
||||
{
|
||||
[DataMember(Name = "stargazers_count")] // matches GitHub API response
|
||||
public int StargazersCount { get; set; }
|
||||
}
|
||||
|
||||
public async Task FetchStargazersAsync()
|
||||
{
|
||||
string repositoryOwner = "builtbybel";
|
||||
string repositoryName = "Bloatynosy";
|
||||
|
||||
string apiUrl = $"https://api.github.com/repos/{repositoryOwner}/{repositoryName}";
|
||||
|
||||
try
|
||||
{
|
||||
using (HttpClient client = new HttpClient())
|
||||
{
|
||||
// Add an appropriate user agent header
|
||||
client.DefaultRequestHeaders.Add("User-Agent", "Bloatynosy");
|
||||
|
||||
// Make GET request
|
||||
Stream responseStream = await client.GetStreamAsync(apiUrl);
|
||||
|
||||
// Deserialize JSON using DataContractJsonSerializer
|
||||
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(GitHubRepository));
|
||||
GitHubRepository repoInfo = (GitHubRepository)serializer.ReadObject(responseStream);
|
||||
|
||||
// Extract and display stargazers count
|
||||
int stargazersCount = repoInfo.StargazersCount;
|
||||
|
||||
// Notify subscribers (MainForm) about the fetched stargazers count
|
||||
StargazersCountFetched?.Invoke(this, stargazersCount);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
// Handle exception
|
||||
Console.WriteLine($"{ex.Message}");
|
||||
|
||||
// Notify subscribers about exceptions
|
||||
StargazersCountFetched?.Invoke(this, -1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,58 +0,0 @@
|
||||
using System;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Bloatynosy
|
||||
{
|
||||
internal class ErrorHelper
|
||||
{
|
||||
private static readonly ErrorHelper instance = new ErrorHelper();
|
||||
private static RichTextBox target = null;
|
||||
|
||||
private ErrorHelper() { } // Private constructor to prevent external instantiation
|
||||
|
||||
// Errorlogger to target richLog
|
||||
public void SetTarget(RichTextBox richText)
|
||||
{
|
||||
target = richText;
|
||||
}
|
||||
|
||||
public void Log(string format, params object[] args)
|
||||
{
|
||||
format += "\r\n";
|
||||
|
||||
try
|
||||
{
|
||||
if (target.InvokeRequired)
|
||||
{
|
||||
target.Invoke(new Action(() => target.AppendText(string.Format(format, args))));
|
||||
}
|
||||
else
|
||||
{
|
||||
target.AppendText(string.Format(format, args));
|
||||
}
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
public void ClearLog()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (target.InvokeRequired)
|
||||
{
|
||||
target.Invoke(new Action(() => target.Clear()));
|
||||
}
|
||||
else
|
||||
{
|
||||
target.Clear();
|
||||
}
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
public static ErrorHelper Instance
|
||||
{
|
||||
get => instance;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,136 +0,0 @@
|
||||
using Bloatynosy;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Windows.Forms;
|
||||
using static System.Net.WebRequestMethods;
|
||||
|
||||
namespace HelperTool
|
||||
{
|
||||
internal class Utils
|
||||
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
public static readonly string TweetIntent = "https://twitter.com/intent/tweet?text=Try%20the%20new%20next%20Gen-Debloat%20App%20%23Bloatynosy%20for%20Windows%2011%0a%0ahttps://www.builtbybel.com/blog/about-debloos";
|
||||
|
||||
public static class Uri
|
||||
{
|
||||
public const string URL_ASSEMBLY = "https://raw.githubusercontent.com/builtbybel/Bloatynosy/main/src/Bloatynosy/Properties/AssemblyInfo.cs";
|
||||
public const string URL_TWITTER = "https://twitter.com/builtbybel";
|
||||
public const string URL_BUILTBYBEL = "https://www.builtbybel.com";
|
||||
public const string URL_DONATE = "https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@builtbybel.com&lc=US&item_name=%20Builtbybel&no_note=0&cn=¤cy_code=USD&bn=PP-DonationsBF:btn_donateCC_LG.gif:NonHosted";
|
||||
public const string URL_GITREPO = "https://github.com/builtbybel/Bloatynosy";
|
||||
public const string URL_GITLATEST = URL_GITREPO + "/releases/latest";
|
||||
public const string URL_HELP = "https://www.reddit.com/search/?q=bloatynosy&type=comment&sort=new";
|
||||
}
|
||||
|
||||
public static class Paths
|
||||
{
|
||||
public static string SysDir = Path.GetPathRoot(Environment.SystemDirectory);
|
||||
public static string LocalAppDataDir = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
|
||||
public static string ProgramFiles = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles);
|
||||
|
||||
public static string ShellWT = LocalAppDataDir +
|
||||
@"\Microsoft\WindowsApps\wt.exe";
|
||||
|
||||
public static string ShellCommandPrompt = SysDir +
|
||||
@"Windows\System32\cmd.exe";
|
||||
|
||||
public static string ShellPS = SysDir +
|
||||
@"Windows\System32\WindowsPowerShell\v1.0\powershell.exe";
|
||||
}
|
||||
|
||||
public static class Data
|
||||
{
|
||||
public static string DataRootDir = Application.StartupPath +
|
||||
@"\app\";
|
||||
|
||||
public static string PluginsRootDir = Application.StartupPath +
|
||||
@"\plugins\";
|
||||
}
|
||||
|
||||
// Create data directory if non present
|
||||
public static void CreateDataDir()
|
||||
{
|
||||
bool dirExists = Directory.Exists(@"app");
|
||||
if (!dirExists)
|
||||
Directory.CreateDirectory(@"app");
|
||||
}
|
||||
|
||||
|
||||
// Launch Urls in richText control
|
||||
public static void LaunchUri(string url)
|
||||
{
|
||||
if (IsHttpURL(url)) Process.Start(url);
|
||||
}
|
||||
|
||||
// Check Urls in in richText control
|
||||
public static bool IsHttpURL(string url)
|
||||
{
|
||||
return
|
||||
((!string.IsNullOrWhiteSpace(url)) &&
|
||||
(url.ToLower().StartsWith("http")));
|
||||
}
|
||||
|
||||
public static void CheckForUpdates()
|
||||
{
|
||||
if (IsInet() == true)
|
||||
{
|
||||
try
|
||||
{
|
||||
string assemblyInfo = new WebClient().DownloadString(Utils.Uri.URL_ASSEMBLY);
|
||||
|
||||
var readVersion = assemblyInfo.Split('\n');
|
||||
var infoVersion = readVersion.Where(t => t.Contains("[assembly: AssemblyFileVersion"));
|
||||
var latestVersion = "";
|
||||
foreach (var item in infoVersion)
|
||||
{
|
||||
latestVersion = item.Substring(item.IndexOf('(') + 2, item.LastIndexOf(')') - item.IndexOf('(') - 3);
|
||||
}
|
||||
|
||||
if (latestVersion ==
|
||||
Program.GetCurrentVersionTostring()) // Up-to-date
|
||||
{
|
||||
MessageBox.Show($"No new updates available.", "Update", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
|
||||
if (latestVersion != // Update available
|
||||
Program.GetCurrentVersionTostring())
|
||||
|
||||
{
|
||||
if (MessageBox.Show($"App version {latestVersion} available.\nDo you want to open the Download page?", "App update available", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
|
||||
Process.Start(HelperTool.Utils.Uri.URL_GITLATEST);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show($"Checking for App updates failed.\n{ex.Message}");
|
||||
}
|
||||
}
|
||||
else if (IsInet() == false)
|
||||
{
|
||||
MessageBox.Show($"Problem on Internet connection: Checking for App updates failed");
|
||||
}
|
||||
}
|
||||
|
||||
// Check Inet
|
||||
public static bool IsInet()
|
||||
{
|
||||
try
|
||||
{
|
||||
using (var CheckInternet = new WebClient())
|
||||
using (CheckInternet.OpenRead("http://clients3.google.com/generate_204"))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,39 +0,0 @@
|
||||
using Microsoft.Win32;
|
||||
using System;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace HelperTool
|
||||
{
|
||||
public static class OsHelper
|
||||
{
|
||||
public static readonly string thisOS = IsWin11() + "\x20" + GetVersion();
|
||||
|
||||
public static bool IsWin11()
|
||||
{
|
||||
try
|
||||
{
|
||||
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion");
|
||||
int osbuild = Convert.ToInt32(key.GetValue("CurrentBuildNumber"));
|
||||
if (osbuild >= 21996)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{ MessageBox.Show(ex.Message); }
|
||||
return false;
|
||||
}
|
||||
|
||||
public static string GetVersion()
|
||||
{
|
||||
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion");
|
||||
|
||||
var UBR = key.GetValue("UBR").ToString();
|
||||
var CurrentBuild = key.GetValue("CurrentBuild").ToString();
|
||||
|
||||
string version = CurrentBuild + "." + UBR;
|
||||
|
||||
return "Build " + version;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,103 +0,0 @@
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Bloatynosy
|
||||
{
|
||||
public static class WindowsHelper
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
// Command Prompt (to be replaced with wt.exe)
|
||||
public static void RunCmd(string args)
|
||||
{
|
||||
ProcStart(HelperTool.Utils.Paths.ShellCommandPrompt, args);
|
||||
}
|
||||
|
||||
public static void RunWT(string args)
|
||||
{
|
||||
ProcStart(HelperTool.Utils.Paths.ShellWT, args);
|
||||
}
|
||||
|
||||
public static void ProcStart(string name, string args)
|
||||
{
|
||||
try
|
||||
{
|
||||
var proc = new Process
|
||||
{
|
||||
StartInfo = new ProcessStartInfo
|
||||
{
|
||||
FileName = name,
|
||||
Arguments = args,
|
||||
UseShellExecute = false,
|
||||
RedirectStandardOutput = true,
|
||||
StandardOutputEncoding = Encoding.GetEncoding(CultureInfo.CurrentCulture.TextInfo.OEMCodePage),
|
||||
CreateNoWindow = true
|
||||
}
|
||||
};
|
||||
proc.Start();
|
||||
string line = null;
|
||||
while (!proc.StandardOutput.EndOfStream)
|
||||
{
|
||||
line += Environment.NewLine + proc.StandardOutput.ReadLine();
|
||||
}
|
||||
proc.WaitForExit();
|
||||
logger.Log($"{name} {args} {line}");
|
||||
}
|
||||
catch
|
||||
{
|
||||
logger.Log($"Could not start {name} {args}.");
|
||||
}
|
||||
}
|
||||
|
||||
public static void IsServiceRunning(string service)
|
||||
{
|
||||
logger.Log($"\tCheck if {service} service is running");
|
||||
RunCmd($"/c sc query {service} | find \"RUNNING\"");
|
||||
}
|
||||
|
||||
public static void DisableService(string service)
|
||||
{
|
||||
RunCmd($"/c net stop {service}");
|
||||
ProcStart(HelperTool.Utils.Paths.ShellPS, $"-command \"Set-Service -Name {service} -StartupType disabled\"");
|
||||
logger.Log($"Disable {service} service");
|
||||
}
|
||||
|
||||
public static void EnableService(string service)
|
||||
{
|
||||
RunCmd($"/c net start {service}");
|
||||
ProcStart(HelperTool.Utils.Paths.ShellPS, $"-command \"Set-Service -Name {service} -StartupType auto\"");
|
||||
logger.Log($"Enable {service} service");
|
||||
}
|
||||
|
||||
public static async Task RunPowerShellScript(string scriptFilePath)
|
||||
{
|
||||
try
|
||||
{
|
||||
var startInfo = new ProcessStartInfo()
|
||||
{
|
||||
FileName = "powershell.exe",
|
||||
UseShellExecute = false,
|
||||
WindowStyle = ProcessWindowStyle.Normal,
|
||||
Arguments = $"-executionpolicy bypass -file \"{scriptFilePath}\"",
|
||||
CreateNoWindow = false, // Show the console window
|
||||
};
|
||||
|
||||
using (var process = Process.Start(startInfo))
|
||||
{
|
||||
if (process != null)
|
||||
{
|
||||
await Task.Run(() => process.WaitForExit());
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show($"Error running PowerShell plugin: {ex.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,25 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Bloatynosy.ITreeNode
|
||||
{
|
||||
public static class ITreeNode
|
||||
{
|
||||
// Traverse tree and yields checked nodes
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
155
src/BloatyNosyAI/MainForm.Designer.cs
generated
155
src/BloatyNosyAI/MainForm.Designer.cs
generated
@ -1,155 +0,0 @@
|
||||
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.pnlMain = new System.Windows.Forms.Panel();
|
||||
this.lblQRInfo = new System.Windows.Forms.Label();
|
||||
this.picQR = new System.Windows.Forms.PictureBox();
|
||||
this.lblHeader = new System.Windows.Forms.Label();
|
||||
this.checkVersion = new System.Windows.Forms.CheckBox();
|
||||
this.pnlForm = new System.Windows.Forms.Panel();
|
||||
this.pnlMain.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.picQR)).BeginInit();
|
||||
this.pnlForm.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// pnlMain
|
||||
//
|
||||
this.pnlMain.AutoScroll = true;
|
||||
this.pnlMain.Controls.Add(this.lblQRInfo);
|
||||
this.pnlMain.Controls.Add(this.picQR);
|
||||
this.pnlMain.Controls.Add(this.lblHeader);
|
||||
this.pnlMain.Controls.Add(this.checkVersion);
|
||||
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(926, 720);
|
||||
this.pnlMain.TabIndex = 0;
|
||||
//
|
||||
// lblQRInfo
|
||||
//
|
||||
this.lblQRInfo.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.lblQRInfo.AutoSize = true;
|
||||
this.lblQRInfo.Font = new System.Drawing.Font("Segoe UI Variable Text Light", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblQRInfo.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.lblQRInfo.Location = new System.Drawing.Point(756, 543);
|
||||
this.lblQRInfo.Name = "lblQRInfo";
|
||||
this.lblQRInfo.Size = new System.Drawing.Size(135, 17);
|
||||
this.lblQRInfo.TabIndex = 223;
|
||||
this.lblQRInfo.Text = "First steps with the app";
|
||||
this.lblQRInfo.Visible = false;
|
||||
//
|
||||
// picQR
|
||||
//
|
||||
this.picQR.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.picQR.Location = new System.Drawing.Point(756, 562);
|
||||
this.picQR.Name = "picQR";
|
||||
this.picQR.Size = new System.Drawing.Size(143, 146);
|
||||
this.picQR.TabIndex = 222;
|
||||
this.picQR.TabStop = false;
|
||||
this.picQR.Visible = false;
|
||||
this.picQR.MouseEnter += new System.EventHandler(this.picQR_MouseEnter);
|
||||
this.picQR.MouseLeave += new System.EventHandler(this.picQR_MouseLeave);
|
||||
//
|
||||
// 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.AutoSize = true;
|
||||
this.lblHeader.BackColor = System.Drawing.Color.Transparent;
|
||||
this.lblHeader.Font = new System.Drawing.Font("Segoe UI Variable Display Semib", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblHeader.ForeColor = System.Drawing.Color.Black;
|
||||
this.lblHeader.Location = new System.Drawing.Point(59, 26);
|
||||
this.lblHeader.Name = "lblHeader";
|
||||
this.lblHeader.Size = new System.Drawing.Size(104, 26);
|
||||
this.lblHeader.TabIndex = 221;
|
||||
this.lblHeader.Text = "Dashboard";
|
||||
//
|
||||
// checkVersion
|
||||
//
|
||||
this.checkVersion.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.checkVersion.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
this.checkVersion.AutoSize = true;
|
||||
this.checkVersion.CheckAlign = System.Drawing.ContentAlignment.TopRight;
|
||||
this.checkVersion.FlatAppearance.BorderSize = 0;
|
||||
this.checkVersion.FlatAppearance.CheckedBackColor = System.Drawing.Color.GhostWhite;
|
||||
this.checkVersion.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.checkVersion.Font = new System.Drawing.Font("Segoe UI Variable Text Light", 9.75F);
|
||||
this.checkVersion.ForeColor = System.Drawing.Color.Black;
|
||||
this.checkVersion.Location = new System.Drawing.Point(900, 0);
|
||||
this.checkVersion.Name = "checkVersion";
|
||||
this.checkVersion.Size = new System.Drawing.Size(23, 27);
|
||||
this.checkVersion.TabIndex = 216;
|
||||
this.checkVersion.Text = "x";
|
||||
this.checkVersion.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
||||
this.checkVersion.UseVisualStyleBackColor = true;
|
||||
this.checkVersion.CheckedChanged += new System.EventHandler(this.checkVersion_CheckedChanged);
|
||||
//
|
||||
// pnlForm
|
||||
//
|
||||
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(926, 720);
|
||||
this.pnlForm.TabIndex = 2;
|
||||
//
|
||||
// MainForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
this.AutoScroll = true;
|
||||
this.BackColor = System.Drawing.Color.White;
|
||||
this.ClientSize = new System.Drawing.Size(926, 720);
|
||||
this.Controls.Add(this.pnlForm);
|
||||
this.MinimumSize = new System.Drawing.Size(942, 523);
|
||||
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.pnlMain.ResumeLayout(false);
|
||||
this.pnlMain.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.picQR)).EndInit();
|
||||
this.pnlForm.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
public System.Windows.Forms.Panel pnlForm;
|
||||
private System.Windows.Forms.Panel pnlMain;
|
||||
private System.Windows.Forms.CheckBox checkVersion;
|
||||
private System.Windows.Forms.Label lblHeader;
|
||||
private System.Windows.Forms.PictureBox picQR;
|
||||
private System.Windows.Forms.Label lblQRInfo;
|
||||
}
|
||||
}
|
||||
|
@ -1,139 +0,0 @@
|
||||
using Bloatynosy.Views;
|
||||
using HelperTool;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Threading.Tasks;
|
||||
using System.Timers;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Bloatynosy
|
||||
{
|
||||
public partial class MainForm : Form
|
||||
{
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
|
||||
// Declare nosyPage field
|
||||
private NosyPageView nosyPage;
|
||||
private System.Timers.Timer timer;
|
||||
private bool isMouseOverQRCode = false;
|
||||
|
||||
public MainForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
// Initialize NosyPageView
|
||||
nosyPage = new NosyPageView(this);
|
||||
|
||||
//Load QR code
|
||||
GetQRCode();
|
||||
}
|
||||
|
||||
private void MainForm_Shown(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
// await Task.Delay(1000);
|
||||
|
||||
// Refer to instance NosyPageView
|
||||
pnlMain.Controls.Add(nosyPage);
|
||||
nosyPage.Anchor = (AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Bottom);
|
||||
nosyPage.Dock = DockStyle.Fill;
|
||||
// Refer Main and default NavPage
|
||||
ViewHelper.SwitchView.INavPage = pnlForm.Controls[0];
|
||||
ViewHelper.SwitchView.mainForm = this;
|
||||
// Get versioning
|
||||
checkVersion.Text = GetMinorVersion(Program.GetCurrentVersionTostring());
|
||||
// Load styling
|
||||
this.SetStyle();
|
||||
}
|
||||
|
||||
private void SetStyle()
|
||||
{
|
||||
// Some color styling
|
||||
BackColor = Color.FromArgb(243, 243, 243);
|
||||
}
|
||||
|
||||
private void GetQRCode()
|
||||
{
|
||||
string imagePath = Path.Combine(HelperTool.Utils.Data.DataRootDir, "qr.png");
|
||||
|
||||
if (File.Exists(imagePath))
|
||||
{
|
||||
picQR.Visible =
|
||||
lblQRInfo.Visible = true;
|
||||
picQR.Image = Image.FromFile(imagePath);
|
||||
}
|
||||
else
|
||||
{
|
||||
picQR.Visible =
|
||||
lblQRInfo.Visible = false;
|
||||
}
|
||||
|
||||
// Set up QR code timer
|
||||
picQR.MouseEnter += picQR_MouseEnter;
|
||||
picQR.MouseLeave += picQR_MouseLeave;
|
||||
|
||||
timer = new System.Timers.Timer();
|
||||
timer.Interval = 500;
|
||||
timer.Elapsed += QRTimerElapsed;
|
||||
}
|
||||
|
||||
private string GetMinorVersion(string version)
|
||||
{
|
||||
// Display everything until the second dot without the dot
|
||||
int secondDotIndex = version.IndexOf('.', version.IndexOf('.') + 1);
|
||||
if (secondDotIndex != -1)
|
||||
{
|
||||
version = version.Substring(0, secondDotIndex);
|
||||
}
|
||||
return $"Version {version}";
|
||||
}
|
||||
|
||||
// Switch between minor and full app version
|
||||
private void checkVersion_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
// Get full version
|
||||
string fullVersion = Program.GetCurrentVersionTostring();
|
||||
|
||||
// Display version based on the CheckBox state
|
||||
checkVersion.Text = checkVersion.Checked ? fullVersion : GetMinorVersion(fullVersion);
|
||||
|
||||
// Optionally, check for updates when checked
|
||||
if (checkVersion.Checked)
|
||||
{
|
||||
HelperTool.Utils.CheckForUpdates();
|
||||
}
|
||||
}
|
||||
|
||||
private void richLog_LinkClicked(object sender, LinkClickedEventArgs e)
|
||||
=> Utils.LaunchUri(e.LinkText);
|
||||
|
||||
private void picQR_MouseEnter(object sender, EventArgs e)
|
||||
{
|
||||
isMouseOverQRCode = true;
|
||||
timer.Start();
|
||||
}
|
||||
|
||||
private void picQR_MouseLeave(object sender, EventArgs e)
|
||||
{
|
||||
isMouseOverQRCode = false;
|
||||
timer.Stop();
|
||||
}
|
||||
private void QRTimerElapsed(object sender, ElapsedEventArgs e)
|
||||
{
|
||||
// This method will be called when timer elapses
|
||||
timer.Stop();
|
||||
|
||||
if (isMouseOverQRCode)
|
||||
{
|
||||
DialogResult result = MessageBox.Show("Do you want to view the introduction directly in your Desktop Browser?", "Introducing Bloatynosy", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
|
||||
|
||||
if (result == DialogResult.Yes)
|
||||
{
|
||||
Process.Start("https://www.builtbybel.com/blog/bloatynosy-is-now-x");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,123 +0,0 @@
|
||||
<?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="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>81</value>
|
||||
</metadata>
|
||||
</root>
|
@ -1,26 +0,0 @@
|
||||
namespace Bloatynosy.Setup
|
||||
{
|
||||
public enum PageTitle
|
||||
{
|
||||
Setup = 0,
|
||||
NewLook,
|
||||
StartMenu,
|
||||
Apps,
|
||||
Privacy,
|
||||
MicrosoftStore,
|
||||
ActionCenter,
|
||||
FileExplorer,
|
||||
SettingsApp,
|
||||
WindowsUpdates,
|
||||
SnapLayouts,
|
||||
Widgets,
|
||||
GestureControls,
|
||||
WallpapersNSounds,
|
||||
LockScreen,
|
||||
TouchKeyboard,
|
||||
AndroidApps,
|
||||
Gaming,
|
||||
Finish,
|
||||
Custom
|
||||
}
|
||||
}
|
@ -1,53 +0,0 @@
|
||||
namespace BloatyNosy
|
||||
{
|
||||
internal class ModsManifest
|
||||
{
|
||||
public ModsParser ini;
|
||||
public string Name { get; set; }
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return Name;
|
||||
}
|
||||
|
||||
public string DisplayName
|
||||
{
|
||||
get
|
||||
{
|
||||
return ini.ReadString("Info", "DisplayName");
|
||||
}
|
||||
}
|
||||
|
||||
public string AboutScript
|
||||
{
|
||||
get
|
||||
{
|
||||
return ini.ReadString("Info", "AboutScript");
|
||||
}
|
||||
}
|
||||
|
||||
public string Publisher
|
||||
{
|
||||
get
|
||||
{
|
||||
return ini.ReadString("Info", "Publisher");
|
||||
}
|
||||
}
|
||||
|
||||
public string ConditionScript
|
||||
{
|
||||
get
|
||||
{
|
||||
return ini.ReadString("Info", "ConditionScript");
|
||||
}
|
||||
}
|
||||
|
||||
public string ScriptLanguage
|
||||
{
|
||||
get
|
||||
{
|
||||
return ini.ReadString("Info", "ScriptLanguage");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,60 +0,0 @@
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
namespace BloatyNosy
|
||||
{
|
||||
internal class ModsParser
|
||||
{
|
||||
private static FileInfo fi;
|
||||
|
||||
[DllImport("kernel32")]
|
||||
private static extern long WritePrivateProfileString(string Section, string Key, string Value, string FilePath);
|
||||
|
||||
[DllImport("kernel32")]
|
||||
private static extern int GetPrivateProfileString(string Section, string Key, string Default, StringBuilder RetVal, int Size, string FilePath);
|
||||
|
||||
public string ReadString(string selection, string Key, string vDefault = "")
|
||||
{
|
||||
StringBuilder sb = new StringBuilder(1024);
|
||||
|
||||
// Get ini file
|
||||
GetPrivateProfileString(selection, Key, vDefault, sb, 1024, fi.FullName);
|
||||
return sb.ToString();
|
||||
}
|
||||
|
||||
public List<string> ReadSelections()
|
||||
{
|
||||
List<string> temp = new List<string>();
|
||||
string sLine = string.Empty;
|
||||
|
||||
if (!fi.Exists)
|
||||
{
|
||||
return temp;
|
||||
}
|
||||
|
||||
using (StreamReader sr = new StreamReader(fi.FullName))
|
||||
{
|
||||
while (!sr.EndOfStream)
|
||||
{
|
||||
// Get and trim line
|
||||
sLine = sr.ReadLine().Trim();
|
||||
// Check for opening and closeing tags
|
||||
if (sLine.StartsWith("[") && (sLine.EndsWith("]")))
|
||||
{
|
||||
// Add to collection
|
||||
temp.Add(sLine.Substring(1, sLine.Length - 2));
|
||||
}
|
||||
}
|
||||
sr.Close();
|
||||
}
|
||||
return temp;
|
||||
}
|
||||
|
||||
public ModsParser(string Filename)
|
||||
{
|
||||
fi = new FileInfo(Filename);
|
||||
}
|
||||
}
|
||||
}
|
Binary file not shown.
Before Width: | Height: | Size: 165 KiB |
@ -1,41 +0,0 @@
|
||||
1527c705-839a-4832-9118-54d4Bd6a0c89
|
||||
c5e2524a-ea46-4f67-841f-6a9465d9d515
|
||||
E2A4F912-2574-4A75-9BB0-0D023378592B
|
||||
F46D4000-FD22-4DB4-AC8E-4E1DDDE828FE
|
||||
InputApp
|
||||
Microsoft.AAD.BrokerPlugin
|
||||
Microsoft.AccountsControl
|
||||
Microsoft.Advertising.Xaml
|
||||
Microsoft.AsyncTextService
|
||||
Microsoft.BioEnrollment
|
||||
Microsoft.CredDialogHost
|
||||
Microsoft.ECApp
|
||||
Microsoft.LockApp
|
||||
Microsoft.MicrosoftEdge
|
||||
Microsoft.MicrosoftEdgeDevToolsClient
|
||||
Microsoft.NET
|
||||
Microsoft.PPIProjection
|
||||
Microsoft.Services.Store.Engagement
|
||||
Microsoft.VCLibs
|
||||
Microsoft.Win32WebViewHost
|
||||
Microsoft.WindowsStore
|
||||
Microsoft.WindowsCalculator
|
||||
Microsoft.XboxGameCallableUI
|
||||
Microsoft.Windows.Apprep.ChxApp
|
||||
Microsoft.Windows.AssignedAccessLockApp
|
||||
Microsoft.Windows.CapturePicker
|
||||
Microsoft.Windows.CloudExperienceHost
|
||||
Microsoft.Windows.ContentDeliveryManager
|
||||
Microsoft.Windows.NarratorQuickStart
|
||||
Microsoft.Windows.OOBENetworkCaptivePortal
|
||||
Microsoft.Windows.OOBENetworkConnectionFlow
|
||||
Microsoft.Windows.ParentalControls
|
||||
Microsoft.Windows.PeopleExperienceHost
|
||||
Microsoft.Windows.PinningConfirmationDialog
|
||||
Microsoft.Windows.SecHealthUI
|
||||
Microsoft.Windows.SecureAssessmentBrowser
|
||||
Microsoft.Windows.ShellExperienceHost
|
||||
Microsoft.Windows.XGpuEjectDialog
|
||||
Windows.CBSPreview
|
||||
windows.immersivecontrolpanel
|
||||
Windows.PrintDialog
|
@ -1,36 +0,0 @@
|
||||
using System.Drawing;
|
||||
using System.Drawing.Drawing2D;
|
||||
using System.Windows.Forms;
|
||||
|
||||
public class ToggleSwitch : CheckBox
|
||||
{
|
||||
public ToggleSwitch()
|
||||
{
|
||||
SetStyle(ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint, true);
|
||||
Padding = new Padding(6);
|
||||
}
|
||||
|
||||
protected override void OnPaint(PaintEventArgs e)
|
||||
{
|
||||
this.OnPaintBackground(e);
|
||||
e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
|
||||
|
||||
using (var path = new GraphicsPath())
|
||||
{
|
||||
var d = Padding.All;
|
||||
var r = Height - 2 * d;
|
||||
var trackRect = new RectangleF(d, d, Width - 2 * d, r);
|
||||
|
||||
// Draw rounded rectangle track
|
||||
path.AddArc(trackRect.X, trackRect.Y, r, r, 90, 180);
|
||||
path.AddArc(trackRect.Right - r, trackRect.Y, r, r, -90, 180);
|
||||
path.CloseFigure();
|
||||
e.Graphics.FillPath(Checked ? Brushes.DarkGray : Brushes.Gray, path);
|
||||
|
||||
// Draw circular thumb
|
||||
r = Height - 2 * d;
|
||||
var thumbRect = Checked ? new RectangleF(Width - r - d, d, r, r) : new RectangleF(d, d, r, r);
|
||||
e.Graphics.FillEllipse(Checked ? Brushes.DeepPink : Brushes.Thistle, thumbRect);
|
||||
}
|
||||
}
|
||||
}
|
293
src/BloatyNosyAI/Views/AboutPageView.Designer.cs
generated
293
src/BloatyNosyAI/Views/AboutPageView.Designer.cs
generated
@ -1,293 +0,0 @@
|
||||
namespace BloatyNosy
|
||||
{
|
||||
partial class AboutPageView
|
||||
{
|
||||
/// <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 Komponenten-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._lblDev = new System.Windows.Forms.Label();
|
||||
this._lblWith = new System.Windows.Forms.Label();
|
||||
this._lblHeartFillEmoji = new System.Windows.Forms.Label();
|
||||
this._lblAssembly = new System.Windows.Forms.Label();
|
||||
this.lblAppMediaPayPal = new System.Windows.Forms.LinkLabel();
|
||||
this.lblAppMediaTwitter = new System.Windows.Forms.LinkLabel();
|
||||
this.lblAppMediaGitHub = new System.Windows.Forms.LinkLabel();
|
||||
this._lblAppName = new System.Windows.Forms.Label();
|
||||
this.btnBack = new System.Windows.Forms.Button();
|
||||
this.lblHeader = new System.Windows.Forms.Label();
|
||||
this._lblAboutInfo = new System.Windows.Forms.Label();
|
||||
this.btnAppMediaTweetIntent = new System.Windows.Forms.Button();
|
||||
this.lnkUpdateAvailable = new System.Windows.Forms.LinkLabel();
|
||||
this.btnHelp = new System.Windows.Forms.Button();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// _lblDev
|
||||
//
|
||||
this._lblDev.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this._lblDev.AutoEllipsis = true;
|
||||
this._lblDev.AutoSize = true;
|
||||
this._lblDev.BackColor = System.Drawing.Color.White;
|
||||
this._lblDev.Font = new System.Drawing.Font("Segoe UI Variable Text Semibold", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this._lblDev.ForeColor = System.Drawing.Color.Gray;
|
||||
this._lblDev.ImeMode = System.Windows.Forms.ImeMode.NoControl;
|
||||
this._lblDev.Location = new System.Drawing.Point(127, 236);
|
||||
this._lblDev.Name = "_lblDev";
|
||||
this._lblDev.Size = new System.Drawing.Size(78, 20);
|
||||
this._lblDev.TabIndex = 187;
|
||||
this._lblDev.Text = "Builtbybel";
|
||||
//
|
||||
// _lblWith
|
||||
//
|
||||
this._lblWith.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this._lblWith.AutoEllipsis = true;
|
||||
this._lblWith.AutoSize = true;
|
||||
this._lblWith.BackColor = System.Drawing.Color.White;
|
||||
this._lblWith.Font = new System.Drawing.Font("Segoe UI Variable Text Semibold", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this._lblWith.ForeColor = System.Drawing.Color.Gray;
|
||||
this._lblWith.ImeMode = System.Windows.Forms.ImeMode.NoControl;
|
||||
this._lblWith.Location = new System.Drawing.Point(63, 236);
|
||||
this._lblWith.Name = "_lblWith";
|
||||
this._lblWith.Size = new System.Drawing.Size(38, 20);
|
||||
this._lblWith.TabIndex = 186;
|
||||
this._lblWith.Text = "with";
|
||||
//
|
||||
// _lblHeartFillEmoji
|
||||
//
|
||||
this._lblHeartFillEmoji.BackColor = System.Drawing.Color.White;
|
||||
this._lblHeartFillEmoji.Font = new System.Drawing.Font("Segoe Fluent Icons", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this._lblHeartFillEmoji.ForeColor = System.Drawing.Color.HotPink;
|
||||
this._lblHeartFillEmoji.ImeMode = System.Windows.Forms.ImeMode.NoControl;
|
||||
this._lblHeartFillEmoji.Location = new System.Drawing.Point(99, 231);
|
||||
this._lblHeartFillEmoji.Name = "_lblHeartFillEmoji";
|
||||
this._lblHeartFillEmoji.Size = new System.Drawing.Size(32, 25);
|
||||
this._lblHeartFillEmoji.TabIndex = 185;
|
||||
//
|
||||
// _lblAssembly
|
||||
//
|
||||
this._lblAssembly.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this._lblAssembly.AutoEllipsis = true;
|
||||
this._lblAssembly.AutoSize = true;
|
||||
this._lblAssembly.BackColor = System.Drawing.Color.White;
|
||||
this._lblAssembly.Font = new System.Drawing.Font("Segoe UI Variable Text", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this._lblAssembly.ForeColor = System.Drawing.Color.Gray;
|
||||
this._lblAssembly.ImeMode = System.Windows.Forms.ImeMode.NoControl;
|
||||
this._lblAssembly.Location = new System.Drawing.Point(63, 209);
|
||||
this._lblAssembly.Name = "_lblAssembly";
|
||||
this._lblAssembly.Size = new System.Drawing.Size(51, 17);
|
||||
this._lblAssembly.TabIndex = 184;
|
||||
this._lblAssembly.Text = "Version";
|
||||
//
|
||||
// lblAppMediaPayPal
|
||||
//
|
||||
this.lblAppMediaPayPal.ActiveLinkColor = System.Drawing.Color.MediumVioletRed;
|
||||
this.lblAppMediaPayPal.AutoEllipsis = true;
|
||||
this.lblAppMediaPayPal.Font = new System.Drawing.Font("Segoe UI Variable Text", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblAppMediaPayPal.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
|
||||
this.lblAppMediaPayPal.LinkColor = System.Drawing.Color.MediumVioletRed;
|
||||
this.lblAppMediaPayPal.Location = new System.Drawing.Point(63, 352);
|
||||
this.lblAppMediaPayPal.Name = "lblAppMediaPayPal";
|
||||
this.lblAppMediaPayPal.Size = new System.Drawing.Size(336, 22);
|
||||
this.lblAppMediaPayPal.TabIndex = 181;
|
||||
this.lblAppMediaPayPal.TabStop = true;
|
||||
this.lblAppMediaPayPal.Text = "Donate to Belim from @builtbybel ";
|
||||
this.lblAppMediaPayPal.VisitedLinkColor = System.Drawing.Color.MediumVioletRed;
|
||||
this.lblAppMediaPayPal.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lblAppMediaPayPal_LinkClicked);
|
||||
//
|
||||
// lblAppMediaTwitter
|
||||
//
|
||||
this.lblAppMediaTwitter.ActiveLinkColor = System.Drawing.Color.MediumVioletRed;
|
||||
this.lblAppMediaTwitter.AutoEllipsis = true;
|
||||
this.lblAppMediaTwitter.Font = new System.Drawing.Font("Segoe UI Variable Text", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblAppMediaTwitter.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
|
||||
this.lblAppMediaTwitter.LinkColor = System.Drawing.Color.MediumVioletRed;
|
||||
this.lblAppMediaTwitter.Location = new System.Drawing.Point(63, 320);
|
||||
this.lblAppMediaTwitter.Name = "lblAppMediaTwitter";
|
||||
this.lblAppMediaTwitter.Size = new System.Drawing.Size(336, 22);
|
||||
this.lblAppMediaTwitter.TabIndex = 180;
|
||||
this.lblAppMediaTwitter.TabStop = true;
|
||||
this.lblAppMediaTwitter.Text = "Follow me on Twitter";
|
||||
this.lblAppMediaTwitter.VisitedLinkColor = System.Drawing.Color.MediumVioletRed;
|
||||
this.lblAppMediaTwitter.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lblAppMediaTwitter_LinkClicked);
|
||||
//
|
||||
// lblAppMediaGitHub
|
||||
//
|
||||
this.lblAppMediaGitHub.ActiveLinkColor = System.Drawing.Color.MediumVioletRed;
|
||||
this.lblAppMediaGitHub.AutoEllipsis = true;
|
||||
this.lblAppMediaGitHub.Font = new System.Drawing.Font("Segoe UI Variable Text", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblAppMediaGitHub.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
|
||||
this.lblAppMediaGitHub.LinkColor = System.Drawing.Color.MediumVioletRed;
|
||||
this.lblAppMediaGitHub.Location = new System.Drawing.Point(63, 289);
|
||||
this.lblAppMediaGitHub.Name = "lblAppMediaGitHub";
|
||||
this.lblAppMediaGitHub.Size = new System.Drawing.Size(336, 22);
|
||||
this.lblAppMediaGitHub.TabIndex = 178;
|
||||
this.lblAppMediaGitHub.TabStop = true;
|
||||
this.lblAppMediaGitHub.Text = "Follow on GitHub";
|
||||
this.lblAppMediaGitHub.VisitedLinkColor = System.Drawing.Color.MediumVioletRed;
|
||||
this.lblAppMediaGitHub.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lblAppMediaGitHub_LinkClicked);
|
||||
//
|
||||
// _lblAppName
|
||||
//
|
||||
this._lblAppName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this._lblAppName.AutoEllipsis = true;
|
||||
this._lblAppName.AutoSize = true;
|
||||
this._lblAppName.BackColor = System.Drawing.Color.White;
|
||||
this._lblAppName.Font = new System.Drawing.Font("Segoe UI Variable Text", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this._lblAppName.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this._lblAppName.ImeMode = System.Windows.Forms.ImeMode.NoControl;
|
||||
this._lblAppName.Location = new System.Drawing.Point(59, 173);
|
||||
this._lblAppName.Name = "_lblAppName";
|
||||
this._lblAppName.Size = new System.Drawing.Size(237, 36);
|
||||
this._lblAppName.TabIndex = 177;
|
||||
this._lblAppName.Text = "Bloaty \'Nosy App";
|
||||
//
|
||||
// btnBack
|
||||
//
|
||||
this.btnBack.FlatAppearance.BorderSize = 0;
|
||||
this.btnBack.FlatAppearance.MouseOverBackColor = System.Drawing.Color.WhiteSmoke;
|
||||
this.btnBack.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnBack.Font = new System.Drawing.Font("Segoe Fluent Icons", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnBack.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.btnBack.Location = new System.Drawing.Point(0, 0);
|
||||
this.btnBack.Name = "btnBack";
|
||||
this.btnBack.Size = new System.Drawing.Size(42, 38);
|
||||
this.btnBack.TabIndex = 178;
|
||||
this.btnBack.Text = "...";
|
||||
this.btnBack.UseVisualStyleBackColor = true;
|
||||
this.btnBack.Click += new System.EventHandler(this.btnBack_Click);
|
||||
//
|
||||
// lblHeader
|
||||
//
|
||||
this.lblHeader.AutoEllipsis = true;
|
||||
this.lblHeader.Font = new System.Drawing.Font("Segoe UI Variable Text Semibold", 14.25F, System.Drawing.FontStyle.Bold, 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(60, 4);
|
||||
this.lblHeader.Name = "lblHeader";
|
||||
this.lblHeader.Size = new System.Drawing.Size(588, 32);
|
||||
this.lblHeader.TabIndex = 189;
|
||||
this.lblHeader.Text = "Settings";
|
||||
//
|
||||
// _lblAboutInfo
|
||||
//
|
||||
this._lblAboutInfo.AutoEllipsis = true;
|
||||
this._lblAboutInfo.AutoSize = true;
|
||||
this._lblAboutInfo.Font = new System.Drawing.Font("Segoe UI Variable Display", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this._lblAboutInfo.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this._lblAboutInfo.Location = new System.Drawing.Point(62, 143);
|
||||
this._lblAboutInfo.Name = "_lblAboutInfo";
|
||||
this._lblAboutInfo.Size = new System.Drawing.Size(100, 17);
|
||||
this._lblAboutInfo.TabIndex = 190;
|
||||
this._lblAboutInfo.Text = "About this App";
|
||||
//
|
||||
// btnAppMediaTweetIntent
|
||||
//
|
||||
this.btnAppMediaTweetIntent.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.btnAppMediaTweetIntent.FlatAppearance.BorderColor = System.Drawing.Color.Lime;
|
||||
this.btnAppMediaTweetIntent.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnAppMediaTweetIntent.Font = new System.Drawing.Font("Segoe UI Variable Display", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnAppMediaTweetIntent.ForeColor = System.Drawing.Color.White;
|
||||
this.btnAppMediaTweetIntent.Location = new System.Drawing.Point(66, 469);
|
||||
this.btnAppMediaTweetIntent.Name = "btnAppMediaTweetIntent";
|
||||
this.btnAppMediaTweetIntent.Size = new System.Drawing.Size(302, 36);
|
||||
this.btnAppMediaTweetIntent.TabIndex = 191;
|
||||
this.btnAppMediaTweetIntent.Text = "Rate BloatyNosy on Microsoft Store";
|
||||
this.btnAppMediaTweetIntent.UseVisualStyleBackColor = false;
|
||||
this.btnAppMediaTweetIntent.Click += new System.EventHandler(this.btnAppMediaTweetIntent_Click);
|
||||
//
|
||||
// lnkUpdateAvailable
|
||||
//
|
||||
this.lnkUpdateAvailable.ActiveLinkColor = System.Drawing.Color.DeepPink;
|
||||
this.lnkUpdateAvailable.AutoEllipsis = true;
|
||||
this.lnkUpdateAvailable.AutoSize = true;
|
||||
this.lnkUpdateAvailable.BackColor = System.Drawing.Color.Turquoise;
|
||||
this.lnkUpdateAvailable.Font = new System.Drawing.Font("Segoe UI Variable Text Semibold", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lnkUpdateAvailable.LinkColor = System.Drawing.Color.Black;
|
||||
this.lnkUpdateAvailable.Location = new System.Drawing.Point(188, 209);
|
||||
this.lnkUpdateAvailable.Name = "lnkUpdateAvailable";
|
||||
this.lnkUpdateAvailable.Size = new System.Drawing.Size(17, 17);
|
||||
this.lnkUpdateAvailable.TabIndex = 195;
|
||||
this.lnkUpdateAvailable.TabStop = true;
|
||||
this.lnkUpdateAvailable.Text = "...";
|
||||
this.lnkUpdateAvailable.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lnkUpdateAvailable_LinkClicked);
|
||||
//
|
||||
// btnHelp
|
||||
//
|
||||
this.btnHelp.Font = new System.Drawing.Font("Segoe UI Variable Text Semiligh", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnHelp.Location = new System.Drawing.Point(66, 418);
|
||||
this.btnHelp.Name = "btnHelp";
|
||||
this.btnHelp.Size = new System.Drawing.Size(163, 32);
|
||||
this.btnHelp.TabIndex = 196;
|
||||
this.btnHelp.Text = "Help";
|
||||
this.btnHelp.UseVisualStyleBackColor = true;
|
||||
this.btnHelp.Click += new System.EventHandler(this.btnHelp_Click);
|
||||
//
|
||||
// AboutPageView
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
this.AutoScroll = true;
|
||||
this.BackColor = System.Drawing.Color.White;
|
||||
this.Controls.Add(this.btnHelp);
|
||||
this.Controls.Add(this.lnkUpdateAvailable);
|
||||
this.Controls.Add(this.btnAppMediaTweetIntent);
|
||||
this.Controls.Add(this._lblAboutInfo);
|
||||
this.Controls.Add(this.lblHeader);
|
||||
this.Controls.Add(this.btnBack);
|
||||
this.Controls.Add(this._lblDev);
|
||||
this.Controls.Add(this._lblWith);
|
||||
this.Controls.Add(this._lblAppName);
|
||||
this.Controls.Add(this._lblHeartFillEmoji);
|
||||
this.Controls.Add(this.lblAppMediaGitHub);
|
||||
this.Controls.Add(this._lblAssembly);
|
||||
this.Controls.Add(this.lblAppMediaTwitter);
|
||||
this.Controls.Add(this.lblAppMediaPayPal);
|
||||
this.Name = "AboutPageView";
|
||||
this.Size = new System.Drawing.Size(1054, 795);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
private System.Windows.Forms.Button btnBack;
|
||||
private System.Windows.Forms.Label _lblDev;
|
||||
private System.Windows.Forms.Label _lblWith;
|
||||
private System.Windows.Forms.Label _lblHeartFillEmoji;
|
||||
private System.Windows.Forms.Label _lblAssembly;
|
||||
private System.Windows.Forms.LinkLabel lblAppMediaPayPal;
|
||||
private System.Windows.Forms.LinkLabel lblAppMediaTwitter;
|
||||
private System.Windows.Forms.LinkLabel lblAppMediaGitHub;
|
||||
private System.Windows.Forms.Label _lblAppName;
|
||||
private System.Windows.Forms.Label lblHeader;
|
||||
private System.Windows.Forms.Label _lblAboutInfo;
|
||||
private System.Windows.Forms.Button btnAppMediaTweetIntent;
|
||||
private System.Windows.Forms.LinkLabel lnkUpdateAvailable;
|
||||
private System.Windows.Forms.Button btnHelp;
|
||||
}
|
||||
}
|
@ -1,121 +0,0 @@
|
||||
using HelperTool;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace BloatyNosy
|
||||
{
|
||||
public partial class AboutPageView : UserControl
|
||||
{
|
||||
public AboutPageView()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
SetStyle();
|
||||
CheckForUpdates();
|
||||
}
|
||||
|
||||
// Some UI nicety
|
||||
private void SetStyle()
|
||||
{
|
||||
BackColor =
|
||||
_lblAppName.BackColor =
|
||||
_lblAssembly.BackColor =
|
||||
_lblWith.BackColor =
|
||||
_lblHeartFillEmoji.BackColor =
|
||||
_lblDev.BackColor =
|
||||
Color.FromArgb(245, 241, 249);
|
||||
|
||||
btnBack.Text = "\uE72B";
|
||||
_lblAssembly.Text = "Version " + Program.GetCurrentVersionTostring();
|
||||
_lblHeartFillEmoji.Text = "\uEB52";
|
||||
}
|
||||
|
||||
public void CheckForUpdates()
|
||||
{
|
||||
if (IsInet() == true)
|
||||
{
|
||||
try
|
||||
{
|
||||
string assemblyInfo = new WebClient().DownloadString(Utils.Uri.URL_ASSEMBLY);
|
||||
|
||||
var readVersion = assemblyInfo.Split('\n');
|
||||
var infoVersion = readVersion.Where(t => t.Contains("[assembly: AssemblyFileVersion"));
|
||||
var latestVersion = "";
|
||||
foreach (var item in infoVersion)
|
||||
{
|
||||
latestVersion = item.Substring(item.IndexOf('(') + 2, item.LastIndexOf(')') - item.IndexOf('(') - 3);
|
||||
}
|
||||
|
||||
if (latestVersion ==
|
||||
Program.GetCurrentVersionTostring()) // Up-to-date
|
||||
{
|
||||
//logger.Log("No new release found.");
|
||||
lnkUpdateAvailable.Visible = false;
|
||||
}
|
||||
|
||||
if (latestVersion != // Update available
|
||||
Program.GetCurrentVersionTostring())
|
||||
|
||||
{
|
||||
lnkUpdateAvailable.Text = $"App version {latestVersion} available.";
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
lnkUpdateAvailable.Text = $"Checking for App updates failed.\n{ex.Message}";
|
||||
}
|
||||
}
|
||||
else if (IsInet() == false)
|
||||
{
|
||||
lnkUpdateAvailable.Text = $"Problem on Internet connection: Checking for App updates failed";
|
||||
}
|
||||
}
|
||||
|
||||
// Check Inet
|
||||
public static bool IsInet()
|
||||
{
|
||||
try
|
||||
{
|
||||
using (var CheckInternet = new WebClient())
|
||||
using (CheckInternet.OpenRead("http://clients3.google.com/generate_204"))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private void btnBack_Click(object sender, System.EventArgs e)
|
||||
{
|
||||
var mainForm = Application.OpenForms.OfType<MainForm>().Single();
|
||||
mainForm.pnlForm.Controls.Clear();
|
||||
if (mainForm.INavPage != null) mainForm.pnlForm.Controls.Add(mainForm.INavPage);
|
||||
}
|
||||
|
||||
private void lblAppMediaGitHub_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
=> Process.Start(HelperTool.Utils.Uri.URL_GITREPO);
|
||||
|
||||
private void lblAppMediaTwitter_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
=> Process.Start(HelperTool.Utils.Uri.URL_TWITTER);
|
||||
|
||||
private void lblAppMediaPayPal_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
=> Process.Start(HelperTool.Utils.Uri.URL_DONATE);
|
||||
|
||||
private void btnAppMediaTweetIntent_Click(object sender, System.EventArgs e)
|
||||
=> Process.Start("ms-windows-store://review/?ProductId=XPDCJG88N6FD16");
|
||||
|
||||
private void lnkUpdateAvailable_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
=> Utils.LaunchUri(Utils.Uri.URL_GITLATEST);
|
||||
|
||||
private void btnHelp_Click(object sender, EventArgs e)
|
||||
=> Process.Start(HelperTool.Utils.Uri.URL_HELP);
|
||||
|
||||
}
|
||||
}
|
469
src/BloatyNosyAI/Views/AppsPageView.Designer.cs
generated
469
src/BloatyNosyAI/Views/AppsPageView.Designer.cs
generated
@ -1,469 +0,0 @@
|
||||
namespace BloatyNosy
|
||||
{
|
||||
partial class AppsPageView
|
||||
{
|
||||
/// <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 Komponenten-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();
|
||||
System.Windows.Forms.ToolStripMenuItem menuAppsExport;
|
||||
this.listRemove = new System.Windows.Forms.ListBox();
|
||||
this.rtbStatus = new System.Windows.Forms.RichTextBox();
|
||||
this.btnAppOptions = new System.Windows.Forms.Button();
|
||||
this.btnRestoreAll = new System.Windows.Forms.Button();
|
||||
this.btnRestore = new System.Windows.Forms.Button();
|
||||
this.btnMoveAll = new System.Windows.Forms.Button();
|
||||
this.btnMove = new System.Windows.Forms.Button();
|
||||
this.btnUninstall = new System.Windows.Forms.Button();
|
||||
this.btnBack = new System.Windows.Forms.Button();
|
||||
this.lblHeader = new System.Windows.Forms.Label();
|
||||
this.listApps = new System.Windows.Forms.ListBox();
|
||||
this.checkAppsSystem = new System.Windows.Forms.CheckBox();
|
||||
this.groupBin = new System.Windows.Forms.GroupBox();
|
||||
this.picAppsPoster = new System.Windows.Forms.PictureBox();
|
||||
this.lblAppsBinOptions = new System.Windows.Forms.LinkLabel();
|
||||
this.groupInstalled = new System.Windows.Forms.GroupBox();
|
||||
this.textSearch = new System.Windows.Forms.TextBox();
|
||||
this.btnHMenu = new System.Windows.Forms.Button();
|
||||
this.contextAppMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.menuAppsImport = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.menuAppsRemoveAll = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.contextAppMenuOptions = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.menuAppsCommunity = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.menuAppsHallOfShame = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.menuRefresh = new System.Windows.Forms.ToolStripMenuItem();
|
||||
menuAppsExport = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.groupBin.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.picAppsPoster)).BeginInit();
|
||||
this.groupInstalled.SuspendLayout();
|
||||
this.contextAppMenu.SuspendLayout();
|
||||
this.contextAppMenuOptions.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// menuAppsExport
|
||||
//
|
||||
menuAppsExport.Name = "menuAppsExport";
|
||||
menuAppsExport.Size = new System.Drawing.Size(193, 22);
|
||||
menuAppsExport.Text = "Export bloatware in bin";
|
||||
menuAppsExport.Click += new System.EventHandler(this.menuAppsExport_Click);
|
||||
//
|
||||
// listRemove
|
||||
//
|
||||
this.listRemove.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.listRemove.BackColor = System.Drawing.Color.White;
|
||||
this.listRemove.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.listRemove.Font = new System.Drawing.Font("Segoe UI Variable Text Semiligh", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.listRemove.FormattingEnabled = true;
|
||||
this.listRemove.ItemHeight = 17;
|
||||
this.listRemove.Location = new System.Drawing.Point(11, 36);
|
||||
this.listRemove.Name = "listRemove";
|
||||
this.listRemove.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
|
||||
this.listRemove.Size = new System.Drawing.Size(394, 595);
|
||||
this.listRemove.Sorted = true;
|
||||
this.listRemove.TabIndex = 13;
|
||||
//
|
||||
// rtbStatus
|
||||
//
|
||||
this.rtbStatus.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.rtbStatus.BackColor = System.Drawing.Color.White;
|
||||
this.rtbStatus.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.rtbStatus.Font = new System.Drawing.Font("Segoe UI Variable Text", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.rtbStatus.ForeColor = System.Drawing.Color.Black;
|
||||
this.rtbStatus.HideSelection = false;
|
||||
this.rtbStatus.Location = new System.Drawing.Point(11, 66);
|
||||
this.rtbStatus.Name = "rtbStatus";
|
||||
this.rtbStatus.ReadOnly = true;
|
||||
this.rtbStatus.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical;
|
||||
this.rtbStatus.Size = new System.Drawing.Size(393, 570);
|
||||
this.rtbStatus.TabIndex = 139;
|
||||
this.rtbStatus.Text = "";
|
||||
this.rtbStatus.Visible = false;
|
||||
//
|
||||
// btnAppOptions
|
||||
//
|
||||
this.btnAppOptions.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnAppOptions.BackColor = System.Drawing.Color.MediumVioletRed;
|
||||
this.btnAppOptions.FlatAppearance.BorderColor = System.Drawing.Color.Orchid;
|
||||
this.btnAppOptions.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnAppOptions.Font = new System.Drawing.Font("Segoe Fluent Icons", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnAppOptions.ForeColor = System.Drawing.Color.White;
|
||||
this.btnAppOptions.Location = new System.Drawing.Point(977, 49);
|
||||
this.btnAppOptions.Name = "btnAppOptions";
|
||||
this.btnAppOptions.Size = new System.Drawing.Size(31, 30);
|
||||
this.btnAppOptions.TabIndex = 38;
|
||||
this.btnAppOptions.Text = "...";
|
||||
this.btnAppOptions.UseVisualStyleBackColor = false;
|
||||
this.btnAppOptions.Click += new System.EventHandler(this.btnAppOptions_Click);
|
||||
//
|
||||
// btnRestoreAll
|
||||
//
|
||||
this.btnRestoreAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnRestoreAll.Font = new System.Drawing.Font("Segoe UI Variable Text", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnRestoreAll.ForeColor = System.Drawing.Color.Black;
|
||||
this.btnRestoreAll.Location = new System.Drawing.Point(482, 313);
|
||||
this.btnRestoreAll.Name = "btnRestoreAll";
|
||||
this.btnRestoreAll.Size = new System.Drawing.Size(89, 23);
|
||||
this.btnRestoreAll.TabIndex = 34;
|
||||
this.btnRestoreAll.Text = "<< Restore all";
|
||||
this.btnRestoreAll.UseVisualStyleBackColor = true;
|
||||
this.btnRestoreAll.Click += new System.EventHandler(this.btnRestoreAll_Click);
|
||||
//
|
||||
// btnRestore
|
||||
//
|
||||
this.btnRestore.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnRestore.Font = new System.Drawing.Font("Segoe UI Variable Text", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnRestore.ForeColor = System.Drawing.Color.Black;
|
||||
this.btnRestore.Location = new System.Drawing.Point(482, 342);
|
||||
this.btnRestore.Name = "btnRestore";
|
||||
this.btnRestore.Size = new System.Drawing.Size(89, 23);
|
||||
this.btnRestore.TabIndex = 32;
|
||||
this.btnRestore.Text = "< Restore";
|
||||
this.btnRestore.UseVisualStyleBackColor = true;
|
||||
this.btnRestore.Click += new System.EventHandler(this.btnRestore_Click);
|
||||
//
|
||||
// btnMoveAll
|
||||
//
|
||||
this.btnMoveAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnMoveAll.Font = new System.Drawing.Font("Segoe UI Variable Text", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnMoveAll.ForeColor = System.Drawing.Color.Black;
|
||||
this.btnMoveAll.Location = new System.Drawing.Point(482, 201);
|
||||
this.btnMoveAll.Name = "btnMoveAll";
|
||||
this.btnMoveAll.Size = new System.Drawing.Size(89, 23);
|
||||
this.btnMoveAll.TabIndex = 35;
|
||||
this.btnMoveAll.Text = "Move all >>";
|
||||
this.btnMoveAll.UseVisualStyleBackColor = true;
|
||||
this.btnMoveAll.Click += new System.EventHandler(this.btnMoveAll_Click);
|
||||
//
|
||||
// btnMove
|
||||
//
|
||||
this.btnMove.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnMove.Font = new System.Drawing.Font("Segoe UI Variable Text", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnMove.ForeColor = System.Drawing.Color.Black;
|
||||
this.btnMove.Location = new System.Drawing.Point(482, 230);
|
||||
this.btnMove.Name = "btnMove";
|
||||
this.btnMove.Size = new System.Drawing.Size(89, 23);
|
||||
this.btnMove.TabIndex = 31;
|
||||
this.btnMove.Text = "Move >";
|
||||
this.btnMove.UseVisualStyleBackColor = true;
|
||||
this.btnMove.Click += new System.EventHandler(this.btnMove_Click);
|
||||
//
|
||||
// btnUninstall
|
||||
//
|
||||
this.btnUninstall.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnUninstall.BackColor = System.Drawing.Color.MediumVioletRed;
|
||||
this.btnUninstall.FlatAppearance.BorderColor = System.Drawing.Color.Orchid;
|
||||
this.btnUninstall.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnUninstall.Font = new System.Drawing.Font("Segoe UI Variable Text Semiligh", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnUninstall.ForeColor = System.Drawing.Color.White;
|
||||
this.btnUninstall.Location = new System.Drawing.Point(797, 49);
|
||||
this.btnUninstall.Name = "btnUninstall";
|
||||
this.btnUninstall.Size = new System.Drawing.Size(181, 30);
|
||||
this.btnUninstall.TabIndex = 41;
|
||||
this.btnUninstall.Text = "Empty bin and remove apps";
|
||||
this.btnUninstall.UseVisualStyleBackColor = false;
|
||||
this.btnUninstall.Click += new System.EventHandler(this.btnUninstall_Click);
|
||||
//
|
||||
// btnBack
|
||||
//
|
||||
this.btnBack.FlatAppearance.BorderSize = 0;
|
||||
this.btnBack.FlatAppearance.MouseOverBackColor = System.Drawing.Color.WhiteSmoke;
|
||||
this.btnBack.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnBack.Font = new System.Drawing.Font("Segoe Fluent Icons", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnBack.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.btnBack.Location = new System.Drawing.Point(0, 0);
|
||||
this.btnBack.Name = "btnBack";
|
||||
this.btnBack.Size = new System.Drawing.Size(42, 38);
|
||||
this.btnBack.TabIndex = 176;
|
||||
this.btnBack.Text = "...";
|
||||
this.btnBack.UseVisualStyleBackColor = true;
|
||||
this.btnBack.Click += new System.EventHandler(this.btnBack_Click);
|
||||
//
|
||||
// lblHeader
|
||||
//
|
||||
this.lblHeader.AutoEllipsis = true;
|
||||
this.lblHeader.Font = new System.Drawing.Font("Segoe UI Variable Text Semibold", 14.25F, System.Drawing.FontStyle.Bold, 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(80, 4);
|
||||
this.lblHeader.Name = "lblHeader";
|
||||
this.lblHeader.Size = new System.Drawing.Size(960, 32);
|
||||
this.lblHeader.TabIndex = 177;
|
||||
this.lblHeader.Text = "BloatFinder";
|
||||
//
|
||||
// listApps
|
||||
//
|
||||
this.listApps.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.listApps.BackColor = System.Drawing.Color.White;
|
||||
this.listApps.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.listApps.Font = new System.Drawing.Font("Segoe UI Variable Text Semiligh", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.listApps.FormattingEnabled = true;
|
||||
this.listApps.ItemHeight = 17;
|
||||
this.listApps.Location = new System.Drawing.Point(11, 36);
|
||||
this.listApps.Name = "listApps";
|
||||
this.listApps.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
|
||||
this.listApps.Size = new System.Drawing.Size(394, 595);
|
||||
this.listApps.Sorted = true;
|
||||
this.listApps.TabIndex = 13;
|
||||
//
|
||||
// checkAppsSystem
|
||||
//
|
||||
this.checkAppsSystem.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.checkAppsSystem.AutoSize = true;
|
||||
this.checkAppsSystem.FlatAppearance.BorderSize = 0;
|
||||
this.checkAppsSystem.Font = new System.Drawing.Font("Segoe UI Variable Text", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.checkAppsSystem.ForeColor = System.Drawing.Color.DeepPink;
|
||||
this.checkAppsSystem.Location = new System.Drawing.Point(35, 744);
|
||||
this.checkAppsSystem.Name = "checkAppsSystem";
|
||||
this.checkAppsSystem.Size = new System.Drawing.Size(135, 21);
|
||||
this.checkAppsSystem.TabIndex = 16;
|
||||
this.checkAppsSystem.Text = "Show system apps";
|
||||
this.checkAppsSystem.UseVisualStyleBackColor = true;
|
||||
this.checkAppsSystem.CheckedChanged += new System.EventHandler(this.checkAppsSystem_CheckedChanged);
|
||||
//
|
||||
// groupBin
|
||||
//
|
||||
this.groupBin.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.groupBin.Controls.Add(this.picAppsPoster);
|
||||
this.groupBin.Controls.Add(this.rtbStatus);
|
||||
this.groupBin.Controls.Add(this.lblAppsBinOptions);
|
||||
this.groupBin.Controls.Add(this.listRemove);
|
||||
this.groupBin.Font = new System.Drawing.Font("Segoe UI Variable Text", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.groupBin.ForeColor = System.Drawing.Color.DeepPink;
|
||||
this.groupBin.Location = new System.Drawing.Point(609, 82);
|
||||
this.groupBin.Name = "groupBin";
|
||||
this.groupBin.Size = new System.Drawing.Size(411, 648);
|
||||
this.groupBin.TabIndex = 39;
|
||||
this.groupBin.TabStop = false;
|
||||
this.groupBin.Text = "Recycle bin";
|
||||
//
|
||||
// picAppsPoster
|
||||
//
|
||||
this.picAppsPoster.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.picAppsPoster.ErrorImage = null;
|
||||
this.picAppsPoster.InitialImage = null;
|
||||
this.picAppsPoster.Location = new System.Drawing.Point(38, 105);
|
||||
this.picAppsPoster.Name = "picAppsPoster";
|
||||
this.picAppsPoster.Size = new System.Drawing.Size(331, 454);
|
||||
this.picAppsPoster.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
|
||||
this.picAppsPoster.TabIndex = 161;
|
||||
this.picAppsPoster.TabStop = false;
|
||||
this.picAppsPoster.Visible = false;
|
||||
//
|
||||
// lblAppsBinOptions
|
||||
//
|
||||
this.lblAppsBinOptions.ActiveLinkColor = System.Drawing.Color.MediumVioletRed;
|
||||
this.lblAppsBinOptions.AutoEllipsis = true;
|
||||
this.lblAppsBinOptions.Font = new System.Drawing.Font("Segoe UI Variable Text", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblAppsBinOptions.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
|
||||
this.lblAppsBinOptions.LinkColor = System.Drawing.Color.Gray;
|
||||
this.lblAppsBinOptions.Location = new System.Drawing.Point(8, 36);
|
||||
this.lblAppsBinOptions.Name = "lblAppsBinOptions";
|
||||
this.lblAppsBinOptions.Size = new System.Drawing.Size(361, 16);
|
||||
this.lblAppsBinOptions.TabIndex = 159;
|
||||
this.lblAppsBinOptions.TabStop = true;
|
||||
this.lblAppsBinOptions.Text = "Move the apps you want to uninstall here or import via file.";
|
||||
this.lblAppsBinOptions.VisitedLinkColor = System.Drawing.Color.MediumVioletRed;
|
||||
this.lblAppsBinOptions.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lblAppsBinOptions_LinkClicked);
|
||||
//
|
||||
// groupInstalled
|
||||
//
|
||||
this.groupInstalled.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.groupInstalled.Controls.Add(this.listApps);
|
||||
this.groupInstalled.Font = new System.Drawing.Font("Segoe UI Variable Text", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.groupInstalled.ForeColor = System.Drawing.Color.Violet;
|
||||
this.groupInstalled.Location = new System.Drawing.Point(28, 82);
|
||||
this.groupInstalled.Name = "groupInstalled";
|
||||
this.groupInstalled.Size = new System.Drawing.Size(411, 648);
|
||||
this.groupInstalled.TabIndex = 40;
|
||||
this.groupInstalled.TabStop = false;
|
||||
this.groupInstalled.Text = "Installed apps";
|
||||
//
|
||||
// textSearch
|
||||
//
|
||||
this.textSearch.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.textSearch.BackColor = System.Drawing.Color.WhiteSmoke;
|
||||
this.textSearch.Font = new System.Drawing.Font("Segoe UI Variable Text", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.textSearch.ForeColor = System.Drawing.Color.Gray;
|
||||
this.textSearch.Location = new System.Drawing.Point(469, 29);
|
||||
this.textSearch.Name = "textSearch";
|
||||
this.textSearch.Size = new System.Drawing.Size(122, 23);
|
||||
this.textSearch.TabIndex = 181;
|
||||
this.textSearch.Text = "Search...";
|
||||
this.textSearch.Click += new System.EventHandler(this.textSearch_Click);
|
||||
this.textSearch.TextChanged += new System.EventHandler(this.textSearch_TextChanged);
|
||||
//
|
||||
// btnHMenu
|
||||
//
|
||||
this.btnHMenu.FlatAppearance.BorderSize = 0;
|
||||
this.btnHMenu.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Gainsboro;
|
||||
this.btnHMenu.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnHMenu.Font = new System.Drawing.Font("Segoe Fluent Icons", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnHMenu.ForeColor = System.Drawing.Color.Black;
|
||||
this.btnHMenu.Location = new System.Drawing.Point(35, 0);
|
||||
this.btnHMenu.Name = "btnHMenu";
|
||||
this.btnHMenu.Size = new System.Drawing.Size(42, 38);
|
||||
this.btnHMenu.TabIndex = 184;
|
||||
this.btnHMenu.Text = "...";
|
||||
this.btnHMenu.UseVisualStyleBackColor = true;
|
||||
this.btnHMenu.Click += new System.EventHandler(this.btnHMenu_Click);
|
||||
//
|
||||
// contextAppMenu
|
||||
//
|
||||
this.contextAppMenu.BackColor = System.Drawing.Color.WhiteSmoke;
|
||||
this.contextAppMenu.Font = new System.Drawing.Font("Segoe UI Variable Text Semiligh", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.contextAppMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.menuAppsImport,
|
||||
menuAppsExport,
|
||||
this.menuAppsRemoveAll});
|
||||
this.contextAppMenu.Name = "menuMain";
|
||||
this.contextAppMenu.RenderMode = System.Windows.Forms.ToolStripRenderMode.System;
|
||||
this.contextAppMenu.Size = new System.Drawing.Size(194, 70);
|
||||
this.contextAppMenu.Text = "Info";
|
||||
//
|
||||
// menuAppsImport
|
||||
//
|
||||
this.menuAppsImport.Name = "menuAppsImport";
|
||||
this.menuAppsImport.Size = new System.Drawing.Size(193, 22);
|
||||
this.menuAppsImport.Text = "Import bloatware list";
|
||||
this.menuAppsImport.Click += new System.EventHandler(this.menuAppsImport_Click);
|
||||
//
|
||||
// menuAppsRemoveAll
|
||||
//
|
||||
this.menuAppsRemoveAll.Name = "menuAppsRemoveAll";
|
||||
this.menuAppsRemoveAll.Size = new System.Drawing.Size(193, 22);
|
||||
this.menuAppsRemoveAll.Text = "Uninstall all apps";
|
||||
this.menuAppsRemoveAll.Click += new System.EventHandler(this.menuAppsRemoveAll_Click);
|
||||
//
|
||||
// contextAppMenuOptions
|
||||
//
|
||||
this.contextAppMenuOptions.BackColor = System.Drawing.Color.WhiteSmoke;
|
||||
this.contextAppMenuOptions.Font = new System.Drawing.Font("Segoe UI Variable Text Semiligh", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.contextAppMenuOptions.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.menuAppsCommunity,
|
||||
this.menuAppsHallOfShame,
|
||||
this.toolStripSeparator2,
|
||||
this.menuRefresh});
|
||||
this.contextAppMenuOptions.Name = "menuMain";
|
||||
this.contextAppMenuOptions.RenderMode = System.Windows.Forms.ToolStripRenderMode.System;
|
||||
this.contextAppMenuOptions.Size = new System.Drawing.Size(368, 76);
|
||||
this.contextAppMenuOptions.Text = "Info";
|
||||
//
|
||||
// menuAppsCommunity
|
||||
//
|
||||
this.menuAppsCommunity.Name = "menuAppsCommunity";
|
||||
this.menuAppsCommunity.Size = new System.Drawing.Size(367, 22);
|
||||
this.menuAppsCommunity.Text = "Add bloatware rated by community to recycle bin";
|
||||
this.menuAppsCommunity.Click += new System.EventHandler(this.menuAppsCommunity_Click);
|
||||
//
|
||||
// menuAppsHallOfShame
|
||||
//
|
||||
this.menuAppsHallOfShame.Name = "menuAppsHallOfShame";
|
||||
this.menuAppsHallOfShame.Size = new System.Drawing.Size(367, 22);
|
||||
this.menuAppsHallOfShame.Text = "Add the 10 most hated apps of Windows 11 to recycle bin";
|
||||
this.menuAppsHallOfShame.Click += new System.EventHandler(this.menuAppsHallOfShame_Click);
|
||||
//
|
||||
// toolStripSeparator2
|
||||
//
|
||||
this.toolStripSeparator2.Name = "toolStripSeparator2";
|
||||
this.toolStripSeparator2.Size = new System.Drawing.Size(364, 6);
|
||||
//
|
||||
// menuRefresh
|
||||
//
|
||||
this.menuRefresh.Name = "menuRefresh";
|
||||
this.menuRefresh.Size = new System.Drawing.Size(367, 22);
|
||||
this.menuRefresh.Text = "Refresh";
|
||||
this.menuRefresh.Click += new System.EventHandler(this.menuRefresh_Click);
|
||||
//
|
||||
// AppsPageView
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
this.AutoScroll = true;
|
||||
this.BackColor = System.Drawing.Color.White;
|
||||
this.Controls.Add(this.checkAppsSystem);
|
||||
this.Controls.Add(this.btnHMenu);
|
||||
this.Controls.Add(this.textSearch);
|
||||
this.Controls.Add(this.lblHeader);
|
||||
this.Controls.Add(this.btnBack);
|
||||
this.Controls.Add(this.btnUninstall);
|
||||
this.Controls.Add(this.groupBin);
|
||||
this.Controls.Add(this.btnAppOptions);
|
||||
this.Controls.Add(this.btnRestoreAll);
|
||||
this.Controls.Add(this.groupInstalled);
|
||||
this.Controls.Add(this.btnRestore);
|
||||
this.Controls.Add(this.btnMoveAll);
|
||||
this.Controls.Add(this.btnMove);
|
||||
this.Name = "AppsPageView";
|
||||
this.Size = new System.Drawing.Size(1054, 795);
|
||||
this.groupBin.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.picAppsPoster)).EndInit();
|
||||
this.groupInstalled.ResumeLayout(false);
|
||||
this.contextAppMenu.ResumeLayout(false);
|
||||
this.contextAppMenuOptions.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
private System.Windows.Forms.ListBox listRemove;
|
||||
private System.Windows.Forms.Button btnAppOptions;
|
||||
private System.Windows.Forms.Button btnRestoreAll;
|
||||
private System.Windows.Forms.Button btnRestore;
|
||||
private System.Windows.Forms.Button btnMoveAll;
|
||||
private System.Windows.Forms.Button btnMove;
|
||||
private System.Windows.Forms.Button btnUninstall;
|
||||
public System.Windows.Forms.RichTextBox rtbStatus;
|
||||
private System.Windows.Forms.Button btnBack;
|
||||
private System.Windows.Forms.Label lblHeader;
|
||||
private System.Windows.Forms.ListBox listApps;
|
||||
private System.Windows.Forms.CheckBox checkAppsSystem;
|
||||
private System.Windows.Forms.GroupBox groupBin;
|
||||
private System.Windows.Forms.GroupBox groupInstalled;
|
||||
private System.Windows.Forms.TextBox textSearch;
|
||||
private System.Windows.Forms.LinkLabel lblAppsBinOptions;
|
||||
private System.Windows.Forms.Button btnHMenu;
|
||||
private System.Windows.Forms.ContextMenuStrip contextAppMenu;
|
||||
private System.Windows.Forms.ToolStripMenuItem menuAppsImport;
|
||||
private System.Windows.Forms.ToolStripMenuItem menuAppsRemoveAll;
|
||||
private System.Windows.Forms.ContextMenuStrip contextAppMenuOptions;
|
||||
private System.Windows.Forms.ToolStripMenuItem menuAppsCommunity;
|
||||
private System.Windows.Forms.ToolStripMenuItem menuAppsHallOfShame;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
|
||||
private System.Windows.Forms.ToolStripMenuItem menuRefresh;
|
||||
private System.Windows.Forms.PictureBox picAppsPoster;
|
||||
}
|
||||
}
|
@ -1,454 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Management.Automation;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace BloatyNosy
|
||||
{
|
||||
public partial class AppsPageView : UserControl
|
||||
{
|
||||
private List<string> removeAppsList = new List<string>();
|
||||
private List<string> removeAppsFailedList = new List<string>();
|
||||
private List<string> removeAppsSystem = new List<string>();
|
||||
|
||||
private readonly PowerShell powerShell = PowerShell.Create();
|
||||
|
||||
public AppsPageView()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
this.InitializeAppsSystem(); // Retrieve hidden systemapps from resource file
|
||||
this.InitializeApps(); // Yet just the normal....
|
||||
|
||||
SetStyle();
|
||||
}
|
||||
|
||||
// Some UI nicety
|
||||
private void SetStyle()
|
||||
{
|
||||
BackColor =
|
||||
listApps.BackColor =
|
||||
listRemove.BackColor =
|
||||
rtbStatus.BackColor =
|
||||
Color.FromArgb(245, 241, 249);
|
||||
|
||||
btnHMenu.Text = "\uE700";
|
||||
btnBack.Text = "\uE72B";
|
||||
btnAppOptions.Text = "\uE972";
|
||||
|
||||
if (!HelperTool.Utils.IsInet()) picAppsPoster.Visible = false;
|
||||
else picAppsPoster.ImageLocation = "https://github.com/builtbybel/ThisIsWin11/blob/main/assets/pages/page-apps.png?raw=true";
|
||||
}
|
||||
|
||||
private void InitializeApps()
|
||||
{
|
||||
listApps.Items.Clear();
|
||||
powerShell.Commands.Clear();
|
||||
powerShell.AddCommand("get-appxpackage");
|
||||
powerShell.AddCommand("Select").AddParameter("property", "name");
|
||||
|
||||
foreach (PSObject result in powerShell.Invoke())
|
||||
{
|
||||
string current = result.ToString();
|
||||
// Show ONLY NON-SYSTEM apps by comparing found apps with systemapps.txt
|
||||
if (removeAppsSystem != null) if ((removeAppsSystem.Any(current.Contains)) & !checkAppsSystem.Checked) continue;
|
||||
|
||||
if (listApps.Items.Contains(Regex.Replace(current, "(@{Name=)|(})", ""))) continue;
|
||||
listApps.Items.Add(Regex.Replace(current, "(@{Name=)|(})", ""));
|
||||
removeAppsList.Add(Regex.Replace(current, "(@{Name=)|(})", ""));
|
||||
}
|
||||
|
||||
// Compare left and rights apps list and remove differences
|
||||
string compare = listApps.Items.ToString();
|
||||
foreach (string item in listRemove.Items) if (item.Any(compare.Contains)) listApps.Items.Remove(item);
|
||||
|
||||
RefreshApps();
|
||||
}
|
||||
|
||||
private void InitializeAppsSystem()
|
||||
{
|
||||
StreamReader Database = null;
|
||||
|
||||
try
|
||||
{
|
||||
HelperTool.Utils.CreateDataDir();
|
||||
Database = File.OpenText(HelperTool.Utils.Data.DataRootDir + "systemApps.txt");
|
||||
}
|
||||
catch (FileNotFoundException) // Create file if it doesnt exisits
|
||||
{
|
||||
StreamWriter sw = File.CreateText(HelperTool.Utils.Data.DataRootDir + "systemApps.txt");
|
||||
sw.Write(BloatyNosy.Properties.Resources.systemApps); // Populate it with built in preset
|
||||
sw.Close();
|
||||
|
||||
Database = File.OpenText(HelperTool.Utils.Data.DataRootDir + "systemApps.txt");
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (Database.Peek() > 0) // Exists and not empty
|
||||
{
|
||||
string buff;
|
||||
while ((buff = Database.ReadLine()) != null)
|
||||
{
|
||||
removeAppsSystem.Add(buff);
|
||||
}
|
||||
};
|
||||
Database.Close();
|
||||
}
|
||||
}
|
||||
|
||||
private void RemoveApps(string app)
|
||||
{
|
||||
bool error = false;
|
||||
|
||||
using (PowerShell script = PowerShell.Create())
|
||||
{
|
||||
script.AddScript("Get-AppxPackage " + app + " | Remove-AppxPackage");
|
||||
|
||||
script.Invoke();
|
||||
error = script.HadErrors;
|
||||
}
|
||||
|
||||
if (error)
|
||||
{
|
||||
removeAppsFailedList.Add(app);
|
||||
}
|
||||
else
|
||||
{
|
||||
removeAppsList.Add(app);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
private void RefreshApps()
|
||||
{
|
||||
int installed = listApps.Items.Count;
|
||||
int remove = listRemove.Items.Count;
|
||||
groupInstalled.Text = installed.ToString() + " apps installed";
|
||||
groupBin.Text = "Recycle bin" + " (" + remove.ToString() + ")";
|
||||
|
||||
if (listRemove.Items.Count == 0)
|
||||
{
|
||||
|
||||
lblAppsBinOptions.Visible = true;
|
||||
picAppsPoster.Visible = true;
|
||||
|
||||
rtbStatus.Visible = true;
|
||||
listRemove.Visible = false;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
lblAppsBinOptions.Visible = false;
|
||||
picAppsPoster.Visible = false;
|
||||
|
||||
rtbStatus.Visible = false;
|
||||
listRemove.Visible = true;
|
||||
}
|
||||
|
||||
if (installed == 0)
|
||||
btnMoveAll.Enabled =
|
||||
btnMove.Enabled =
|
||||
false;
|
||||
else
|
||||
btnMoveAll.Enabled =
|
||||
btnMove.Enabled =
|
||||
true;
|
||||
|
||||
if (remove == 0)
|
||||
btnRestoreAll.Enabled =
|
||||
btnRestore.Enabled =
|
||||
false;
|
||||
else
|
||||
btnRestoreAll.Enabled =
|
||||
btnRestore.Enabled =
|
||||
true;
|
||||
}
|
||||
|
||||
private void btnRestoreAll_Click(object sender, EventArgs e)
|
||||
{
|
||||
foreach (var item in listRemove.Items)
|
||||
{
|
||||
listApps.Items.Add(item);
|
||||
}
|
||||
listRemove.Items.Clear();
|
||||
RefreshApps();
|
||||
}
|
||||
|
||||
private void btnRestore_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (listRemove.Items.Count != 0)
|
||||
{
|
||||
if (listRemove.SelectedItem == null) listRemove.SelectedIndex = 0;
|
||||
while (listRemove.SelectedItem != null)
|
||||
{
|
||||
listApps.Items.Add(listRemove.SelectedItem);
|
||||
listRemove.Items.Remove(listRemove.SelectedItem);
|
||||
}
|
||||
RefreshApps();
|
||||
}
|
||||
}
|
||||
|
||||
private void btnMoveAll_Click(object sender, EventArgs e)
|
||||
{
|
||||
foreach (var item in listApps.Items)
|
||||
{
|
||||
listRemove.Items.Add(item);
|
||||
}
|
||||
listApps.Items.Clear();
|
||||
RefreshApps();
|
||||
}
|
||||
|
||||
private void btnMove_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (listApps.Items.Count != 0)
|
||||
{
|
||||
if (listApps.SelectedItem == null) listApps.SelectedIndex = 0;
|
||||
while (listApps.SelectedItem != null)
|
||||
{
|
||||
listRemove.Items.Add(listApps.SelectedItem);
|
||||
listApps.Items.Remove(listApps.SelectedItem);
|
||||
}
|
||||
RefreshApps();
|
||||
}
|
||||
}
|
||||
|
||||
private void checkAppsSystem_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (checkAppsSystem.Checked)
|
||||
{
|
||||
MessageBox.Show("Be picky about which System applications to uninstall." +
|
||||
"\n\nYou can uninstall most of the built-in apps, even ones that don't normally offer an \"Uninstall\" option." +
|
||||
"\n\nNote, however, this app won't allow you to remove a few of the most important built-in apps, like Microsoft Edge, .NET framework, UI.Xaml etc. " +
|
||||
"as these apps are needed for the Windows 11 \"Experience\" and for other programs. If you try, you’ll see an error message saying the removal failed.");
|
||||
|
||||
removeAppsList.Clear();
|
||||
InitializeAppsSystem();
|
||||
InitializeApps();
|
||||
}
|
||||
else
|
||||
{
|
||||
removeAppsList.Clear(); InitializeApps();
|
||||
}
|
||||
}
|
||||
|
||||
private async void btnUninstall_Click(object sender, EventArgs e)
|
||||
{
|
||||
string selectedApps = string.Empty;
|
||||
string successList = string.Empty;
|
||||
string failedList = string.Empty;
|
||||
|
||||
foreach (string app in listRemove.Items)
|
||||
{
|
||||
selectedApps += app + Environment.NewLine;
|
||||
}
|
||||
if (MessageBox.Show("Do you want to empty the Recycle bin and delete all apps in it?", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||
{
|
||||
removeAppsList.Clear();
|
||||
removeAppsFailedList.Clear();
|
||||
rtbStatus.Visible = true;
|
||||
rtbStatus.Clear();
|
||||
listRemove.Visible = false;
|
||||
btnUninstall.Enabled = false;
|
||||
|
||||
foreach (string app in listRemove.Items)
|
||||
{
|
||||
rtbStatus.Text += Environment.NewLine + "Uninstalling " + app.ToString();
|
||||
|
||||
await Task.Run(() => RemoveApps(app));
|
||||
}
|
||||
|
||||
foreach (var str in removeAppsList)
|
||||
{
|
||||
successList += "-" + str + Environment.NewLine;
|
||||
}
|
||||
foreach (var str in removeAppsFailedList)
|
||||
{
|
||||
failedList += "-" + str + Environment.NewLine;
|
||||
}
|
||||
|
||||
// Summary removal process
|
||||
string message = string.Format("Summary:\n{0} app(s) has been selected for removal.\n{1} app(s) has been removed.",
|
||||
removeAppsList.Count + removeAppsFailedList.Count, removeAppsList.Count) + Environment.NewLine + Environment.NewLine;
|
||||
|
||||
if (removeAppsList.Count != 0)
|
||||
{
|
||||
message += "The folowing app(s) have been removed successfully:" + Environment.NewLine + successList + Environment.NewLine;
|
||||
}
|
||||
|
||||
if (removeAppsFailedList.Count != 0)
|
||||
{
|
||||
message += "The following app(s) could not be removed: " + Environment.NewLine + failedList;
|
||||
message += Environment.NewLine + "Note, however, this app won't allow you to remove a few of the most important built-in apps, like Microsoft Edge, .NET framework, UI.Xaml etc. " +
|
||||
"as these apps are needed for the Windows 11 Experience and for other programs. If you try, you’ll see an error message saying the removal failed.";
|
||||
}
|
||||
|
||||
menuRefresh.PerformClick();
|
||||
|
||||
btnUninstall.Enabled = true;
|
||||
rtbStatus.Text = message + Environment.NewLine;
|
||||
rtbStatus.Text += Environment.NewLine + listApps.Items.Count + " apps are left.\n";
|
||||
}
|
||||
}
|
||||
|
||||
private void btnBack_Click(object sender, EventArgs e)
|
||||
{
|
||||
var mainForm = Application.OpenForms.OfType<MainForm>().Single();
|
||||
mainForm.pnlForm.Controls.Clear();
|
||||
if (mainForm.INavPage != null) mainForm.pnlForm.Controls.Add(mainForm.INavPage);
|
||||
}
|
||||
|
||||
private void textSearch_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
listApps.Items.Clear();
|
||||
|
||||
foreach (string str in removeAppsList)
|
||||
{
|
||||
if (str.IndexOf(textSearch.Text, 0, StringComparison.CurrentCultureIgnoreCase) != -1)
|
||||
{
|
||||
listApps.Items.Add(str);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void textSearch_Click(object sender, EventArgs e)
|
||||
=> textSearch.Text = "";
|
||||
|
||||
private void menuAppsImport_Click(object sender, EventArgs e)
|
||||
{
|
||||
OpenFileDialog f = new OpenFileDialog();
|
||||
f.InitialDirectory = HelperTool.Utils.Data.DataRootDir;
|
||||
|
||||
if (f.ShowDialog() == DialogResult.OK)
|
||||
|
||||
{
|
||||
List<string> lines = new List<string>();
|
||||
using (StreamReader r = new StreamReader(f.OpenFile()))
|
||||
{
|
||||
listRemove.Items.Clear();
|
||||
|
||||
string line;
|
||||
while ((line = r.ReadLine()) != null)
|
||||
{
|
||||
listRemove.Items.Add(line);
|
||||
RefreshApps();
|
||||
string compare = listApps.Items.ToString();
|
||||
foreach (string item in listRemove.Items) if (item.Any(compare.Contains)) listApps.Items.Remove(item);
|
||||
}
|
||||
|
||||
RefreshApps();
|
||||
|
||||
MessageBox.Show("We've synced your import list with the apps in Recycle bin.\n" +
|
||||
"Please note, that some of these apps may not be installed on your system.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void menuAppsExport_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (listRemove.Items.Count == 0)
|
||||
{
|
||||
MessageBox.Show("No apps in Recycle bin found.");
|
||||
return;
|
||||
}
|
||||
|
||||
SaveFileDialog s = new SaveFileDialog();
|
||||
s.FileName = "my-bloatware-list";
|
||||
s.Filter = "Text File | *.txt";
|
||||
|
||||
if (s.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
StreamWriter writer = new StreamWriter(s.OpenFile());
|
||||
for (int i = 0; i < listRemove.Items.Count; i++)
|
||||
{
|
||||
writer.WriteLine(listRemove.Items[i].ToString());
|
||||
}
|
||||
|
||||
writer.Dispose();
|
||||
writer.Close();
|
||||
}
|
||||
}
|
||||
|
||||
private void btnHMenu_Click(object sender, EventArgs e)
|
||||
=> this.contextAppMenu.Show(Cursor.Position.X, Cursor.Position.Y);
|
||||
|
||||
private void lblAppsBinOptions_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
=> menuAppsImport.PerformClick();
|
||||
|
||||
private void menuAppsRemoveAll_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (MessageBox.Show("This will remove all pre-installed apps for the logged in user, except the Microsoft Store. Do you wish to continue?", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
|
||||
{
|
||||
using (PowerShell script = PowerShell.Create())
|
||||
{
|
||||
this.Enabled = false;
|
||||
script.AddScript("Get-appxprovisionedpackage –online | where-object {$_.packagename –notlike “*store*”} | Remove-AppxProvisionedPackage –online");
|
||||
script.AddScript("Get-AppxPackage | where-object {$_.name –notlike “*store*”} | Remove-AppxPackage");
|
||||
|
||||
try
|
||||
{
|
||||
script.Invoke();
|
||||
this.Enabled = true;
|
||||
RefreshApps();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{ MessageBox.Show(ex.Message); }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void menuAppsCommunity_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (MessageBox.Show("This will add all the annoying bloatware apps, " +
|
||||
"pre-installed on Windows 11 including some apps your PC manufacturer included to the removal list." +
|
||||
"\r\n\nMost of these apps are garbage, but if you find important stuff on the list just remove it " +
|
||||
"from the right box before hitting \"Uninstall\".", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
|
||||
{
|
||||
var apps = BloatwareList.GetList();
|
||||
listRemove.Visible = true;
|
||||
|
||||
foreach (string app in apps)
|
||||
{
|
||||
listRemove.Items.Add(app);
|
||||
}
|
||||
|
||||
InitializeApps();
|
||||
RefreshApps();
|
||||
}
|
||||
}
|
||||
|
||||
private void menuAppsHallOfShame_Click(object sender, EventArgs e)
|
||||
{
|
||||
var apps = BloatwareHallOfShame.GetList();
|
||||
listRemove.Visible = true;
|
||||
|
||||
foreach (string app in apps)
|
||||
{
|
||||
listRemove.Items.Add(app);
|
||||
}
|
||||
|
||||
InitializeApps();
|
||||
RefreshApps();
|
||||
}
|
||||
|
||||
private void btnAppOptions_Click(object sender, EventArgs e)
|
||||
=> this.contextAppMenuOptions.Show(Cursor.Position.X, Cursor.Position.Y);
|
||||
|
||||
private void menuRefresh_Click(object sender, EventArgs e)
|
||||
{
|
||||
listApps.Items.Clear();
|
||||
listRemove.Items.Clear();
|
||||
removeAppsList.Clear();
|
||||
|
||||
InitializeAppsSystem();
|
||||
InitializeApps();
|
||||
|
||||
picAppsPoster.Visible = false;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,129 +0,0 @@
|
||||
<?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="menuAppsExport.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="contextAppMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="contextAppMenuOptions.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>172, 17</value>
|
||||
</metadata>
|
||||
</root>
|
437
src/BloatyNosyAI/Views/BloatyPageView.Designer.cs
generated
437
src/BloatyNosyAI/Views/BloatyPageView.Designer.cs
generated
@ -1,437 +0,0 @@
|
||||
namespace Bloatynosy.Views
|
||||
{
|
||||
partial class BloatyPageView
|
||||
{
|
||||
/// <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 Komponenten-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();
|
||||
System.Windows.Forms.ToolStripMenuItem menuAppsExport;
|
||||
this.listRemove = new System.Windows.Forms.ListBox();
|
||||
this.rtbStatus = new System.Windows.Forms.RichTextBox();
|
||||
this.btnRestoreAll = new System.Windows.Forms.Button();
|
||||
this.btnRestore = new System.Windows.Forms.Button();
|
||||
this.btnMoveAll = new System.Windows.Forms.Button();
|
||||
this.btnMove = new System.Windows.Forms.Button();
|
||||
this.btnUninstall = new System.Windows.Forms.Button();
|
||||
this.btnBack = new System.Windows.Forms.Button();
|
||||
this.lblHeader = new System.Windows.Forms.Label();
|
||||
this.listApps = new System.Windows.Forms.ListBox();
|
||||
this.checkAppsSystem = new System.Windows.Forms.CheckBox();
|
||||
this.picAppsPoster = new System.Windows.Forms.PictureBox();
|
||||
this.lblBloatOpt1 = new System.Windows.Forms.LinkLabel();
|
||||
this.textSearch = new System.Windows.Forms.TextBox();
|
||||
this.btnMenuGripperBar = new System.Windows.Forms.Button();
|
||||
this.contextAppMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.menuAppsImport = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.menuAppsRemoveAll = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.lblInstalled = new System.Windows.Forms.Label();
|
||||
this.lblBin = new System.Windows.Forms.Label();
|
||||
this.lblBloatOpt2 = new System.Windows.Forms.LinkLabel();
|
||||
this.btnRefresh = new System.Windows.Forms.Button();
|
||||
menuAppsExport = new System.Windows.Forms.ToolStripMenuItem();
|
||||
((System.ComponentModel.ISupportInitialize)(this.picAppsPoster)).BeginInit();
|
||||
this.contextAppMenu.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// menuAppsExport
|
||||
//
|
||||
menuAppsExport.Name = "menuAppsExport";
|
||||
menuAppsExport.Size = new System.Drawing.Size(236, 26);
|
||||
menuAppsExport.Text = "Export bloatware in bin";
|
||||
menuAppsExport.Click += new System.EventHandler(this.menuAppsExport_Click);
|
||||
//
|
||||
// listRemove
|
||||
//
|
||||
this.listRemove.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.listRemove.BackColor = System.Drawing.Color.White;
|
||||
this.listRemove.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.listRemove.Font = new System.Drawing.Font("Segoe UI Variable Text Semiligh", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.listRemove.FormattingEnabled = true;
|
||||
this.listRemove.ItemHeight = 17;
|
||||
this.listRemove.Location = new System.Drawing.Point(823, 107);
|
||||
this.listRemove.Name = "listRemove";
|
||||
this.listRemove.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
|
||||
this.listRemove.Size = new System.Drawing.Size(270, 646);
|
||||
this.listRemove.Sorted = true;
|
||||
this.listRemove.TabIndex = 13;
|
||||
//
|
||||
// rtbStatus
|
||||
//
|
||||
this.rtbStatus.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.rtbStatus.BackColor = System.Drawing.Color.White;
|
||||
this.rtbStatus.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.rtbStatus.Font = new System.Drawing.Font("Segoe UI Variable Text", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.rtbStatus.ForeColor = System.Drawing.Color.Black;
|
||||
this.rtbStatus.HideSelection = false;
|
||||
this.rtbStatus.Location = new System.Drawing.Point(823, 107);
|
||||
this.rtbStatus.Name = "rtbStatus";
|
||||
this.rtbStatus.ReadOnly = true;
|
||||
this.rtbStatus.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical;
|
||||
this.rtbStatus.Size = new System.Drawing.Size(270, 656);
|
||||
this.rtbStatus.TabIndex = 139;
|
||||
this.rtbStatus.Text = "";
|
||||
this.rtbStatus.Visible = false;
|
||||
//
|
||||
// btnRestoreAll
|
||||
//
|
||||
this.btnRestoreAll.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnRestoreAll.AutoEllipsis = true;
|
||||
this.btnRestoreAll.Font = new System.Drawing.Font("Segoe UI Variable Text", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnRestoreAll.ForeColor = System.Drawing.Color.Black;
|
||||
this.btnRestoreAll.Location = new System.Drawing.Point(449, 493);
|
||||
this.btnRestoreAll.Name = "btnRestoreAll";
|
||||
this.btnRestoreAll.Size = new System.Drawing.Size(239, 23);
|
||||
this.btnRestoreAll.TabIndex = 34;
|
||||
this.btnRestoreAll.Text = "<< Restore all";
|
||||
this.btnRestoreAll.UseVisualStyleBackColor = true;
|
||||
this.btnRestoreAll.Click += new System.EventHandler(this.btnRestoreAll_Click);
|
||||
//
|
||||
// btnRestore
|
||||
//
|
||||
this.btnRestore.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnRestore.AutoEllipsis = true;
|
||||
this.btnRestore.Font = new System.Drawing.Font("Segoe UI Variable Text", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnRestore.ForeColor = System.Drawing.Color.Black;
|
||||
this.btnRestore.Location = new System.Drawing.Point(449, 464);
|
||||
this.btnRestore.Name = "btnRestore";
|
||||
this.btnRestore.Size = new System.Drawing.Size(239, 23);
|
||||
this.btnRestore.TabIndex = 32;
|
||||
this.btnRestore.Text = "< Restore";
|
||||
this.btnRestore.UseVisualStyleBackColor = true;
|
||||
this.btnRestore.Click += new System.EventHandler(this.btnRestore_Click);
|
||||
//
|
||||
// btnMoveAll
|
||||
//
|
||||
this.btnMoveAll.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnMoveAll.AutoEllipsis = true;
|
||||
this.btnMoveAll.Font = new System.Drawing.Font("Segoe UI Variable Text", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnMoveAll.ForeColor = System.Drawing.Color.Black;
|
||||
this.btnMoveAll.Location = new System.Drawing.Point(449, 406);
|
||||
this.btnMoveAll.Name = "btnMoveAll";
|
||||
this.btnMoveAll.Size = new System.Drawing.Size(239, 23);
|
||||
this.btnMoveAll.TabIndex = 35;
|
||||
this.btnMoveAll.Text = "Move all >>";
|
||||
this.btnMoveAll.UseVisualStyleBackColor = true;
|
||||
this.btnMoveAll.Click += new System.EventHandler(this.btnMoveAll_Click);
|
||||
//
|
||||
// btnMove
|
||||
//
|
||||
this.btnMove.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnMove.AutoEllipsis = true;
|
||||
this.btnMove.Font = new System.Drawing.Font("Segoe UI Variable Text", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnMove.ForeColor = System.Drawing.Color.Black;
|
||||
this.btnMove.Location = new System.Drawing.Point(449, 377);
|
||||
this.btnMove.Name = "btnMove";
|
||||
this.btnMove.Size = new System.Drawing.Size(239, 23);
|
||||
this.btnMove.TabIndex = 31;
|
||||
this.btnMove.Text = "Move >";
|
||||
this.btnMove.UseVisualStyleBackColor = true;
|
||||
this.btnMove.Click += new System.EventHandler(this.btnMove_Click);
|
||||
//
|
||||
// btnUninstall
|
||||
//
|
||||
this.btnUninstall.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnUninstall.BackColor = System.Drawing.Color.Orchid;
|
||||
this.btnUninstall.FlatAppearance.BorderSize = 0;
|
||||
this.btnUninstall.Font = new System.Drawing.Font("Segoe UI Variable Display", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnUninstall.ForeColor = System.Drawing.Color.White;
|
||||
this.btnUninstall.Location = new System.Drawing.Point(815, 34);
|
||||
this.btnUninstall.Name = "btnUninstall";
|
||||
this.btnUninstall.Size = new System.Drawing.Size(181, 35);
|
||||
this.btnUninstall.TabIndex = 41;
|
||||
this.btnUninstall.Text = "Empty bin";
|
||||
this.btnUninstall.UseVisualStyleBackColor = false;
|
||||
this.btnUninstall.Click += new System.EventHandler(this.btnUninstall_Click);
|
||||
//
|
||||
// btnBack
|
||||
//
|
||||
this.btnBack.FlatAppearance.BorderSize = 0;
|
||||
this.btnBack.FlatAppearance.MouseOverBackColor = System.Drawing.Color.WhiteSmoke;
|
||||
this.btnBack.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnBack.Font = new System.Drawing.Font("Segoe Fluent Icons", 9.75F, System.Drawing.FontStyle.Bold);
|
||||
this.btnBack.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.btnBack.Location = new System.Drawing.Point(3, 14);
|
||||
this.btnBack.Name = "btnBack";
|
||||
this.btnBack.Size = new System.Drawing.Size(42, 38);
|
||||
this.btnBack.TabIndex = 176;
|
||||
this.btnBack.Text = "...";
|
||||
this.btnBack.UseVisualStyleBackColor = true;
|
||||
this.btnBack.Click += new System.EventHandler(this.btnBack_Click);
|
||||
//
|
||||
// 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 Semibold", 18.25F, System.Drawing.FontStyle.Bold);
|
||||
this.lblHeader.ForeColor = System.Drawing.Color.Black;
|
||||
this.lblHeader.Location = new System.Drawing.Point(294, 31);
|
||||
this.lblHeader.Name = "lblHeader";
|
||||
this.lblHeader.Size = new System.Drawing.Size(515, 32);
|
||||
this.lblHeader.TabIndex = 177;
|
||||
this.lblHeader.Text = "BLOAT-E";
|
||||
this.lblHeader.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// listApps
|
||||
//
|
||||
this.listApps.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.listApps.BackColor = System.Drawing.Color.White;
|
||||
this.listApps.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.listApps.Font = new System.Drawing.Font("Segoe UI Variable Text Light", 9.75F);
|
||||
this.listApps.FormattingEnabled = true;
|
||||
this.listApps.ItemHeight = 17;
|
||||
this.listApps.Location = new System.Drawing.Point(44, 99);
|
||||
this.listApps.Name = "listApps";
|
||||
this.listApps.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
|
||||
this.listApps.Size = new System.Drawing.Size(270, 629);
|
||||
this.listApps.Sorted = true;
|
||||
this.listApps.TabIndex = 13;
|
||||
//
|
||||
// checkAppsSystem
|
||||
//
|
||||
this.checkAppsSystem.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.checkAppsSystem.AutoSize = true;
|
||||
this.checkAppsSystem.FlatAppearance.BorderSize = 0;
|
||||
this.checkAppsSystem.Font = new System.Drawing.Font("Segoe UI Variable Text", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.checkAppsSystem.ForeColor = System.Drawing.Color.Black;
|
||||
this.checkAppsSystem.Location = new System.Drawing.Point(44, 754);
|
||||
this.checkAppsSystem.Name = "checkAppsSystem";
|
||||
this.checkAppsSystem.Size = new System.Drawing.Size(135, 21);
|
||||
this.checkAppsSystem.TabIndex = 16;
|
||||
this.checkAppsSystem.Text = "Show system apps";
|
||||
this.checkAppsSystem.UseVisualStyleBackColor = true;
|
||||
this.checkAppsSystem.CheckedChanged += new System.EventHandler(this.checkAppsSystem_CheckedChanged);
|
||||
//
|
||||
// picAppsPoster
|
||||
//
|
||||
this.picAppsPoster.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.picAppsPoster.ErrorImage = null;
|
||||
this.picAppsPoster.InitialImage = null;
|
||||
this.picAppsPoster.Location = new System.Drawing.Point(320, 136);
|
||||
this.picAppsPoster.Name = "picAppsPoster";
|
||||
this.picAppsPoster.Size = new System.Drawing.Size(497, 235);
|
||||
this.picAppsPoster.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
|
||||
this.picAppsPoster.TabIndex = 161;
|
||||
this.picAppsPoster.TabStop = false;
|
||||
//
|
||||
// lblBloatOpt1
|
||||
//
|
||||
this.lblBloatOpt1.ActiveLinkColor = System.Drawing.Color.Violet;
|
||||
this.lblBloatOpt1.AutoEllipsis = true;
|
||||
this.lblBloatOpt1.AutoSize = true;
|
||||
this.lblBloatOpt1.Font = new System.Drawing.Font("Segoe UI Variable Text Semiligh", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblBloatOpt1.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
|
||||
this.lblBloatOpt1.LinkColor = System.Drawing.Color.MediumOrchid;
|
||||
this.lblBloatOpt1.Location = new System.Drawing.Point(339, 110);
|
||||
this.lblBloatOpt1.Name = "lblBloatOpt1";
|
||||
this.lblBloatOpt1.Size = new System.Drawing.Size(116, 17);
|
||||
this.lblBloatOpt1.TabIndex = 159;
|
||||
this.lblBloatOpt1.TabStop = true;
|
||||
this.lblBloatOpt1.Text = "Try these bloatware";
|
||||
this.lblBloatOpt1.VisitedLinkColor = System.Drawing.Color.MediumVioletRed;
|
||||
this.lblBloatOpt1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lblBloatOpt1_LinkClicked);
|
||||
//
|
||||
// textSearch
|
||||
//
|
||||
this.textSearch.Anchor = System.Windows.Forms.AnchorStyles.Top;
|
||||
this.textSearch.BackColor = System.Drawing.Color.WhiteSmoke;
|
||||
this.textSearch.Font = new System.Drawing.Font("Segoe UI Variable Display", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.textSearch.ForeColor = System.Drawing.Color.Gray;
|
||||
this.textSearch.Location = new System.Drawing.Point(485, 66);
|
||||
this.textSearch.Name = "textSearch";
|
||||
this.textSearch.Size = new System.Drawing.Size(149, 25);
|
||||
this.textSearch.TabIndex = 181;
|
||||
this.textSearch.Text = "Search";
|
||||
this.textSearch.Click += new System.EventHandler(this.textSearch_Click);
|
||||
this.textSearch.TextChanged += new System.EventHandler(this.textSearch_TextChanged);
|
||||
//
|
||||
// btnMenuGripperBar
|
||||
//
|
||||
this.btnMenuGripperBar.FlatAppearance.BorderSize = 0;
|
||||
this.btnMenuGripperBar.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Gainsboro;
|
||||
this.btnMenuGripperBar.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnMenuGripperBar.Font = new System.Drawing.Font("Segoe Fluent Icons", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnMenuGripperBar.ForeColor = System.Drawing.Color.Black;
|
||||
this.btnMenuGripperBar.Location = new System.Drawing.Point(35, 14);
|
||||
this.btnMenuGripperBar.Name = "btnMenuGripperBar";
|
||||
this.btnMenuGripperBar.Size = new System.Drawing.Size(42, 38);
|
||||
this.btnMenuGripperBar.TabIndex = 184;
|
||||
this.btnMenuGripperBar.Text = "...";
|
||||
this.btnMenuGripperBar.UseVisualStyleBackColor = true;
|
||||
this.btnMenuGripperBar.Click += new System.EventHandler(this.btnMenuGripperBar_Click);
|
||||
//
|
||||
// contextAppMenu
|
||||
//
|
||||
this.contextAppMenu.BackColor = System.Drawing.Color.WhiteSmoke;
|
||||
this.contextAppMenu.Font = new System.Drawing.Font("Segoe UI Variable Text Semiligh", 12F);
|
||||
this.contextAppMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.menuAppsImport,
|
||||
menuAppsExport,
|
||||
this.menuAppsRemoveAll});
|
||||
this.contextAppMenu.Name = "menuMain";
|
||||
this.contextAppMenu.RenderMode = System.Windows.Forms.ToolStripRenderMode.System;
|
||||
this.contextAppMenu.Size = new System.Drawing.Size(237, 104);
|
||||
this.contextAppMenu.Text = "Info";
|
||||
//
|
||||
// menuAppsImport
|
||||
//
|
||||
this.menuAppsImport.Name = "menuAppsImport";
|
||||
this.menuAppsImport.Size = new System.Drawing.Size(236, 26);
|
||||
this.menuAppsImport.Text = "Import bloatware list";
|
||||
this.menuAppsImport.Click += new System.EventHandler(this.menuAppsImport_Click);
|
||||
//
|
||||
// menuAppsRemoveAll
|
||||
//
|
||||
this.menuAppsRemoveAll.Name = "menuAppsRemoveAll";
|
||||
this.menuAppsRemoveAll.Size = new System.Drawing.Size(236, 26);
|
||||
this.menuAppsRemoveAll.Text = "Uninstall all apps";
|
||||
this.menuAppsRemoveAll.Click += new System.EventHandler(this.menuAppsRemoveAll_Click);
|
||||
//
|
||||
// lblInstalled
|
||||
//
|
||||
this.lblInstalled.AutoSize = true;
|
||||
this.lblInstalled.Font = new System.Drawing.Font("Segoe UI Variable Display", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblInstalled.ForeColor = System.Drawing.Color.Black;
|
||||
this.lblInstalled.Location = new System.Drawing.Point(41, 70);
|
||||
this.lblInstalled.Name = "lblInstalled";
|
||||
this.lblInstalled.Size = new System.Drawing.Size(56, 17);
|
||||
this.lblInstalled.TabIndex = 185;
|
||||
this.lblInstalled.Text = "Installed";
|
||||
//
|
||||
// lblBin
|
||||
//
|
||||
this.lblBin.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.lblBin.AutoSize = true;
|
||||
this.lblBin.Font = new System.Drawing.Font("Segoe UI Variable Display", 9.75F);
|
||||
this.lblBin.ForeColor = System.Drawing.Color.Black;
|
||||
this.lblBin.Location = new System.Drawing.Point(820, 79);
|
||||
this.lblBin.Name = "lblBin";
|
||||
this.lblBin.Size = new System.Drawing.Size(59, 17);
|
||||
this.lblBin.TabIndex = 186;
|
||||
this.lblBin.Text = "Trash bin";
|
||||
//
|
||||
// lblBloatOpt2
|
||||
//
|
||||
this.lblBloatOpt2.ActiveLinkColor = System.Drawing.Color.MediumVioletRed;
|
||||
this.lblBloatOpt2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.lblBloatOpt2.AutoEllipsis = true;
|
||||
this.lblBloatOpt2.Font = new System.Drawing.Font("Segoe UI Variable Text Light", 9.75F);
|
||||
this.lblBloatOpt2.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
|
||||
this.lblBloatOpt2.LinkColor = System.Drawing.Color.DimGray;
|
||||
this.lblBloatOpt2.Location = new System.Drawing.Point(467, 110);
|
||||
this.lblBloatOpt2.Name = "lblBloatOpt2";
|
||||
this.lblBloatOpt2.Size = new System.Drawing.Size(347, 23);
|
||||
this.lblBloatOpt2.TabIndex = 187;
|
||||
this.lblBloatOpt2.TabStop = true;
|
||||
this.lblBloatOpt2.Text = "Add most hated";
|
||||
this.lblBloatOpt2.VisitedLinkColor = System.Drawing.Color.MediumVioletRed;
|
||||
this.lblBloatOpt2.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lblBloatOpt2_LinkClicked);
|
||||
//
|
||||
// btnRefresh
|
||||
//
|
||||
this.btnRefresh.BackColor = System.Drawing.Color.GhostWhite;
|
||||
this.btnRefresh.FlatAppearance.BorderColor = System.Drawing.Color.White;
|
||||
this.btnRefresh.FlatAppearance.BorderSize = 0;
|
||||
this.btnRefresh.Font = new System.Drawing.Font("Segoe Fluent Icons", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnRefresh.ForeColor = System.Drawing.Color.Black;
|
||||
this.btnRefresh.Location = new System.Drawing.Point(75, 14);
|
||||
this.btnRefresh.Name = "btnRefresh";
|
||||
this.btnRefresh.Size = new System.Drawing.Size(42, 38);
|
||||
this.btnRefresh.TabIndex = 191;
|
||||
this.btnRefresh.Text = "...";
|
||||
this.btnRefresh.UseVisualStyleBackColor = false;
|
||||
this.btnRefresh.Click += new System.EventHandler(this.btnRefresh_Click);
|
||||
//
|
||||
// BloatyPageView
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
this.AutoScroll = true;
|
||||
this.BackColor = System.Drawing.Color.White;
|
||||
this.Controls.Add(this.btnRefresh);
|
||||
this.Controls.Add(this.lblBloatOpt2);
|
||||
this.Controls.Add(this.picAppsPoster);
|
||||
this.Controls.Add(this.lblBloatOpt1);
|
||||
this.Controls.Add(this.lblBin);
|
||||
this.Controls.Add(this.lblInstalled);
|
||||
this.Controls.Add(this.listApps);
|
||||
this.Controls.Add(this.checkAppsSystem);
|
||||
this.Controls.Add(this.btnMenuGripperBar);
|
||||
this.Controls.Add(this.textSearch);
|
||||
this.Controls.Add(this.lblHeader);
|
||||
this.Controls.Add(this.btnBack);
|
||||
this.Controls.Add(this.btnUninstall);
|
||||
this.Controls.Add(this.btnRestoreAll);
|
||||
this.Controls.Add(this.btnRestore);
|
||||
this.Controls.Add(this.btnMoveAll);
|
||||
this.Controls.Add(this.btnMove);
|
||||
this.Controls.Add(this.listRemove);
|
||||
this.Controls.Add(this.rtbStatus);
|
||||
this.Name = "BloatyPageView";
|
||||
this.Size = new System.Drawing.Size(1107, 805);
|
||||
((System.ComponentModel.ISupportInitialize)(this.picAppsPoster)).EndInit();
|
||||
this.contextAppMenu.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
private System.Windows.Forms.ListBox listRemove;
|
||||
private System.Windows.Forms.Button btnRestoreAll;
|
||||
private System.Windows.Forms.Button btnRestore;
|
||||
private System.Windows.Forms.Button btnMoveAll;
|
||||
private System.Windows.Forms.Button btnMove;
|
||||
private System.Windows.Forms.Button btnUninstall;
|
||||
public System.Windows.Forms.RichTextBox rtbStatus;
|
||||
private System.Windows.Forms.Button btnBack;
|
||||
private System.Windows.Forms.Label lblHeader;
|
||||
private System.Windows.Forms.ListBox listApps;
|
||||
private System.Windows.Forms.CheckBox checkAppsSystem;
|
||||
private System.Windows.Forms.TextBox textSearch;
|
||||
private System.Windows.Forms.LinkLabel lblBloatOpt1;
|
||||
private System.Windows.Forms.Button btnMenuGripperBar;
|
||||
private System.Windows.Forms.ContextMenuStrip contextAppMenu;
|
||||
private System.Windows.Forms.ToolStripMenuItem menuAppsImport;
|
||||
private System.Windows.Forms.ToolStripMenuItem menuAppsRemoveAll;
|
||||
private System.Windows.Forms.PictureBox picAppsPoster;
|
||||
private System.Windows.Forms.Label lblInstalled;
|
||||
private System.Windows.Forms.Label lblBin;
|
||||
private System.Windows.Forms.LinkLabel lblBloatOpt2;
|
||||
private System.Windows.Forms.Button btnRefresh;
|
||||
}
|
||||
}
|
@ -1,437 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Management.Automation;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Bloatynosy.Views
|
||||
{
|
||||
public partial class BloatyPageView : UserControl
|
||||
{
|
||||
private List<string> removeAppsList = new List<string>();
|
||||
private List<string> removeAppsFailedList = new List<string>();
|
||||
private List<string> removeAppsSystem = new List<string>();
|
||||
|
||||
private readonly PowerShell powerShell = PowerShell.Create();
|
||||
|
||||
public BloatyPageView()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
this.InitializeAppsSystem(); // Retrieve hidden systemapps from resource file
|
||||
this.InitializeApps(); // Yet just the normal....
|
||||
|
||||
SetStyle();
|
||||
}
|
||||
|
||||
// Some UI nicety
|
||||
private void SetStyle()
|
||||
{
|
||||
// Segoe MDL2 Assets
|
||||
btnMenuGripperBar.Text = "\uE76F";
|
||||
btnRefresh.Text = "\uE895";
|
||||
btnBack.Text = "\uE72B";
|
||||
// Some color styling
|
||||
BackColor =
|
||||
rtbStatus.BackColor =
|
||||
Color.FromArgb(245, 241, 249);
|
||||
|
||||
if (!HelperTool.Utils.IsInet()) picAppsPoster.Visible = false;
|
||||
else picAppsPoster.ImageLocation = "https://github.com/builtbybel/ThisIsWin11/blob/main/assets/pages/page-apps.png?raw=true";
|
||||
}
|
||||
|
||||
private void InitializeApps()
|
||||
{
|
||||
listApps.Items.Clear();
|
||||
powerShell.Commands.Clear();
|
||||
powerShell.AddCommand("get-appxpackage");
|
||||
powerShell.AddCommand("Select").AddParameter("property", "name");
|
||||
|
||||
foreach (PSObject result in powerShell.Invoke())
|
||||
{
|
||||
string current = result.ToString();
|
||||
// Show ONLY NON-SYSTEM apps by comparing found apps with systemapps.txt
|
||||
if (removeAppsSystem != null) if ((removeAppsSystem.Any(current.Contains)) & !checkAppsSystem.Checked) continue;
|
||||
|
||||
if (listApps.Items.Contains(Regex.Replace(current, "(@{Name=)|(})", ""))) continue;
|
||||
listApps.Items.Add(Regex.Replace(current, "(@{Name=)|(})", ""));
|
||||
removeAppsList.Add(Regex.Replace(current, "(@{Name=)|(})", ""));
|
||||
}
|
||||
|
||||
// Compare left and rights apps list and remove differences
|
||||
string compare = listApps.Items.ToString();
|
||||
foreach (string item in listRemove.Items) if (item.Any(compare.Contains)) listApps.Items.Remove(item);
|
||||
|
||||
RefreshApps();
|
||||
}
|
||||
|
||||
private void InitializeAppsSystem()
|
||||
{
|
||||
StreamReader Database = null;
|
||||
|
||||
try
|
||||
{
|
||||
HelperTool.Utils.CreateDataDir();
|
||||
Database = File.OpenText(HelperTool.Utils.Data.DataRootDir + "systemApps.txt");
|
||||
}
|
||||
catch (FileNotFoundException) // Create file if it doesnt exisits
|
||||
{
|
||||
StreamWriter sw = File.CreateText(HelperTool.Utils.Data.DataRootDir + "systemApps.txt");
|
||||
sw.Write(Bloatynosy.Properties.Resources.systemApps); // Populate it with built in preset
|
||||
sw.Close();
|
||||
|
||||
Database = File.OpenText(HelperTool.Utils.Data.DataRootDir + "systemApps.txt");
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (Database.Peek() > 0) // Exists and not empty
|
||||
{
|
||||
string buff;
|
||||
while ((buff = Database.ReadLine()) != null)
|
||||
{
|
||||
removeAppsSystem.Add(buff);
|
||||
}
|
||||
};
|
||||
Database.Close();
|
||||
}
|
||||
}
|
||||
|
||||
private void RemoveApps(string app)
|
||||
{
|
||||
bool error = false;
|
||||
|
||||
using (PowerShell script = PowerShell.Create())
|
||||
{
|
||||
script.AddScript("Get-AppxPackage " + app + " | Remove-AppxPackage");
|
||||
|
||||
script.Invoke();
|
||||
error = script.HadErrors;
|
||||
}
|
||||
|
||||
if (error)
|
||||
{
|
||||
removeAppsFailedList.Add(app);
|
||||
}
|
||||
else
|
||||
{
|
||||
removeAppsList.Add(app);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
private void RefreshApps()
|
||||
{
|
||||
int installed = listApps.Items.Count;
|
||||
int remove = listRemove.Items.Count;
|
||||
lblInstalled.Text = installed.ToString() + " apps installed";
|
||||
lblBin.Text = "Trash bin" + " (" + remove.ToString() + ")";
|
||||
|
||||
if (listRemove.Items.Count == 0)
|
||||
{
|
||||
rtbStatus.Visible = true;
|
||||
listRemove.Visible = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
rtbStatus.Visible = false;
|
||||
listRemove.Visible = true;
|
||||
}
|
||||
|
||||
if (installed == 0)
|
||||
btnMoveAll.Enabled =
|
||||
btnMove.Enabled =
|
||||
false;
|
||||
else
|
||||
btnMoveAll.Enabled =
|
||||
btnMove.Enabled =
|
||||
true;
|
||||
|
||||
if (remove == 0)
|
||||
btnRestoreAll.Enabled =
|
||||
btnRestore.Enabled =
|
||||
false;
|
||||
else
|
||||
btnRestoreAll.Enabled =
|
||||
btnRestore.Enabled =
|
||||
true;
|
||||
}
|
||||
|
||||
private void btnRestoreAll_Click(object sender, EventArgs e)
|
||||
{
|
||||
foreach (var item in listRemove.Items)
|
||||
{
|
||||
listApps.Items.Add(item);
|
||||
}
|
||||
listRemove.Items.Clear();
|
||||
RefreshApps();
|
||||
}
|
||||
|
||||
private void btnRestore_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (listRemove.Items.Count != 0)
|
||||
{
|
||||
if (listRemove.SelectedItem == null) listRemove.SelectedIndex = 0;
|
||||
while (listRemove.SelectedItem != null)
|
||||
{
|
||||
listApps.Items.Add(listRemove.SelectedItem);
|
||||
listRemove.Items.Remove(listRemove.SelectedItem);
|
||||
}
|
||||
RefreshApps();
|
||||
}
|
||||
}
|
||||
|
||||
private void btnMoveAll_Click(object sender, EventArgs e)
|
||||
{
|
||||
foreach (var item in listApps.Items)
|
||||
{
|
||||
listRemove.Items.Add(item);
|
||||
}
|
||||
listApps.Items.Clear();
|
||||
RefreshApps();
|
||||
}
|
||||
|
||||
private void btnMove_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (listApps.Items.Count != 0)
|
||||
{
|
||||
if (listApps.SelectedItem == null) listApps.SelectedIndex = 0;
|
||||
while (listApps.SelectedItem != null)
|
||||
{
|
||||
listRemove.Items.Add(listApps.SelectedItem);
|
||||
listApps.Items.Remove(listApps.SelectedItem);
|
||||
}
|
||||
RefreshApps();
|
||||
}
|
||||
}
|
||||
|
||||
private void checkAppsSystem_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (checkAppsSystem.Checked)
|
||||
{
|
||||
MessageBox.Show("Be picky about which System applications to uninstall." +
|
||||
"\n\nYou can uninstall most of the built-in apps, even ones that don't normally offer an \"Uninstall\" option." +
|
||||
"\n\nNote, however, this app won't allow you to remove a few of the most important built-in apps, like Microsoft Edge, .NET framework, UI.Xaml etc. " +
|
||||
"as these apps are needed for the Windows 11 \"Experience\" and for other programs. If you try, you’ll see an error message saying the removal failed.");
|
||||
|
||||
removeAppsList.Clear();
|
||||
InitializeAppsSystem();
|
||||
InitializeApps();
|
||||
}
|
||||
else
|
||||
{
|
||||
removeAppsList.Clear(); InitializeApps();
|
||||
}
|
||||
}
|
||||
|
||||
private async void btnUninstall_Click(object sender, EventArgs e)
|
||||
{
|
||||
string selectedApps = string.Empty;
|
||||
string successList = string.Empty;
|
||||
string failedList = string.Empty;
|
||||
|
||||
foreach (string app in listRemove.Items)
|
||||
{
|
||||
selectedApps += app + Environment.NewLine;
|
||||
}
|
||||
if (MessageBox.Show("Do you want to permanently delete all apps in the bin? ", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||
{
|
||||
removeAppsList.Clear();
|
||||
removeAppsFailedList.Clear();
|
||||
rtbStatus.Visible = true;
|
||||
rtbStatus.Clear();
|
||||
listRemove.Visible = false;
|
||||
btnUninstall.Enabled = false;
|
||||
|
||||
foreach (string app in listRemove.Items)
|
||||
{
|
||||
rtbStatus.Text += Environment.NewLine + "Uninstalling " + app.ToString();
|
||||
|
||||
await Task.Run(() => RemoveApps(app));
|
||||
}
|
||||
|
||||
foreach (var str in removeAppsList)
|
||||
{
|
||||
successList += "-" + str + Environment.NewLine;
|
||||
}
|
||||
foreach (var str in removeAppsFailedList)
|
||||
{
|
||||
failedList += "-" + str + Environment.NewLine;
|
||||
}
|
||||
|
||||
// Summary removal process
|
||||
string message = string.Format("Summary:\n{0} app(s) has been selected for removal.\n{1} app(s) has been removed.",
|
||||
removeAppsList.Count + removeAppsFailedList.Count, removeAppsList.Count) + Environment.NewLine + Environment.NewLine;
|
||||
|
||||
if (removeAppsList.Count != 0)
|
||||
{
|
||||
message += "The folowing app(s) have been removed successfully:" + Environment.NewLine + successList + Environment.NewLine;
|
||||
}
|
||||
|
||||
if (removeAppsFailedList.Count != 0)
|
||||
{
|
||||
message += "The following app(s) could not be removed: " + Environment.NewLine + failedList;
|
||||
message += Environment.NewLine + "Note, however, this app won't allow you to remove a few of the most important built-in apps, like Microsoft Edge, .NET framework, UI.Xaml etc. " +
|
||||
"as these apps are needed for the Windows 11 Experience and for other programs. If you try, you’ll see an error message saying the removal failed.";
|
||||
}
|
||||
|
||||
btnRefresh.PerformClick();
|
||||
|
||||
btnUninstall.Enabled = true;
|
||||
rtbStatus.Text = message + Environment.NewLine;
|
||||
rtbStatus.Text += Environment.NewLine + listApps.Items.Count + " apps are left.\n";
|
||||
}
|
||||
}
|
||||
|
||||
private void lblBloatOpt1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
{
|
||||
if (MessageBox.Show("This will add all the annoying bloatware apps, " +
|
||||
"pre-installed on Windows 11 including some apps your PC manufacturer included to the removal list." +
|
||||
"\r\n\nMost of these apps are garbage, but if you find important stuff on the list just remove it " +
|
||||
"from the right box before hitting \"Uninstall\".", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
|
||||
{
|
||||
var apps = BloatwareList.GetList();
|
||||
listRemove.Visible = true;
|
||||
|
||||
foreach (string app in apps)
|
||||
{
|
||||
listRemove.Items.Add(app);
|
||||
}
|
||||
|
||||
InitializeApps();
|
||||
RefreshApps();
|
||||
lblBloatOpt1.Enabled = false;
|
||||
}
|
||||
}
|
||||
|
||||
private void lblBloatOpt2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
{
|
||||
var apps = BloatwareHallOfShame.GetList();
|
||||
listRemove.Visible = true;
|
||||
|
||||
foreach (string app in apps)
|
||||
{
|
||||
listRemove.Items.Add(app);
|
||||
}
|
||||
|
||||
InitializeApps();
|
||||
RefreshApps();
|
||||
lblBloatOpt2.Enabled = false;
|
||||
}
|
||||
|
||||
private void textSearch_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
listApps.Items.Clear();
|
||||
|
||||
foreach (string str in removeAppsList)
|
||||
{
|
||||
if (str.IndexOf(textSearch.Text, 0, StringComparison.CurrentCultureIgnoreCase) != -1)
|
||||
{
|
||||
listApps.Items.Add(str);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void textSearch_Click(object sender, EventArgs e)
|
||||
=> textSearch.Text = "";
|
||||
|
||||
private void menuAppsImport_Click(object sender, EventArgs e)
|
||||
{
|
||||
OpenFileDialog f = new OpenFileDialog();
|
||||
f.InitialDirectory = HelperTool.Utils.Data.DataRootDir;
|
||||
|
||||
if (f.ShowDialog() == DialogResult.OK)
|
||||
|
||||
{
|
||||
List<string> lines = new List<string>();
|
||||
using (StreamReader r = new StreamReader(f.OpenFile()))
|
||||
{
|
||||
listRemove.Items.Clear();
|
||||
|
||||
string line;
|
||||
while ((line = r.ReadLine()) != null)
|
||||
{
|
||||
listRemove.Items.Add(line);
|
||||
RefreshApps();
|
||||
string compare = listApps.Items.ToString();
|
||||
foreach (string item in listRemove.Items) if (item.Any(compare.Contains)) listApps.Items.Remove(item);
|
||||
}
|
||||
|
||||
RefreshApps();
|
||||
|
||||
MessageBox.Show("We've synced your import list with the apps in Trash bin.\n" +
|
||||
"Please note, that some of these apps may not be installed on your system.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void menuAppsExport_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (listRemove.Items.Count == 0)
|
||||
{
|
||||
MessageBox.Show("No apps in Trash bin found.");
|
||||
return;
|
||||
}
|
||||
|
||||
SaveFileDialog s = new SaveFileDialog();
|
||||
s.FileName = "my-bloatware-list";
|
||||
s.Filter = "Text File | *.txt";
|
||||
|
||||
if (s.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
StreamWriter writer = new StreamWriter(s.OpenFile());
|
||||
for (int i = 0; i < listRemove.Items.Count; i++)
|
||||
{
|
||||
writer.WriteLine(listRemove.Items[i].ToString());
|
||||
}
|
||||
|
||||
writer.Dispose();
|
||||
writer.Close();
|
||||
}
|
||||
}
|
||||
|
||||
private void menuAppsRemoveAll_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (MessageBox.Show("This will remove all pre-installed apps for the logged in user, except the Microsoft Store. Do you wish to continue?", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
|
||||
{
|
||||
using (PowerShell script = PowerShell.Create())
|
||||
{
|
||||
this.Enabled = false;
|
||||
script.AddScript("Get-appxprovisionedpackage –online | where-object {$_.packagename –notlike “*store*”} | Remove-AppxProvisionedPackage –online");
|
||||
script.AddScript("Get-AppxPackage | where-object {$_.name –notlike “*store*”} | Remove-AppxPackage");
|
||||
|
||||
try
|
||||
{
|
||||
script.Invoke();
|
||||
this.Enabled = true;
|
||||
RefreshApps();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{ MessageBox.Show(ex.Message); }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void btnRefresh_Click(object sender, EventArgs e)
|
||||
{
|
||||
listApps.Items.Clear();
|
||||
listRemove.Items.Clear();
|
||||
removeAppsList.Clear();
|
||||
lblBloatOpt1.Enabled =
|
||||
lblBloatOpt2.Enabled = true;
|
||||
|
||||
InitializeAppsSystem();
|
||||
InitializeApps();
|
||||
}
|
||||
|
||||
private void btnBack_Click(object sender, EventArgs e)
|
||||
=> ViewHelper.SwitchView.SetMainFormAsView();
|
||||
|
||||
private void btnMenuGripperBar_Click(object sender, EventArgs e)
|
||||
=> this.contextAppMenu.Show(Cursor.Position.X, Cursor.Position.Y);
|
||||
}
|
||||
}
|
@ -1,126 +0,0 @@
|
||||
<?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="menuAppsExport.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="contextAppMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
</root>
|
189
src/BloatyNosyAI/Views/IModsPageView.Designer.cs
generated
189
src/BloatyNosyAI/Views/IModsPageView.Designer.cs
generated
@ -1,189 +0,0 @@
|
||||
namespace BloatyNosy
|
||||
{
|
||||
partial class IModsPageView
|
||||
{
|
||||
/// <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 Komponenten-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.btnBack = new System.Windows.Forms.Button();
|
||||
this.lnkNoModsSig = new System.Windows.Forms.LinkLabel();
|
||||
this.lblHeader = new System.Windows.Forms.Label();
|
||||
this.lvMods = new System.Windows.Forms.ListView();
|
||||
this.btnInstall = new System.Windows.Forms.Button();
|
||||
this.progress = new System.Windows.Forms.ProgressBar();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.lnkGetModsOnline = new System.Windows.Forms.LinkLabel();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// btnBack
|
||||
//
|
||||
this.btnBack.FlatAppearance.BorderSize = 0;
|
||||
this.btnBack.FlatAppearance.MouseOverBackColor = System.Drawing.Color.WhiteSmoke;
|
||||
this.btnBack.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnBack.Font = new System.Drawing.Font("Segoe Fluent Icons", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnBack.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.btnBack.Location = new System.Drawing.Point(0, 0);
|
||||
this.btnBack.Name = "btnBack";
|
||||
this.btnBack.Size = new System.Drawing.Size(42, 38);
|
||||
this.btnBack.TabIndex = 180;
|
||||
this.btnBack.Text = "...";
|
||||
this.btnBack.UseVisualStyleBackColor = true;
|
||||
this.btnBack.Click += new System.EventHandler(this.btnBack_Click);
|
||||
//
|
||||
// lnkNoModsSig
|
||||
//
|
||||
this.lnkNoModsSig.ActiveLinkColor = System.Drawing.Color.DeepPink;
|
||||
this.lnkNoModsSig.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.lnkNoModsSig.AutoSize = true;
|
||||
this.lnkNoModsSig.Font = new System.Drawing.Font("Segoe UI Variable Text", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lnkNoModsSig.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
|
||||
this.lnkNoModsSig.LinkColor = System.Drawing.Color.DeepPink;
|
||||
this.lnkNoModsSig.Location = new System.Drawing.Point(119, 459);
|
||||
this.lnkNoModsSig.Name = "lnkNoModsSig";
|
||||
this.lnkNoModsSig.Size = new System.Drawing.Size(229, 17);
|
||||
this.lnkNoModsSig.TabIndex = 201;
|
||||
this.lnkNoModsSig.TabStop = true;
|
||||
this.lnkNoModsSig.Text = "Install and update Mods signature file";
|
||||
this.lnkNoModsSig.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lnkInstallMods_LinkClicked);
|
||||
//
|
||||
// lblHeader
|
||||
//
|
||||
this.lblHeader.AutoEllipsis = true;
|
||||
this.lblHeader.Font = new System.Drawing.Font("Segoe UI Variable Text Semibold", 14.25F, System.Drawing.FontStyle.Bold, 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(87, 4);
|
||||
this.lblHeader.Name = "lblHeader";
|
||||
this.lblHeader.Size = new System.Drawing.Size(251, 26);
|
||||
this.lblHeader.TabIndex = 205;
|
||||
this.lblHeader.Text = "WinModder Marketplace";
|
||||
//
|
||||
// lvMods
|
||||
//
|
||||
this.lvMods.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.lvMods.BackColor = System.Drawing.SystemColors.Control;
|
||||
this.lvMods.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.lvMods.CheckBoxes = true;
|
||||
this.lvMods.Font = new System.Drawing.Font("Segoe UI Variable Text Semiligh", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lvMods.FullRowSelect = true;
|
||||
this.lvMods.HideSelection = false;
|
||||
this.lvMods.Location = new System.Drawing.Point(92, 85);
|
||||
this.lvMods.Name = "lvMods";
|
||||
this.lvMods.OwnerDraw = true;
|
||||
this.lvMods.Size = new System.Drawing.Size(802, 326);
|
||||
this.lvMods.TabIndex = 206;
|
||||
this.lvMods.UseCompatibleStateImageBehavior = false;
|
||||
this.lvMods.View = System.Windows.Forms.View.Details;
|
||||
this.lvMods.DrawColumnHeader += new System.Windows.Forms.DrawListViewColumnHeaderEventHandler(this.listView_DrawColumnHeader);
|
||||
this.lvMods.DrawItem += new System.Windows.Forms.DrawListViewItemEventHandler(this.listView_DrawItem);
|
||||
//
|
||||
// btnInstall
|
||||
//
|
||||
this.btnInstall.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnInstall.BackColor = System.Drawing.Color.MediumVioletRed;
|
||||
this.btnInstall.Enabled = false;
|
||||
this.btnInstall.FlatAppearance.BorderColor = System.Drawing.Color.Orchid;
|
||||
this.btnInstall.FlatAppearance.BorderSize = 0;
|
||||
this.btnInstall.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnInstall.Font = new System.Drawing.Font("Segoe UI Variable Text Semiligh", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnInstall.ForeColor = System.Drawing.Color.White;
|
||||
this.btnInstall.Location = new System.Drawing.Point(704, 38);
|
||||
this.btnInstall.Name = "btnInstall";
|
||||
this.btnInstall.Size = new System.Drawing.Size(181, 30);
|
||||
this.btnInstall.TabIndex = 207;
|
||||
this.btnInstall.Text = "Download and install Mods";
|
||||
this.btnInstall.UseVisualStyleBackColor = false;
|
||||
this.btnInstall.Click += new System.EventHandler(this.btnInstall_Click);
|
||||
//
|
||||
// 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(92, 74);
|
||||
this.progress.Name = "progress";
|
||||
this.progress.Size = new System.Drawing.Size(802, 5);
|
||||
this.progress.TabIndex = 208;
|
||||
this.progress.Visible = false;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Font = new System.Drawing.Font("Segoe UI Variable Text Semibold", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.label1.Location = new System.Drawing.Point(110, 426);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(90, 17);
|
||||
this.label1.TabIndex = 209;
|
||||
this.label1.Text = "More options";
|
||||
//
|
||||
// lnkGetModsOnline
|
||||
//
|
||||
this.lnkGetModsOnline.ActiveLinkColor = System.Drawing.Color.DeepPink;
|
||||
this.lnkGetModsOnline.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.lnkGetModsOnline.AutoSize = true;
|
||||
this.lnkGetModsOnline.Font = new System.Drawing.Font("Segoe UI Variable Text", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lnkGetModsOnline.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
|
||||
this.lnkGetModsOnline.LinkColor = System.Drawing.Color.DeepPink;
|
||||
this.lnkGetModsOnline.Location = new System.Drawing.Point(119, 490);
|
||||
this.lnkGetModsOnline.Name = "lnkGetModsOnline";
|
||||
this.lnkGetModsOnline.Size = new System.Drawing.Size(105, 17);
|
||||
this.lnkGetModsOnline.TabIndex = 210;
|
||||
this.lnkGetModsOnline.TabStop = true;
|
||||
this.lnkGetModsOnline.Text = "Get Mods online";
|
||||
this.lnkGetModsOnline.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lnkGetModsOnline_LinkClicked);
|
||||
//
|
||||
// IModsPageView
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
this.AutoScroll = true;
|
||||
this.Controls.Add(this.lnkGetModsOnline);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Controls.Add(this.progress);
|
||||
this.Controls.Add(this.btnInstall);
|
||||
this.Controls.Add(this.lvMods);
|
||||
this.Controls.Add(this.lblHeader);
|
||||
this.Controls.Add(this.lnkNoModsSig);
|
||||
this.Controls.Add(this.btnBack);
|
||||
this.Name = "IModsPageView";
|
||||
this.Size = new System.Drawing.Size(972, 556);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
private System.Windows.Forms.Button btnBack;
|
||||
private System.Windows.Forms.LinkLabel lnkNoModsSig;
|
||||
private System.Windows.Forms.Label lblHeader;
|
||||
private System.Windows.Forms.ListView lvMods;
|
||||
private System.Windows.Forms.Button btnInstall;
|
||||
private System.Windows.Forms.ProgressBar progress;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.LinkLabel lnkGetModsOnline;
|
||||
}
|
||||
}
|
@ -1,209 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace BloatyNosy
|
||||
{
|
||||
public partial class IModsPageView : UserControl
|
||||
{
|
||||
private ModsPageView modsForm = null;
|
||||
|
||||
public IModsPageView(Control ctr)
|
||||
{
|
||||
modsForm = ctr as ModsPageView;
|
||||
|
||||
InitializeComponent();
|
||||
|
||||
InitializeModsSignature();
|
||||
|
||||
SetStyle();
|
||||
}
|
||||
|
||||
private void SetStyle()
|
||||
{
|
||||
lvMods.BackColor = Color.FromArgb(245, 241, 249);
|
||||
btnBack.Text = "\uE72B";
|
||||
}
|
||||
|
||||
private void InitializeModsSignature()
|
||||
{
|
||||
// Add required columns
|
||||
lvMods.Columns.Add("Name");
|
||||
lvMods.Columns.Add("Description");
|
||||
lvMods.Columns.Add("Developer");
|
||||
lvMods.Columns.Add("Link");
|
||||
|
||||
try
|
||||
{
|
||||
XDocument doc = XDocument.Load(AppDomain.CurrentDomain.BaseDirectory + "modsApp2.xml");
|
||||
|
||||
foreach (var dm in doc.Descendants("Mod"))
|
||||
{
|
||||
ListViewItem item = new ListViewItem(new string[]
|
||||
{
|
||||
dm.Element("id").Value,
|
||||
dm.Element("description").Value,
|
||||
dm.Element("dev").Value,
|
||||
dm.Element("uri").Value,
|
||||
});
|
||||
|
||||
lvMods.Items.Add(item);
|
||||
|
||||
lvMods.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
|
||||
lvMods.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
|
||||
}
|
||||
|
||||
isFeatureInstalled();
|
||||
btnInstall.Enabled = (lvMods.Items.Count > 0);
|
||||
}
|
||||
catch
|
||||
{
|
||||
MessageBox.Show("Mods signature file not found.\nPlease re-download and install the signatures.");
|
||||
lvMods.Visible = false;
|
||||
lnkNoModsSig.Visible = true;
|
||||
}
|
||||
}
|
||||
|
||||
public void isFeatureInstalled()
|
||||
{
|
||||
foreach (ListViewItem item in lvMods.Items)
|
||||
{
|
||||
var feature = item.SubItems[3].Text;
|
||||
if (File.Exists(HelperTool.Utils.Data.DataRootDir + feature.Split('/').Last())
|
||||
|| File.Exists(HelperTool.Utils.Data.ModsRootDir + feature.Split('/').Last())
|
||||
|| File.Exists(AppDomain.CurrentDomain.BaseDirectory + feature.Split('/').Last()))
|
||||
item.ForeColor = Color.Gray;
|
||||
else
|
||||
{
|
||||
item.ForeColor = Color.Black;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void btnBack_Click(object sender, EventArgs e)
|
||||
=> modsForm.SetView(new ModsPageView());
|
||||
|
||||
private async void lnkInstallMods_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
HelperTool.Utils.CreateModsDir();
|
||||
using (WebClient client = new WebClient())
|
||||
{
|
||||
progress.Visible = true;
|
||||
progress.Value = 0;
|
||||
client.Credentials = CredentialCache.DefaultNetworkCredentials;
|
||||
client.DownloadProgressChanged += Wc_DownloadProgressChanged;
|
||||
Uri uri = new Uri("https://raw.githubusercontent.com/builtbybel/BloatyNosy/main/mods/modsApp2.xml");
|
||||
string filename = System.IO.Path.GetFileName(uri.LocalPath);
|
||||
|
||||
await client.DownloadFileTaskAsync(uri, AppDomain.CurrentDomain.BaseDirectory + filename);
|
||||
|
||||
progress.Visible = false;
|
||||
|
||||
// Update IMods page
|
||||
btnBack.PerformClick();
|
||||
modsForm.lnkExploreMods_LinkClicked(sender, e);
|
||||
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{ MessageBox.Show(ex.Message); }
|
||||
}
|
||||
|
||||
private async void btnInstall_Click(object sender, EventArgs e)
|
||||
{
|
||||
bool bNeedRestart = false;
|
||||
|
||||
if (lvMods.CheckedItems.Count == 0)
|
||||
{
|
||||
MessageBox.Show("No feature selected.", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
return;
|
||||
}
|
||||
|
||||
StringBuilder builder = new StringBuilder();
|
||||
|
||||
foreach (ListViewItem eachItem in lvMods.CheckedItems)
|
||||
{
|
||||
List<string> list = new List<string>(eachItem.SubItems[3].Text.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries));
|
||||
|
||||
foreach (string url in list)
|
||||
{
|
||||
progress.Visible = true;
|
||||
using (WebClient client = new WebClient())
|
||||
{
|
||||
progress.Value = 0;
|
||||
client.Credentials = CredentialCache.DefaultNetworkCredentials;
|
||||
client.DownloadProgressChanged += Wc_DownloadProgressChanged;
|
||||
Uri uri = new Uri(url);
|
||||
string filename = System.IO.Path.GetFileName(uri.LocalPath);
|
||||
string fileExt = System.IO.Path.GetExtension(eachItem.SubItems[3].Text);
|
||||
|
||||
try
|
||||
{
|
||||
if (fileExt == ".ps1" || fileExt == ".ini")
|
||||
await client.DownloadFileTaskAsync(uri, HelperTool.Utils.Data.ModsRootDir + filename);
|
||||
else
|
||||
{
|
||||
HelperTool.Utils.CreateDataDir(); // Create appData folder
|
||||
await client.DownloadFileTaskAsync(uri, HelperTool.Utils.Data.DataRootDir + filename
|
||||
);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, lvMods.FocusedItem.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
builder.Append("\n- " + eachItem.SubItems[0].Text);
|
||||
|
||||
// Restart required by filetypes
|
||||
if (eachItem.SubItems[3].Text.Contains(".xml"))
|
||||
// || eachItem.SubItems[3].Text.Contains(".xml"))
|
||||
{
|
||||
builder.Append(" (Restart required.)");
|
||||
bNeedRestart = true;
|
||||
}
|
||||
}
|
||||
|
||||
MessageBox.Show("Mods successfully installed:\n" + builder.ToString(), "", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
isFeatureInstalled();
|
||||
|
||||
if (bNeedRestart)
|
||||
{
|
||||
MessageBox.Show("We will restart the app to complete the installation of some features.");
|
||||
Application.Restart();
|
||||
Environment.Exit(0);
|
||||
}
|
||||
|
||||
progress.Visible = false;
|
||||
}
|
||||
|
||||
private void Wc_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
|
||||
{
|
||||
progress.Value = e.ProgressPercentage;
|
||||
progress.Update();
|
||||
// this.Invoke((MethodInvoker)(() => lblStatus.Text = $"{e.ProgressPercentage}%"));
|
||||
}
|
||||
|
||||
private void listView_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e)
|
||||
{
|
||||
e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(245, 241, 249)), e.Bounds);
|
||||
e.DrawText();
|
||||
}
|
||||
|
||||
private void listView_DrawItem(object sender, DrawListViewItemEventArgs e)
|
||||
=> e.DrawDefault = true;
|
||||
|
||||
private void lnkGetModsOnline_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
=> HelperTool.Utils.LaunchUri("https://www.builtbybel.com/blog/about-debloos");
|
||||
}
|
||||
}
|
@ -1,120 +0,0 @@
|
||||
<?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>
|
||||
</root>
|
400
src/BloatyNosyAI/Views/ModsPageView.Designer.cs
generated
400
src/BloatyNosyAI/Views/ModsPageView.Designer.cs
generated
@ -1,400 +0,0 @@
|
||||
namespace BloatyNosy
|
||||
{
|
||||
partial class ModsPageView
|
||||
{
|
||||
/// <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 Komponenten-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();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ModsPageView));
|
||||
this.contextAppMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.menuModEdit = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.menuModOpenDir = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.pnlForm = new System.Windows.Forms.Panel();
|
||||
this.pnlMain = new System.Windows.Forms.Panel();
|
||||
this.lblStatus = new System.Windows.Forms.Label();
|
||||
this.lblHeader = new System.Windows.Forms.Label();
|
||||
this.btnHMenu = new System.Windows.Forms.Button();
|
||||
this.btnBack = new System.Windows.Forms.Button();
|
||||
this.lnkExploreMods = new System.Windows.Forms.LinkLabel();
|
||||
this.tabD = new System.Windows.Forms.TabControl();
|
||||
this.tabDescription = new System.Windows.Forms.TabPage();
|
||||
this.rtbDesc = new System.Windows.Forms.RichTextBox();
|
||||
this.tabCode = new System.Windows.Forms.TabPage();
|
||||
this.rtbCode = new System.Windows.Forms.RichTextBox();
|
||||
this.textSearch = new System.Windows.Forms.TextBox();
|
||||
this.lnkCode = new System.Windows.Forms.LinkLabel();
|
||||
this.lnkDesc = new System.Windows.Forms.LinkLabel();
|
||||
this.progress = new System.Windows.Forms.ProgressBar();
|
||||
this.btnApply = new System.Windows.Forms.Button();
|
||||
this.listMods = new System.Windows.Forms.CheckedListBox();
|
||||
this.btnCancel = new System.Windows.Forms.Button();
|
||||
this.contextAppMenu.SuspendLayout();
|
||||
this.pnlForm.SuspendLayout();
|
||||
this.pnlMain.SuspendLayout();
|
||||
this.tabD.SuspendLayout();
|
||||
this.tabDescription.SuspendLayout();
|
||||
this.tabCode.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// contextAppMenu
|
||||
//
|
||||
this.contextAppMenu.BackColor = System.Drawing.Color.WhiteSmoke;
|
||||
this.contextAppMenu.Font = new System.Drawing.Font("Segoe UI Variable Text Semiligh", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.contextAppMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.menuModEdit,
|
||||
this.menuModOpenDir});
|
||||
this.contextAppMenu.Name = "menuMain";
|
||||
this.contextAppMenu.RenderMode = System.Windows.Forms.ToolStripRenderMode.System;
|
||||
this.contextAppMenu.Size = new System.Drawing.Size(181, 70);
|
||||
this.contextAppMenu.Text = "Info";
|
||||
//
|
||||
// menuModEdit
|
||||
//
|
||||
this.menuModEdit.Name = "menuModEdit";
|
||||
this.menuModEdit.Size = new System.Drawing.Size(180, 22);
|
||||
this.menuModEdit.Text = "Edit Mod";
|
||||
this.menuModEdit.Click += new System.EventHandler(this.menuModEdit_Click);
|
||||
//
|
||||
// menuModOpenDir
|
||||
//
|
||||
this.menuModOpenDir.Name = "menuModOpenDir";
|
||||
this.menuModOpenDir.Size = new System.Drawing.Size(180, 22);
|
||||
this.menuModOpenDir.Text = "Open Mods Folder";
|
||||
this.menuModOpenDir.Click += new System.EventHandler(this.menuModOpenDir_Click);
|
||||
//
|
||||
// pnlForm
|
||||
//
|
||||
this.pnlForm.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.pnlForm.AutoSize = true;
|
||||
this.pnlForm.Controls.Add(this.pnlMain);
|
||||
this.pnlForm.Location = new System.Drawing.Point(0, 0);
|
||||
this.pnlForm.Name = "pnlForm";
|
||||
this.pnlForm.Size = new System.Drawing.Size(1054, 795);
|
||||
this.pnlForm.TabIndex = 193;
|
||||
//
|
||||
// pnlMain
|
||||
//
|
||||
this.pnlMain.AutoScroll = true;
|
||||
this.pnlMain.Controls.Add(this.lblStatus);
|
||||
this.pnlMain.Controls.Add(this.lblHeader);
|
||||
this.pnlMain.Controls.Add(this.btnHMenu);
|
||||
this.pnlMain.Controls.Add(this.btnBack);
|
||||
this.pnlMain.Controls.Add(this.lnkExploreMods);
|
||||
this.pnlMain.Controls.Add(this.tabD);
|
||||
this.pnlMain.Controls.Add(this.textSearch);
|
||||
this.pnlMain.Controls.Add(this.lnkCode);
|
||||
this.pnlMain.Controls.Add(this.lnkDesc);
|
||||
this.pnlMain.Controls.Add(this.progress);
|
||||
this.pnlMain.Controls.Add(this.btnApply);
|
||||
this.pnlMain.Controls.Add(this.listMods);
|
||||
this.pnlMain.Controls.Add(this.btnCancel);
|
||||
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(1054, 795);
|
||||
this.pnlMain.TabIndex = 197;
|
||||
//
|
||||
// lblStatus
|
||||
//
|
||||
this.lblStatus.AutoEllipsis = true;
|
||||
this.lblStatus.AutoSize = true;
|
||||
this.lblStatus.Font = new System.Drawing.Font("Segoe UI Variable Text", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblStatus.ForeColor = System.Drawing.Color.HotPink;
|
||||
this.lblStatus.Location = new System.Drawing.Point(88, 106);
|
||||
this.lblStatus.Name = "lblStatus";
|
||||
this.lblStatus.Size = new System.Drawing.Size(94, 17);
|
||||
this.lblStatus.TabIndex = 206;
|
||||
this.lblStatus.Text = "Mods installed";
|
||||
//
|
||||
// lblHeader
|
||||
//
|
||||
this.lblHeader.AutoEllipsis = true;
|
||||
this.lblHeader.Font = new System.Drawing.Font("Segoe UI Variable Text Semibold", 14.25F, System.Drawing.FontStyle.Bold, 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(87, 4);
|
||||
this.lblHeader.Name = "lblHeader";
|
||||
this.lblHeader.Size = new System.Drawing.Size(114, 26);
|
||||
this.lblHeader.TabIndex = 204;
|
||||
this.lblHeader.Text = "WinModder";
|
||||
//
|
||||
// btnHMenu
|
||||
//
|
||||
this.btnHMenu.FlatAppearance.BorderSize = 0;
|
||||
this.btnHMenu.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Gainsboro;
|
||||
this.btnHMenu.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnHMenu.Font = new System.Drawing.Font("Segoe Fluent Icons", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnHMenu.ForeColor = System.Drawing.Color.Black;
|
||||
this.btnHMenu.Location = new System.Drawing.Point(35, 0);
|
||||
this.btnHMenu.Name = "btnHMenu";
|
||||
this.btnHMenu.Size = new System.Drawing.Size(42, 38);
|
||||
this.btnHMenu.TabIndex = 203;
|
||||
this.btnHMenu.Text = "...";
|
||||
this.btnHMenu.UseVisualStyleBackColor = true;
|
||||
this.btnHMenu.Click += new System.EventHandler(this.btnHMenu_Click);
|
||||
//
|
||||
// btnBack
|
||||
//
|
||||
this.btnBack.FlatAppearance.BorderSize = 0;
|
||||
this.btnBack.FlatAppearance.MouseOverBackColor = System.Drawing.Color.WhiteSmoke;
|
||||
this.btnBack.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnBack.Font = new System.Drawing.Font("Segoe Fluent Icons", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnBack.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.btnBack.Location = new System.Drawing.Point(0, 0);
|
||||
this.btnBack.Name = "btnBack";
|
||||
this.btnBack.Size = new System.Drawing.Size(42, 38);
|
||||
this.btnBack.TabIndex = 202;
|
||||
this.btnBack.Text = "...";
|
||||
this.btnBack.UseVisualStyleBackColor = true;
|
||||
this.btnBack.Click += new System.EventHandler(this.btnBack_Click);
|
||||
//
|
||||
// lnkExploreMods
|
||||
//
|
||||
this.lnkExploreMods.ActiveLinkColor = System.Drawing.Color.DeepPink;
|
||||
this.lnkExploreMods.AutoSize = true;
|
||||
this.lnkExploreMods.Font = new System.Drawing.Font("Segoe UI Variable Text Semibold", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lnkExploreMods.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
|
||||
this.lnkExploreMods.LinkColor = System.Drawing.Color.HotPink;
|
||||
this.lnkExploreMods.Location = new System.Drawing.Point(229, 4);
|
||||
this.lnkExploreMods.Name = "lnkExploreMods";
|
||||
this.lnkExploreMods.Size = new System.Drawing.Size(129, 26);
|
||||
this.lnkExploreMods.TabIndex = 201;
|
||||
this.lnkExploreMods.TabStop = true;
|
||||
this.lnkExploreMods.Text = "Explore Mods";
|
||||
this.lnkExploreMods.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lnkExploreMods_LinkClicked);
|
||||
//
|
||||
// tabD
|
||||
//
|
||||
this.tabD.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.tabD.Controls.Add(this.tabDescription);
|
||||
this.tabD.Controls.Add(this.tabCode);
|
||||
this.tabD.Font = new System.Drawing.Font("Segoe UI Variable Text Semiligh", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.tabD.Location = new System.Drawing.Point(92, 562);
|
||||
this.tabD.Name = "tabD";
|
||||
this.tabD.SelectedIndex = 0;
|
||||
this.tabD.Size = new System.Drawing.Size(857, 171);
|
||||
this.tabD.TabIndex = 194;
|
||||
//
|
||||
// tabDescription
|
||||
//
|
||||
this.tabDescription.BackColor = System.Drawing.SystemColors.Control;
|
||||
this.tabDescription.Controls.Add(this.rtbDesc);
|
||||
this.tabDescription.Location = new System.Drawing.Point(4, 24);
|
||||
this.tabDescription.Name = "tabDescription";
|
||||
this.tabDescription.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tabDescription.Size = new System.Drawing.Size(849, 143);
|
||||
this.tabDescription.TabIndex = 0;
|
||||
this.tabDescription.Text = "Description";
|
||||
//
|
||||
// rtbDesc
|
||||
//
|
||||
this.rtbDesc.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.rtbDesc.BackColor = System.Drawing.SystemColors.Control;
|
||||
this.rtbDesc.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.rtbDesc.Font = new System.Drawing.Font("Segoe UI Variable Text Semiligh", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.rtbDesc.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.rtbDesc.Location = new System.Drawing.Point(17, 17);
|
||||
this.rtbDesc.Name = "rtbDesc";
|
||||
this.rtbDesc.ReadOnly = true;
|
||||
this.rtbDesc.Size = new System.Drawing.Size(819, 120);
|
||||
this.rtbDesc.TabIndex = 11;
|
||||
this.rtbDesc.Text = resources.GetString("rtbDesc.Text");
|
||||
this.rtbDesc.LinkClicked += new System.Windows.Forms.LinkClickedEventHandler(this.rtbDesc_LinkClicked);
|
||||
//
|
||||
// tabCode
|
||||
//
|
||||
this.tabCode.BackColor = System.Drawing.SystemColors.Control;
|
||||
this.tabCode.Controls.Add(this.rtbCode);
|
||||
this.tabCode.Location = new System.Drawing.Point(4, 24);
|
||||
this.tabCode.Name = "tabCode";
|
||||
this.tabCode.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tabCode.Size = new System.Drawing.Size(849, 143);
|
||||
this.tabCode.TabIndex = 1;
|
||||
this.tabCode.Text = "Code";
|
||||
//
|
||||
// rtbCode
|
||||
//
|
||||
this.rtbCode.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.rtbCode.BackColor = System.Drawing.SystemColors.Control;
|
||||
this.rtbCode.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.rtbCode.Font = new System.Drawing.Font("Cascadia Code", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.rtbCode.ForeColor = System.Drawing.Color.Gray;
|
||||
this.rtbCode.Location = new System.Drawing.Point(17, 17);
|
||||
this.rtbCode.Name = "rtbCode";
|
||||
this.rtbCode.ReadOnly = true;
|
||||
this.rtbCode.Size = new System.Drawing.Size(826, 120);
|
||||
this.rtbCode.TabIndex = 12;
|
||||
this.rtbCode.Text = "#Follow this project on GitHub.\nStart-Process https://github.com/builtbybel/Deblo" +
|
||||
"os\n";
|
||||
//
|
||||
// textSearch
|
||||
//
|
||||
this.textSearch.BackColor = System.Drawing.Color.WhiteSmoke;
|
||||
this.textSearch.Font = new System.Drawing.Font("Segoe UI Variable Text", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.textSearch.ForeColor = System.Drawing.Color.Gray;
|
||||
this.textSearch.Location = new System.Drawing.Point(485, 60);
|
||||
this.textSearch.Name = "textSearch";
|
||||
this.textSearch.Size = new System.Drawing.Size(122, 23);
|
||||
this.textSearch.TabIndex = 199;
|
||||
this.textSearch.Text = "Search...";
|
||||
this.textSearch.Click += new System.EventHandler(this.textSearch_Click);
|
||||
this.textSearch.TextChanged += new System.EventHandler(this.textSearch_TextChanged);
|
||||
//
|
||||
// lnkCode
|
||||
//
|
||||
this.lnkCode.ActiveLinkColor = System.Drawing.Color.DeepPink;
|
||||
this.lnkCode.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.lnkCode.AutoSize = true;
|
||||
this.lnkCode.Font = new System.Drawing.Font("Segoe UI Variable Display Semil", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lnkCode.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
|
||||
this.lnkCode.LinkColor = System.Drawing.Color.HotPink;
|
||||
this.lnkCode.Location = new System.Drawing.Point(172, 531);
|
||||
this.lnkCode.Name = "lnkCode";
|
||||
this.lnkCode.Size = new System.Drawing.Size(38, 17);
|
||||
this.lnkCode.TabIndex = 198;
|
||||
this.lnkCode.TabStop = true;
|
||||
this.lnkCode.Text = "Code";
|
||||
this.lnkCode.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lnkCode_LinkClicked);
|
||||
//
|
||||
// lnkDesc
|
||||
//
|
||||
this.lnkDesc.ActiveLinkColor = System.Drawing.Color.DeepPink;
|
||||
this.lnkDesc.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.lnkDesc.AutoSize = true;
|
||||
this.lnkDesc.Font = new System.Drawing.Font("Segoe UI Variable Display Semil", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lnkDesc.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
|
||||
this.lnkDesc.LinkColor = System.Drawing.Color.HotPink;
|
||||
this.lnkDesc.Location = new System.Drawing.Point(91, 531);
|
||||
this.lnkDesc.Name = "lnkDesc";
|
||||
this.lnkDesc.Size = new System.Drawing.Size(71, 17);
|
||||
this.lnkDesc.TabIndex = 197;
|
||||
this.lnkDesc.TabStop = true;
|
||||
this.lnkDesc.Text = "Description";
|
||||
this.lnkDesc.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lnkDesc_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(92, 129);
|
||||
this.progress.Name = "progress";
|
||||
this.progress.Size = new System.Drawing.Size(857, 5);
|
||||
this.progress.TabIndex = 196;
|
||||
this.progress.Visible = false;
|
||||
//
|
||||
// btnApply
|
||||
//
|
||||
this.btnApply.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.btnApply.Font = new System.Drawing.Font("Segoe UI Variable Text", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnApply.ForeColor = System.Drawing.Color.Black;
|
||||
this.btnApply.Location = new System.Drawing.Point(96, 752);
|
||||
this.btnApply.Name = "btnApply";
|
||||
this.btnApply.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnApply.TabIndex = 5;
|
||||
this.btnApply.Text = "Apply";
|
||||
this.btnApply.UseVisualStyleBackColor = true;
|
||||
this.btnApply.Click += new System.EventHandler(this.btnApply_Click);
|
||||
//
|
||||
// listMods
|
||||
//
|
||||
this.listMods.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.listMods.BackColor = System.Drawing.SystemColors.Control;
|
||||
this.listMods.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.listMods.Font = new System.Drawing.Font("Segoe UI Variable Text Semiligh", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.listMods.FormattingEnabled = true;
|
||||
this.listMods.Location = new System.Drawing.Point(92, 140);
|
||||
this.listMods.Name = "listMods";
|
||||
this.listMods.Size = new System.Drawing.Size(857, 342);
|
||||
this.listMods.TabIndex = 195;
|
||||
this.listMods.SelectedIndexChanged += new System.EventHandler(this.listMods_SelectedIndexChanged);
|
||||
//
|
||||
// btnCancel
|
||||
//
|
||||
this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnCancel.Font = new System.Drawing.Font("Segoe UI Variable Text", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnCancel.ForeColor = System.Drawing.Color.Black;
|
||||
this.btnCancel.Location = new System.Drawing.Point(870, 752);
|
||||
this.btnCancel.Name = "btnCancel";
|
||||
this.btnCancel.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnCancel.TabIndex = 7;
|
||||
this.btnCancel.Text = "Cancel";
|
||||
this.btnCancel.UseVisualStyleBackColor = true;
|
||||
this.btnCancel.Visible = false;
|
||||
this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
|
||||
//
|
||||
// ModsPageView
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.pnlForm);
|
||||
this.Name = "ModsPageView";
|
||||
this.Size = new System.Drawing.Size(1054, 795);
|
||||
this.contextAppMenu.ResumeLayout(false);
|
||||
this.pnlForm.ResumeLayout(false);
|
||||
this.pnlMain.ResumeLayout(false);
|
||||
this.pnlMain.PerformLayout();
|
||||
this.tabD.ResumeLayout(false);
|
||||
this.tabDescription.ResumeLayout(false);
|
||||
this.tabCode.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
private System.Windows.Forms.ContextMenuStrip contextAppMenu;
|
||||
private System.Windows.Forms.ToolStripMenuItem menuModEdit;
|
||||
private System.Windows.Forms.Panel pnlForm;
|
||||
private System.Windows.Forms.TabControl tabD;
|
||||
private System.Windows.Forms.TabPage tabDescription;
|
||||
private System.Windows.Forms.RichTextBox rtbDesc;
|
||||
private System.Windows.Forms.TabPage tabCode;
|
||||
private System.Windows.Forms.RichTextBox rtbCode;
|
||||
private System.Windows.Forms.Panel pnlMain;
|
||||
private System.Windows.Forms.TextBox textSearch;
|
||||
private System.Windows.Forms.LinkLabel lnkCode;
|
||||
private System.Windows.Forms.LinkLabel lnkDesc;
|
||||
private System.Windows.Forms.ProgressBar progress;
|
||||
private System.Windows.Forms.Button btnApply;
|
||||
private System.Windows.Forms.CheckedListBox listMods;
|
||||
private System.Windows.Forms.Button btnCancel;
|
||||
private System.Windows.Forms.Label lblHeader;
|
||||
private System.Windows.Forms.Button btnHMenu;
|
||||
private System.Windows.Forms.Button btnBack;
|
||||
public System.Windows.Forms.LinkLabel lnkExploreMods;
|
||||
private System.Windows.Forms.Label lblStatus;
|
||||
private System.Windows.Forms.ToolStripMenuItem menuModOpenDir;
|
||||
}
|
||||
}
|
@ -1,259 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace BloatyNosy
|
||||
{
|
||||
public partial class ModsPageView : UserControl
|
||||
{
|
||||
private ModsManifest _Modsmanifest = new ModsManifest();
|
||||
private List<string> ModsList = new List<string>();
|
||||
|
||||
public Control INavPage;
|
||||
|
||||
public ModsPageView()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
InitializeMods();
|
||||
listMods.Items.AddRange(ModsList.ToArray());
|
||||
|
||||
SetStyle();
|
||||
}
|
||||
|
||||
// Some UI nicety
|
||||
private void SetStyle()
|
||||
{
|
||||
HideTabsOnTabControl(tabD);
|
||||
|
||||
BackColor =
|
||||
listMods.BackColor =
|
||||
tabD.BackColor =
|
||||
tabDescription.BackColor =
|
||||
tabCode.BackColor =
|
||||
rtbDesc.BackColor =
|
||||
rtbCode.BackColor =
|
||||
Color.FromArgb(245, 241, 249);
|
||||
|
||||
btnHMenu.Text = "\uE700";
|
||||
btnBack.Text = "\uE72B";
|
||||
|
||||
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 HideTabsOnTabControl(TabControl tabControl)
|
||||
{
|
||||
tabControl.Appearance = TabAppearance.FlatButtons;
|
||||
tabControl.ItemSize = new Size(0, 1);
|
||||
tabControl.SizeMode = TabSizeMode.Fixed;
|
||||
}
|
||||
|
||||
private void InitializeMods()
|
||||
{
|
||||
listMods.Items.Clear();
|
||||
|
||||
try
|
||||
{
|
||||
string[] manifests = Directory.GetFiles(HelperTool.Utils.Data.ModsRootDir, "*.ini");
|
||||
foreach (string manifest in manifests)
|
||||
{
|
||||
ModsList.Add(Path.GetFileNameWithoutExtension(manifest));
|
||||
}
|
||||
}
|
||||
catch { lblStatus.Text = "No Mods installed"; btnApply.Visible = false; btnCancel.Visible = false; }
|
||||
}
|
||||
|
||||
private async void DoMods(string language)
|
||||
{
|
||||
var scriptPath = HelperTool.Utils.Data.ModsRootDir + _Modsmanifest.ConditionScript;
|
||||
// Check e.g. -noexit switch to prevent the PowerShell Console window from closing
|
||||
var scriptParam = _Modsmanifest.ini.ReadString("Info", "ScriptParam", "");
|
||||
|
||||
lblStatus.Text = $"Processing \"{scriptPath}\"";
|
||||
|
||||
btnApply.Enabled = false;
|
||||
btnCancel.Visible = true;
|
||||
progress.Visible = true;
|
||||
progress.Style = ProgressBarStyle.Marquee;
|
||||
progress.MarqueeAnimationSpeed = 30;
|
||||
|
||||
try
|
||||
{
|
||||
switch (language)
|
||||
{
|
||||
case "PowerShell":
|
||||
|
||||
var startInfo = new ProcessStartInfo()
|
||||
{
|
||||
FileName = "powershell.exe",
|
||||
Arguments = $"-executionpolicy bypass {scriptParam} -file \"{scriptPath}\"",
|
||||
UseShellExecute = false,
|
||||
CreateNoWindow = Convert.ToBoolean(_Modsmanifest.ini.ReadString("Info", "CreateNoWindow", ""))
|
||||
};
|
||||
|
||||
await Task.Run(() =>
|
||||
{
|
||||
Process.Start(startInfo).WaitForExit();
|
||||
});
|
||||
|
||||
break;
|
||||
|
||||
case "Command-line":
|
||||
var process = Process.Start(new ProcessStartInfo("cmd", "/C " + scriptPath)
|
||||
{
|
||||
RedirectStandardOutput = true,
|
||||
WorkingDirectory = HelperTool.Utils.Data.ModsRootDir,
|
||||
UseShellExecute = false,
|
||||
CreateNoWindow = Convert.ToBoolean(_Modsmanifest.ini.ReadString("Info", "CreateNoWindow", ""))
|
||||
});
|
||||
|
||||
await Task.Run(() =>
|
||||
{
|
||||
process.WaitForExit();
|
||||
});
|
||||
|
||||
break;
|
||||
}
|
||||
lblStatus.Text = "Installed Mods";
|
||||
progress.Visible = false;
|
||||
btnCancel.Visible = false;
|
||||
btnApply.Enabled = true;
|
||||
MessageBox.Show("Mod has been successfully applied.", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
catch (NullReferenceException ex)
|
||||
{
|
||||
string title = "This did not work...";
|
||||
string logger = "Exception in \"" + language + "\"\n\n" + ex + "\n\nPlease report this issue to Builtbybel........";
|
||||
MessageBox.Show(this, logger, title, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void btnApply_Click(object sender, EventArgs e)
|
||||
=> DoMods(_Modsmanifest.ScriptLanguage);
|
||||
|
||||
private void btnCancel_Click(object sender, EventArgs e)
|
||||
{
|
||||
String CurrentUser = Environment.UserName;
|
||||
Process[] allProcesses = Process.GetProcessesByName("powershell");
|
||||
if (null != allProcesses)
|
||||
{
|
||||
Process process = new Process();
|
||||
ProcessStartInfo startInfo = new ProcessStartInfo();
|
||||
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
|
||||
startInfo.FileName = "cmd.exe";
|
||||
startInfo.Arguments = "/C TASKKILL /F /FI \"USERNAME eq " + CurrentUser + "\" /IM powershell.exe";
|
||||
process.StartInfo = startInfo;
|
||||
process.Start();
|
||||
process.WaitForExit();
|
||||
}
|
||||
|
||||
btnCancel.Visible = false;
|
||||
}
|
||||
|
||||
private void menuModEdit_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
string scriptPath = HelperTool.Utils.Data.ModsRootDir + _Modsmanifest.ConditionScript;
|
||||
|
||||
Process process = new Process();
|
||||
process.StartInfo.FileName = "powershell_ise.exe";
|
||||
process.StartInfo.Arguments = scriptPath;
|
||||
process.Start();
|
||||
}
|
||||
catch { MessageBox.Show("No Mod selected."); }
|
||||
}
|
||||
|
||||
private void listMods_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
string scriptManifestFile = HelperTool.Utils.Data.ModsRootDir + listMods.Text + ".ini";
|
||||
_Modsmanifest.ini = new ModsParser(scriptManifestFile);
|
||||
string scriptPath = HelperTool.Utils.Data.ModsRootDir + _Modsmanifest.ConditionScript;
|
||||
|
||||
try
|
||||
{
|
||||
// Catch description
|
||||
// Script name
|
||||
//listMods.Items.Add(_Modsmanifest.DisplayName);
|
||||
// Script description/publisher
|
||||
rtbDesc.Text = _Modsmanifest.AboutScript.Replace("\\n", "\r\n") +
|
||||
Environment.NewLine + Environment.NewLine + "Author of this Mod: " + _Modsmanifest.Publisher;
|
||||
|
||||
// Catch Code
|
||||
using (StreamReader sr = new StreamReader(scriptPath, Encoding.Default))
|
||||
{
|
||||
StringBuilder content = new StringBuilder();
|
||||
|
||||
while (!sr.EndOfStream)
|
||||
content.AppendLine(sr.ReadLine());
|
||||
|
||||
rtbCode.Text = string.Join(Environment.NewLine, File.ReadAllLines(scriptPath));
|
||||
}
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
private void textSearch_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
listMods.Items.Clear();
|
||||
|
||||
foreach (string str in ModsList)
|
||||
{
|
||||
if (str.IndexOf(textSearch.Text, 0, StringComparison.CurrentCultureIgnoreCase) != -1)
|
||||
{
|
||||
listMods.Items.Add(str);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void textSearch_Click(object sender, EventArgs e)
|
||||
=> textSearch.Text = "";
|
||||
|
||||
private void rtbDesc_LinkClicked(object sender, LinkClickedEventArgs e)
|
||||
=> HelperTool.Utils.LaunchUri(e.LinkText);
|
||||
|
||||
public void lnkExploreMods_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
=> this.SetView(new IModsPageView(this));
|
||||
|
||||
private void lnkDesc_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
=> tabD.SelectedIndex = 0;
|
||||
|
||||
private void lnkCode_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
=> tabD.SelectedIndex = 1;
|
||||
|
||||
private void btnHMenu_Click(object sender, EventArgs e)
|
||||
=> this.contextAppMenu.Show(Cursor.Position.X, Cursor.Position.Y);
|
||||
|
||||
private void btnBack_Click(object sender, EventArgs e)
|
||||
{
|
||||
var mainForm = Application.OpenForms.OfType<MainForm>().Single();
|
||||
mainForm.pnlForm.Controls.Clear();
|
||||
if (mainForm.INavPage != null) mainForm.pnlForm.Controls.Add(mainForm.INavPage);
|
||||
}
|
||||
|
||||
private void menuModOpenDir_Click(object sender, EventArgs e)
|
||||
{
|
||||
Process.Start(new ProcessStartInfo("explorer.exe", HelperTool.Utils.Data.ModsRootDir) { UseShellExecute = true });
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -1,130 +0,0 @@
|
||||
<?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="contextAppMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<data name="rtbDesc.Text" xml:space="preserve">
|
||||
<value>You will find here mod files for BloatyNosy WinModder.
|
||||
- Install mod files directly via the "Explore Mods" link
|
||||
- Explore mod files and packages online https://www.builtbybel.com/blog/about-bloatynosy
|
||||
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
504
src/BloatyNosyAI/Views/NosyPageView.Designer.cs
generated
504
src/BloatyNosyAI/Views/NosyPageView.Designer.cs
generated
@ -1,504 +0,0 @@
|
||||
namespace Bloatynosy.Views
|
||||
{
|
||||
partial class NosyPageView
|
||||
{
|
||||
/// <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 Komponenten-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();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(NosyPageView));
|
||||
this.tvwFeatures = new System.Windows.Forms.TreeView();
|
||||
this.sc = new System.Windows.Forms.SplitContainer();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.checkLoadPlugins = new ToggleSwitch();
|
||||
this.btnLoadProfile = new System.Windows.Forms.Button();
|
||||
this.btnRemoveAll = new System.Windows.Forms.Button();
|
||||
this.btnRemove = new System.Windows.Forms.Button();
|
||||
this.btnAdd = new System.Windows.Forms.Button();
|
||||
this.btnAddAll = new System.Windows.Forms.Button();
|
||||
this.lnkAppBloatpilot = new System.Windows.Forms.LinkLabel();
|
||||
this.btnAnalyze = new System.Windows.Forms.Button();
|
||||
this.tvwFeaturesBin = new System.Windows.Forms.TreeView();
|
||||
this.progress = new System.Windows.Forms.ProgressBar();
|
||||
this.lnkStatus = new System.Windows.Forms.LinkLabel();
|
||||
this.btnRestore = new System.Windows.Forms.Button();
|
||||
this.btnApply = new System.Windows.Forms.Button();
|
||||
this.rtbLog = new System.Windows.Forms.RichTextBox();
|
||||
this.btnMenuGripperBar = new System.Windows.Forms.Button();
|
||||
this.pnlNav = new System.Windows.Forms.Panel();
|
||||
this.tt = new System.Windows.Forms.ToolTip(this.components);
|
||||
this.contextMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.textHeaderApp = new System.Windows.Forms.ToolStripTextBox();
|
||||
this.textHeaderExperience = new System.Windows.Forms.ToolStripTextBox();
|
||||
this.cbProfiles = new System.Windows.Forms.ToolStripComboBox();
|
||||
this.menuLoadProfile = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.menuExportProfile = new System.Windows.Forms.ToolStripMenuItem();
|
||||
((System.ComponentModel.ISupportInitialize)(this.sc)).BeginInit();
|
||||
this.sc.Panel1.SuspendLayout();
|
||||
this.sc.Panel2.SuspendLayout();
|
||||
this.sc.SuspendLayout();
|
||||
this.pnlNav.SuspendLayout();
|
||||
this.contextMenu.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// 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.Font = new System.Drawing.Font("Segoe UI Variable Text Light", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.tvwFeatures.ForeColor = System.Drawing.Color.Black;
|
||||
this.tvwFeatures.FullRowSelect = true;
|
||||
this.tvwFeatures.ItemHeight = 37;
|
||||
this.tvwFeatures.LineColor = System.Drawing.Color.DodgerBlue;
|
||||
this.tvwFeatures.Location = new System.Drawing.Point(55, 66);
|
||||
this.tvwFeatures.Name = "tvwFeatures";
|
||||
this.tvwFeatures.ShowLines = false;
|
||||
this.tvwFeatures.ShowNodeToolTips = true;
|
||||
this.tvwFeatures.ShowRootLines = false;
|
||||
this.tvwFeatures.Size = new System.Drawing.Size(254, 623);
|
||||
this.tvwFeatures.TabIndex = 169;
|
||||
this.tvwFeatures.TabStop = false;
|
||||
this.tvwFeatures.AfterCheck += new System.Windows.Forms.TreeViewEventHandler(this.tvwFeatures_AfterCheck);
|
||||
this.tvwFeatures.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.tvwFeatures_AfterSelect);
|
||||
this.tvwFeatures.DoubleClick += new System.EventHandler(this.tvwFeatures_DoubleClick);
|
||||
//
|
||||
// sc
|
||||
//
|
||||
this.sc.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.sc.Location = new System.Drawing.Point(0, 0);
|
||||
this.sc.Name = "sc";
|
||||
//
|
||||
// sc.Panel1
|
||||
//
|
||||
this.sc.Panel1.AutoScroll = true;
|
||||
this.sc.Panel1.Controls.Add(this.label1);
|
||||
this.sc.Panel1.Controls.Add(this.checkLoadPlugins);
|
||||
this.sc.Panel1.Controls.Add(this.btnLoadProfile);
|
||||
this.sc.Panel1.Controls.Add(this.btnRemoveAll);
|
||||
this.sc.Panel1.Controls.Add(this.btnRemove);
|
||||
this.sc.Panel1.Controls.Add(this.tvwFeatures);
|
||||
this.sc.Panel1.Controls.Add(this.btnAdd);
|
||||
this.sc.Panel1.Controls.Add(this.btnAddAll);
|
||||
//
|
||||
// sc.Panel2
|
||||
//
|
||||
this.sc.Panel2.AutoScroll = true;
|
||||
this.sc.Panel2.BackColor = System.Drawing.SystemColors.Control;
|
||||
this.sc.Panel2.Controls.Add(this.lnkAppBloatpilot);
|
||||
this.sc.Panel2.Controls.Add(this.btnAnalyze);
|
||||
this.sc.Panel2.Controls.Add(this.tvwFeaturesBin);
|
||||
this.sc.Panel2.Controls.Add(this.progress);
|
||||
this.sc.Panel2.Controls.Add(this.lnkStatus);
|
||||
this.sc.Panel2.Controls.Add(this.btnRestore);
|
||||
this.sc.Panel2.Controls.Add(this.btnApply);
|
||||
this.sc.Panel2.Controls.Add(this.rtbLog);
|
||||
this.sc.Size = new System.Drawing.Size(942, 759);
|
||||
this.sc.SplitterDistance = 360;
|
||||
this.sc.TabIndex = 208;
|
||||
this.sc.TabStop = false;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Font = new System.Drawing.Font("Segoe UI Variable Text Light", 10F);
|
||||
this.label1.Location = new System.Drawing.Point(114, 701);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(85, 19);
|
||||
this.label1.TabIndex = 222;
|
||||
this.label1.Text = "Plugin access";
|
||||
//
|
||||
// checkLoadPlugins
|
||||
//
|
||||
this.checkLoadPlugins.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.checkLoadPlugins.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.checkLoadPlugins.Font = new System.Drawing.Font("Segoe UI Variable Text Light", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.checkLoadPlugins.ForeColor = System.Drawing.Color.DeepPink;
|
||||
this.checkLoadPlugins.Location = new System.Drawing.Point(55, 695);
|
||||
this.checkLoadPlugins.Name = "checkLoadPlugins";
|
||||
this.checkLoadPlugins.Padding = new System.Windows.Forms.Padding(6);
|
||||
this.checkLoadPlugins.Size = new System.Drawing.Size(53, 30);
|
||||
this.checkLoadPlugins.TabIndex = 220;
|
||||
this.checkLoadPlugins.Text = "Load Plugin-Powered Enhancements";
|
||||
this.checkLoadPlugins.UseVisualStyleBackColor = true;
|
||||
this.checkLoadPlugins.CheckedChanged += new System.EventHandler(this.checkLoadPlugins_CheckedChanged);
|
||||
//
|
||||
// btnLoadProfile
|
||||
//
|
||||
this.btnLoadProfile.Anchor = System.Windows.Forms.AnchorStyles.Right;
|
||||
this.btnLoadProfile.AutoEllipsis = true;
|
||||
this.btnLoadProfile.FlatAppearance.BorderSize = 0;
|
||||
this.btnLoadProfile.FlatStyle = System.Windows.Forms.FlatStyle.System;
|
||||
this.btnLoadProfile.Font = new System.Drawing.Font("Segoe Fluent Icons", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnLoadProfile.ForeColor = System.Drawing.Color.Black;
|
||||
this.btnLoadProfile.Location = new System.Drawing.Point(315, 336);
|
||||
this.btnLoadProfile.Name = "btnLoadProfile";
|
||||
this.btnLoadProfile.Size = new System.Drawing.Size(42, 23);
|
||||
this.btnLoadProfile.TabIndex = 221;
|
||||
this.tt.SetToolTip(this.btnLoadProfile, "Load profile");
|
||||
this.btnLoadProfile.UseVisualStyleBackColor = true;
|
||||
this.btnLoadProfile.Click += new System.EventHandler(this.btnLoadProfile_Click);
|
||||
//
|
||||
// btnRemoveAll
|
||||
//
|
||||
this.btnRemoveAll.Anchor = System.Windows.Forms.AnchorStyles.Right;
|
||||
this.btnRemoveAll.AutoEllipsis = true;
|
||||
this.btnRemoveAll.FlatAppearance.BorderSize = 0;
|
||||
this.btnRemoveAll.FlatStyle = System.Windows.Forms.FlatStyle.System;
|
||||
this.btnRemoveAll.Font = new System.Drawing.Font("Segoe Fluent Icons", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnRemoveAll.ForeColor = System.Drawing.Color.Black;
|
||||
this.btnRemoveAll.Location = new System.Drawing.Point(315, 281);
|
||||
this.btnRemoveAll.Name = "btnRemoveAll";
|
||||
this.btnRemoveAll.Size = new System.Drawing.Size(42, 23);
|
||||
this.btnRemoveAll.TabIndex = 218;
|
||||
this.tt.SetToolTip(this.btnRemoveAll, "Remove all");
|
||||
this.btnRemoveAll.UseVisualStyleBackColor = true;
|
||||
this.btnRemoveAll.Click += new System.EventHandler(this.btnRemoveAll_Click);
|
||||
//
|
||||
// btnRemove
|
||||
//
|
||||
this.btnRemove.Anchor = System.Windows.Forms.AnchorStyles.Right;
|
||||
this.btnRemove.AutoEllipsis = true;
|
||||
this.btnRemove.FlatAppearance.BorderSize = 0;
|
||||
this.btnRemove.FlatStyle = System.Windows.Forms.FlatStyle.System;
|
||||
this.btnRemove.Font = new System.Drawing.Font("Segoe Fluent Icons", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnRemove.ForeColor = System.Drawing.Color.Black;
|
||||
this.btnRemove.Location = new System.Drawing.Point(315, 194);
|
||||
this.btnRemove.Name = "btnRemove";
|
||||
this.btnRemove.Size = new System.Drawing.Size(42, 23);
|
||||
this.btnRemove.TabIndex = 217;
|
||||
this.tt.SetToolTip(this.btnRemove, "Remove");
|
||||
this.btnRemove.UseVisualStyleBackColor = true;
|
||||
this.btnRemove.Click += new System.EventHandler(this.btnRemove_Click);
|
||||
//
|
||||
// btnAdd
|
||||
//
|
||||
this.btnAdd.Anchor = System.Windows.Forms.AnchorStyles.Right;
|
||||
this.btnAdd.AutoEllipsis = true;
|
||||
this.btnAdd.FlatAppearance.BorderSize = 0;
|
||||
this.btnAdd.FlatStyle = System.Windows.Forms.FlatStyle.System;
|
||||
this.btnAdd.Font = new System.Drawing.Font("Segoe Fluent Icons", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnAdd.ForeColor = System.Drawing.Color.Black;
|
||||
this.btnAdd.Location = new System.Drawing.Point(315, 165);
|
||||
this.btnAdd.Name = "btnAdd";
|
||||
this.btnAdd.Size = new System.Drawing.Size(42, 23);
|
||||
this.btnAdd.TabIndex = 216;
|
||||
this.tt.SetToolTip(this.btnAdd, "Add");
|
||||
this.btnAdd.UseVisualStyleBackColor = true;
|
||||
this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click);
|
||||
//
|
||||
// btnAddAll
|
||||
//
|
||||
this.btnAddAll.Anchor = System.Windows.Forms.AnchorStyles.Right;
|
||||
this.btnAddAll.AutoEllipsis = true;
|
||||
this.btnAddAll.FlatAppearance.BorderSize = 0;
|
||||
this.btnAddAll.FlatStyle = System.Windows.Forms.FlatStyle.System;
|
||||
this.btnAddAll.Font = new System.Drawing.Font("Segoe Fluent Icons", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnAddAll.ForeColor = System.Drawing.Color.Black;
|
||||
this.btnAddAll.Location = new System.Drawing.Point(315, 252);
|
||||
this.btnAddAll.Name = "btnAddAll";
|
||||
this.btnAddAll.Size = new System.Drawing.Size(42, 23);
|
||||
this.btnAddAll.TabIndex = 219;
|
||||
this.tt.SetToolTip(this.btnAddAll, "Add all");
|
||||
this.btnAddAll.UseVisualStyleBackColor = true;
|
||||
this.btnAddAll.Click += new System.EventHandler(this.btnAddAll_Click);
|
||||
//
|
||||
// lnkAppBloatpilot
|
||||
//
|
||||
this.lnkAppBloatpilot.ActiveLinkColor = System.Drawing.Color.HotPink;
|
||||
this.lnkAppBloatpilot.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.lnkAppBloatpilot.AutoEllipsis = true;
|
||||
this.lnkAppBloatpilot.Font = new System.Drawing.Font("Segoe UI Variable Display Semib", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lnkAppBloatpilot.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
|
||||
this.lnkAppBloatpilot.LinkColor = System.Drawing.Color.MediumOrchid;
|
||||
this.lnkAppBloatpilot.Location = new System.Drawing.Point(351, 376);
|
||||
this.lnkAppBloatpilot.Name = "lnkAppBloatpilot";
|
||||
this.lnkAppBloatpilot.Size = new System.Drawing.Size(133, 21);
|
||||
this.lnkAppBloatpilot.TabIndex = 219;
|
||||
this.lnkAppBloatpilot.TabStop = true;
|
||||
this.lnkAppBloatpilot.Text = "Switch to BLOAT-E";
|
||||
this.tt.SetToolTip(this.lnkAppBloatpilot, "BLOAT-E integration in Bloatynosy is the next-level debloating tool");
|
||||
this.lnkAppBloatpilot.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lnkAppBloatpilot_LinkClicked);
|
||||
//
|
||||
// btnAnalyze
|
||||
//
|
||||
this.btnAnalyze.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnAnalyze.AutoEllipsis = true;
|
||||
this.btnAnalyze.BackColor = System.Drawing.Color.Orchid;
|
||||
this.btnAnalyze.FlatAppearance.BorderColor = System.Drawing.Color.Gray;
|
||||
this.btnAnalyze.FlatAppearance.BorderSize = 0;
|
||||
this.btnAnalyze.Font = new System.Drawing.Font("Segoe UI Variable Display", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnAnalyze.ForeColor = System.Drawing.Color.White;
|
||||
this.btnAnalyze.Location = new System.Drawing.Point(317, 336);
|
||||
this.btnAnalyze.Name = "btnAnalyze";
|
||||
this.btnAnalyze.Padding = new System.Windows.Forms.Padding(0, 0, 5, 0);
|
||||
this.btnAnalyze.Size = new System.Drawing.Size(184, 37);
|
||||
this.btnAnalyze.TabIndex = 215;
|
||||
this.btnAnalyze.TabStop = false;
|
||||
this.btnAnalyze.Text = "+ Analyze";
|
||||
this.btnAnalyze.UseVisualStyleBackColor = false;
|
||||
this.btnAnalyze.Click += new System.EventHandler(this.btnAnalyze_Click);
|
||||
//
|
||||
// tvwFeaturesBin
|
||||
//
|
||||
this.tvwFeaturesBin.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.tvwFeaturesBin.BackColor = System.Drawing.Color.White;
|
||||
this.tvwFeaturesBin.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.tvwFeaturesBin.Font = new System.Drawing.Font("Segoe UI Variable Text Light", 9.75F);
|
||||
this.tvwFeaturesBin.ForeColor = System.Drawing.Color.Black;
|
||||
this.tvwFeaturesBin.FullRowSelect = true;
|
||||
this.tvwFeaturesBin.ItemHeight = 37;
|
||||
this.tvwFeaturesBin.LineColor = System.Drawing.Color.DodgerBlue;
|
||||
this.tvwFeaturesBin.Location = new System.Drawing.Point(3, 66);
|
||||
this.tvwFeaturesBin.Name = "tvwFeaturesBin";
|
||||
this.tvwFeaturesBin.ShowLines = false;
|
||||
this.tvwFeaturesBin.ShowNodeToolTips = true;
|
||||
this.tvwFeaturesBin.ShowRootLines = false;
|
||||
this.tvwFeaturesBin.Size = new System.Drawing.Size(254, 623);
|
||||
this.tvwFeaturesBin.TabIndex = 215;
|
||||
this.tvwFeaturesBin.DoubleClick += new System.EventHandler(this.tvwFeaturesBin_DoubleClick);
|
||||
//
|
||||
// progress
|
||||
//
|
||||
this.progress.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.progress.Location = new System.Drawing.Point(3, 710);
|
||||
this.progress.Name = "progress";
|
||||
this.progress.Size = new System.Drawing.Size(254, 5);
|
||||
this.progress.TabIndex = 166;
|
||||
this.progress.Visible = false;
|
||||
//
|
||||
// lnkStatus
|
||||
//
|
||||
this.lnkStatus.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.lnkStatus.AutoEllipsis = true;
|
||||
this.lnkStatus.BackColor = System.Drawing.Color.Transparent;
|
||||
this.lnkStatus.Font = new System.Drawing.Font("Segoe UI Variable Text Semiligh", 9.75F);
|
||||
this.lnkStatus.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
|
||||
this.lnkStatus.LinkColor = System.Drawing.Color.Black;
|
||||
this.lnkStatus.Location = new System.Drawing.Point(3, 690);
|
||||
this.lnkStatus.Name = "lnkStatus";
|
||||
this.lnkStatus.Size = new System.Drawing.Size(254, 19);
|
||||
this.lnkStatus.TabIndex = 214;
|
||||
this.lnkStatus.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lnkStatus_LinkClicked);
|
||||
//
|
||||
// btnRestore
|
||||
//
|
||||
this.btnRestore.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.btnRestore.AutoEllipsis = true;
|
||||
this.btnRestore.BackColor = System.Drawing.Color.White;
|
||||
this.btnRestore.FlatAppearance.BorderSize = 0;
|
||||
this.btnRestore.FlatStyle = System.Windows.Forms.FlatStyle.System;
|
||||
this.btnRestore.Font = new System.Drawing.Font("Segoe UI Variable Display", 9.75F);
|
||||
this.btnRestore.ForeColor = System.Drawing.Color.Black;
|
||||
this.btnRestore.Location = new System.Drawing.Point(126, 715);
|
||||
this.btnRestore.Name = "btnRestore";
|
||||
this.btnRestore.Padding = new System.Windows.Forms.Padding(0, 0, 5, 0);
|
||||
this.btnRestore.Size = new System.Drawing.Size(117, 34);
|
||||
this.btnRestore.TabIndex = 178;
|
||||
this.btnRestore.TabStop = false;
|
||||
this.btnRestore.Text = "Restore";
|
||||
this.btnRestore.UseVisualStyleBackColor = false;
|
||||
this.btnRestore.Click += new System.EventHandler(this.btnRestore_Click);
|
||||
//
|
||||
// btnApply
|
||||
//
|
||||
this.btnApply.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.btnApply.AutoEllipsis = true;
|
||||
this.btnApply.BackColor = System.Drawing.Color.White;
|
||||
this.btnApply.FlatAppearance.BorderSize = 0;
|
||||
this.btnApply.FlatStyle = System.Windows.Forms.FlatStyle.System;
|
||||
this.btnApply.Font = new System.Drawing.Font("Segoe UI Variable Display", 9.75F);
|
||||
this.btnApply.ForeColor = System.Drawing.Color.Black;
|
||||
this.btnApply.Location = new System.Drawing.Point(3, 715);
|
||||
this.btnApply.Name = "btnApply";
|
||||
this.btnApply.Size = new System.Drawing.Size(117, 34);
|
||||
this.btnApply.TabIndex = 27;
|
||||
this.btnApply.TabStop = false;
|
||||
this.btnApply.Text = "Apply";
|
||||
this.btnApply.UseVisualStyleBackColor = false;
|
||||
this.btnApply.Click += new System.EventHandler(this.btnApply_Click);
|
||||
//
|
||||
// rtbLog
|
||||
//
|
||||
this.rtbLog.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.rtbLog.BackColor = System.Drawing.SystemColors.Control;
|
||||
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 Display", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.rtbLog.ForeColor = System.Drawing.Color.DimGray;
|
||||
this.rtbLog.HideSelection = false;
|
||||
this.rtbLog.Location = new System.Drawing.Point(269, 66);
|
||||
this.rtbLog.Name = "rtbLog";
|
||||
this.rtbLog.ReadOnly = true;
|
||||
this.rtbLog.Size = new System.Drawing.Size(292, 264);
|
||||
this.rtbLog.TabIndex = 138;
|
||||
this.rtbLog.Text = resources.GetString("rtbLog.Text");
|
||||
//
|
||||
// btnMenuGripperBar
|
||||
//
|
||||
this.btnMenuGripperBar.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnMenuGripperBar.BackColor = System.Drawing.Color.GhostWhite;
|
||||
this.btnMenuGripperBar.FlatAppearance.BorderSize = 0;
|
||||
this.btnMenuGripperBar.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Plum;
|
||||
this.btnMenuGripperBar.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnMenuGripperBar.Font = new System.Drawing.Font("Segoe Fluent Icons", 14F);
|
||||
this.btnMenuGripperBar.ForeColor = System.Drawing.Color.DeepPink;
|
||||
this.btnMenuGripperBar.Location = new System.Drawing.Point(5, 265);
|
||||
this.btnMenuGripperBar.Name = "btnMenuGripperBar";
|
||||
this.btnMenuGripperBar.Size = new System.Drawing.Size(43, 39);
|
||||
this.btnMenuGripperBar.TabIndex = 220;
|
||||
this.btnMenuGripperBar.Text = "|";
|
||||
this.tt.SetToolTip(this.btnMenuGripperBar, "Settings");
|
||||
this.btnMenuGripperBar.UseVisualStyleBackColor = false;
|
||||
this.btnMenuGripperBar.Click += new System.EventHandler(this.btnMenuGripperBar_Click);
|
||||
//
|
||||
// pnlNav
|
||||
//
|
||||
this.pnlNav.Controls.Add(this.btnMenuGripperBar);
|
||||
this.pnlNav.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.pnlNav.Location = new System.Drawing.Point(0, 0);
|
||||
this.pnlNav.Name = "pnlNav";
|
||||
this.pnlNav.Size = new System.Drawing.Size(49, 759);
|
||||
this.pnlNav.TabIndex = 209;
|
||||
//
|
||||
// contextMenu
|
||||
//
|
||||
this.contextMenu.BackColor = System.Drawing.Color.WhiteSmoke;
|
||||
this.contextMenu.Font = new System.Drawing.Font("Segoe UI Variable Text Semiligh", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.contextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.textHeaderApp,
|
||||
this.textHeaderExperience,
|
||||
this.cbProfiles,
|
||||
this.menuLoadProfile,
|
||||
this.menuExportProfile});
|
||||
this.contextMenu.Name = "menuMain";
|
||||
this.contextMenu.RenderMode = System.Windows.Forms.ToolStripRenderMode.System;
|
||||
this.contextMenu.Size = new System.Drawing.Size(261, 148);
|
||||
//
|
||||
// textHeaderApp
|
||||
//
|
||||
this.textHeaderApp.BackColor = System.Drawing.Color.WhiteSmoke;
|
||||
this.textHeaderApp.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.textHeaderApp.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.textHeaderApp.ForeColor = System.Drawing.Color.Gray;
|
||||
this.textHeaderApp.Margin = new System.Windows.Forms.Padding(1, 1, 1, 10);
|
||||
this.textHeaderApp.Name = "textHeaderApp";
|
||||
this.textHeaderApp.Size = new System.Drawing.Size(100, 16);
|
||||
this.textHeaderApp.Text = "Profiles";
|
||||
//
|
||||
// textHeaderExperience
|
||||
//
|
||||
this.textHeaderExperience.BackColor = System.Drawing.Color.WhiteSmoke;
|
||||
this.textHeaderExperience.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.textHeaderExperience.Font = new System.Drawing.Font("Segoe UI", 9F);
|
||||
this.textHeaderExperience.ForeColor = System.Drawing.Color.Orchid;
|
||||
this.textHeaderExperience.Name = "textHeaderExperience";
|
||||
this.textHeaderExperience.Size = new System.Drawing.Size(200, 16);
|
||||
this.textHeaderExperience.Text = "Choose Experience profile";
|
||||
//
|
||||
// cbProfiles
|
||||
//
|
||||
this.cbProfiles.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.cbProfiles.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
|
||||
this.cbProfiles.Font = new System.Drawing.Font("Segoe UI Variable Text", 9.75F);
|
||||
this.cbProfiles.Name = "cbProfiles";
|
||||
this.cbProfiles.Size = new System.Drawing.Size(200, 25);
|
||||
//
|
||||
// menuLoadProfile
|
||||
//
|
||||
this.menuLoadProfile.Font = new System.Drawing.Font("Segoe UI Variable Text Semibold", 10F, System.Drawing.FontStyle.Bold);
|
||||
this.menuLoadProfile.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.menuLoadProfile.Name = "menuLoadProfile";
|
||||
this.menuLoadProfile.Size = new System.Drawing.Size(260, 24);
|
||||
this.menuLoadProfile.Text = "Load Profile";
|
||||
this.menuLoadProfile.Click += new System.EventHandler(this.menuLoadProfile_Click);
|
||||
//
|
||||
// menuExportProfile
|
||||
//
|
||||
this.menuExportProfile.Font = new System.Drawing.Font("Segoe UI Variable Text", 10F);
|
||||
this.menuExportProfile.Name = "menuExportProfile";
|
||||
this.menuExportProfile.Size = new System.Drawing.Size(260, 24);
|
||||
this.menuExportProfile.Text = "Export Profile";
|
||||
this.menuExportProfile.Click += new System.EventHandler(this.menuExportProfile_Click);
|
||||
//
|
||||
// NosyPageView
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.pnlNav);
|
||||
this.Controls.Add(this.sc);
|
||||
this.Name = "NosyPageView";
|
||||
this.Size = new System.Drawing.Size(942, 759);
|
||||
this.sc.Panel1.ResumeLayout(false);
|
||||
this.sc.Panel1.PerformLayout();
|
||||
this.sc.Panel2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.sc)).EndInit();
|
||||
this.sc.ResumeLayout(false);
|
||||
this.pnlNav.ResumeLayout(false);
|
||||
this.contextMenu.ResumeLayout(false);
|
||||
this.contextMenu.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
internal System.Windows.Forms.TreeView tvwFeatures;
|
||||
public System.Windows.Forms.SplitContainer sc;
|
||||
private System.Windows.Forms.ProgressBar progress;
|
||||
private System.Windows.Forms.Button btnApply;
|
||||
private System.Windows.Forms.Button btnRestore;
|
||||
private System.Windows.Forms.Panel pnlNav;
|
||||
private System.Windows.Forms.LinkLabel lnkStatus;
|
||||
private System.Windows.Forms.Button btnAnalyze;
|
||||
private System.Windows.Forms.RichTextBox rtbLog;
|
||||
internal System.Windows.Forms.TreeView tvwFeaturesBin;
|
||||
private System.Windows.Forms.Button btnRemoveAll;
|
||||
private System.Windows.Forms.Button btnRemove;
|
||||
private System.Windows.Forms.Button btnAddAll;
|
||||
private System.Windows.Forms.Button btnAdd;
|
||||
private System.Windows.Forms.LinkLabel lnkAppBloatpilot;
|
||||
private System.Windows.Forms.ToolTip tt;
|
||||
private System.Windows.Forms.ContextMenuStrip contextMenu;
|
||||
private System.Windows.Forms.ToolStripTextBox textHeaderApp;
|
||||
private System.Windows.Forms.Button btnMenuGripperBar;
|
||||
private System.Windows.Forms.ToolStripTextBox textHeaderExperience;
|
||||
private System.Windows.Forms.ToolStripComboBox cbProfiles;
|
||||
private System.Windows.Forms.ToolStripMenuItem menuLoadProfile;
|
||||
private System.Windows.Forms.ToolStripMenuItem menuExportProfile;
|
||||
private System.Windows.Forms.Button btnLoadProfile;
|
||||
private ToggleSwitch checkLoadPlugins;
|
||||
private System.Windows.Forms.Label label1;
|
||||
}
|
||||
}
|
@ -1,768 +0,0 @@
|
||||
using Bloatynosy.ITreeNode;
|
||||
using Features.Feature;
|
||||
using HelperTool;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
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.Views
|
||||
{
|
||||
public partial class NosyPageView : UserControl
|
||||
{
|
||||
private MainForm mainForm;
|
||||
private static readonly ErrorHelper logger = ErrorHelper.Instance;
|
||||
private int progression = 0;
|
||||
private int progressionIncrease = 0;
|
||||
|
||||
// Store nodes that need to be removed in tvwFeatures
|
||||
private List<TreeNode> nodesToRemove = new List<TreeNode>();
|
||||
|
||||
public NosyPageView(MainForm mainForm)
|
||||
{
|
||||
InitializeComponent();
|
||||
this.mainForm = mainForm;
|
||||
this.SetStyle();
|
||||
this.SetProfile();
|
||||
|
||||
// Switch between default and plugin features
|
||||
if (checkLoadPlugins.Checked)
|
||||
{
|
||||
this.LoadPluginFeatures();
|
||||
}
|
||||
else
|
||||
{
|
||||
this.AddDefaultFeatures();
|
||||
}
|
||||
}
|
||||
|
||||
private void SetStyle()
|
||||
{
|
||||
// Segoe MDL2 Assets
|
||||
btnMenuGripperBar.Text = "\uE784";
|
||||
btnAdd.Text = "\uE948";
|
||||
btnRemove.Text = "\uE921";
|
||||
btnAddAll.Text = "\uE76C";
|
||||
btnRemoveAll.Text = "\uE76B";
|
||||
btnLoadProfile.Text = "\uE71C";
|
||||
// Some color styling
|
||||
pnlNav.BackColor = Color.FromArgb(245, 241, 249);
|
||||
BackColor =
|
||||
sc.Panel1.BackColor =
|
||||
sc.Panel2.BackColor =
|
||||
rtbLog.BackColor = Color.FromArgb(243, 243, 243);
|
||||
// Log messages to target richLog
|
||||
logger.SetTarget(rtbLog);
|
||||
// Dynamically set OS information
|
||||
rtbLog.Text = $"Move all unwanted features of your Windows 11 {OsHelper.GetVersion()} " +
|
||||
"you don't plan to use on your device within Microsoft experiences to the right trash bin." +
|
||||
"\n\nYou can always revert these settings to default (except bloatware).";
|
||||
// Dynamically add trash bin text to right (bin) Treeview structure
|
||||
TreeNode binNode = new TreeNode("Trash bin ");
|
||||
tvwFeaturesBin.Nodes.Add(binNode);
|
||||
tvwFeaturesBin.Nodes[0].NodeFont = new Font(tvwFeaturesBin.Font, FontStyle.Bold);
|
||||
}
|
||||
|
||||
private void SetProfile()
|
||||
{
|
||||
cbProfiles.Items.Clear();
|
||||
cbProfiles.Items.Insert(0, "Select profile");
|
||||
cbProfiles.SelectedIndex = 0;
|
||||
|
||||
try
|
||||
{
|
||||
string[] files = Directory.GetFiles(HelperTool.Utils.Data.DataRootDir, "*.bloos");
|
||||
cbProfiles.Items.AddRange(files.Select((string filePath) => Path.GetFileNameWithoutExtension(filePath)).ToArray());
|
||||
}
|
||||
catch { cbProfiles.Text = "No profiles found."; }
|
||||
}
|
||||
|
||||
public 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;
|
||||
}
|
||||
|
||||
public void AddDefaultFeatures()
|
||||
{
|
||||
tvwFeatures.Nodes.Clear();
|
||||
tvwFeatures.BeginUpdate();
|
||||
|
||||
// Root node
|
||||
TreeNode root = new TreeNode("Windows settings ")
|
||||
{
|
||||
Checked = true,
|
||||
};
|
||||
|
||||
TreeNode browser = new TreeNode("Browser", new TreeNode[] {
|
||||
new FeatureNode(new Features.Feature.Browser.EdgeBingAIButton()),
|
||||
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.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.Copilot()),
|
||||
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()),
|
||||
new FeatureNode(new Features.Feature.Taskbar.StartmenuSearch()),
|
||||
})
|
||||
{
|
||||
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()),
|
||||
})
|
||||
{
|
||||
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.AppsAutoInstall()),
|
||||
new FeatureNode(new Features.Feature.Privacy.WindowsTips()),
|
||||
new FeatureNode(new Features.Feature.Privacy.TailoredExperiences()),
|
||||
new FeatureNode(new Features.Feature.Privacy.BackgroundApps()),
|
||||
})
|
||||
{
|
||||
Checked = true
|
||||
};
|
||||
|
||||
TreeNode bloatware = new TreeNode("Bloatware", new TreeNode[] {
|
||||
new FeatureNode(new Features.Feature.Bloatware.StoreApps()),
|
||||
new FeatureNode(new Features.Feature.Bloatware.StoreAppsPrivate()),
|
||||
new FeatureNode(new Features.Feature.Bloatware.OneDriveRemove()),
|
||||
})
|
||||
{
|
||||
Checked = true,
|
||||
};
|
||||
|
||||
root.Nodes.AddRange(new TreeNode[]
|
||||
{
|
||||
browser,
|
||||
explorer,
|
||||
desktop,
|
||||
taskbar,
|
||||
system,
|
||||
gaming,
|
||||
privacy,
|
||||
bloatware,
|
||||
});
|
||||
|
||||
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 List<string> AddPluginFeatures(string directory)
|
||||
{
|
||||
List<string> pluginFiles = new List<string>();
|
||||
|
||||
try
|
||||
{
|
||||
// Get all PowerShell script files (*.ps1) in Plugins directory
|
||||
string[] files = Directory.GetFiles(directory, "*.ps1", SearchOption.AllDirectories);
|
||||
|
||||
foreach (string file in files)
|
||||
{
|
||||
// Add script file path to list
|
||||
pluginFiles.Add(file);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger.Log("Error searching for Plugin files: " + ex.Message);
|
||||
}
|
||||
|
||||
return pluginFiles;
|
||||
}
|
||||
|
||||
private void tvwFeatures_AfterCheck(object sender, TreeViewEventArgs e)
|
||||
{
|
||||
tvwFeatures.BeginUpdate();
|
||||
|
||||
foreach (TreeNode child in e.Node.Nodes)
|
||||
{
|
||||
child.Checked = e.Node.Checked;
|
||||
}
|
||||
|
||||
tvwFeatures.EndUpdate();
|
||||
}
|
||||
|
||||
private void tvwFeatures_AfterSelect(object sender, TreeViewEventArgs e)
|
||||
{
|
||||
if (e.Node is FeatureNode featureNode)
|
||||
{
|
||||
logger.ClearLog();
|
||||
logger.Log(featureNode.GetFeatureInfo());
|
||||
}
|
||||
}
|
||||
|
||||
public void SelectFeatureNodes(TreeNodeCollection trNodeCollection, bool isCheck)
|
||||
{
|
||||
foreach (TreeNode trNode in trNodeCollection)
|
||||
{
|
||||
trNode.Checked = isCheck;
|
||||
if (trNode.Nodes.Count > 0)
|
||||
SelectFeatureNodes(trNode.Nodes, isCheck);
|
||||
}
|
||||
}
|
||||
|
||||
private void ResetColorNode(TreeNodeCollection nodes, Color Color)
|
||||
{
|
||||
foreach (System.Windows.Forms.TreeNode child in nodes)
|
||||
{
|
||||
child.BackColor = Color;
|
||||
if (child.Nodes != null && child.Nodes.Count > 0)
|
||||
ResetColorNode(child.Nodes, Color);
|
||||
}
|
||||
}
|
||||
|
||||
private void btnRestore_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (MessageBox.Show("Do you want to restore selected fixes to Windows default state?", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
|
||||
{
|
||||
Reset();
|
||||
|
||||
List<FeatureNode> performNodes = CollectFeatureNodes(tvwFeaturesBin);
|
||||
UndoFeatures(performNodes);
|
||||
}
|
||||
}
|
||||
|
||||
private async void btnApply_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (MessageBox.Show("Do you want to apply selected fixes?", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
|
||||
{
|
||||
Reset();
|
||||
|
||||
// Apply regular features
|
||||
List<FeatureNode> regularFeatureNodes = CollectFeatureNodes(tvwFeaturesBin);
|
||||
ApplyFeatures(regularFeatureNodes);
|
||||
|
||||
// Apply plugin features
|
||||
List<TreeNode> checkedPluginNodes = GetSelectedPluginNodes(tvwFeatures);
|
||||
await ApplyPlugins(checkedPluginNodes);
|
||||
}
|
||||
}
|
||||
|
||||
// Retrieve checked nodes from the tvwFeatures in Plugins mode
|
||||
private List<TreeNode> GetSelectedPluginNodes(TreeView treeView)
|
||||
{
|
||||
List<TreeNode> checkedNodes = new List<TreeNode>();
|
||||
|
||||
foreach (TreeNode rootNode in treeView.Nodes)
|
||||
{
|
||||
if (rootNode.Text == "Plugins")
|
||||
{
|
||||
foreach (TreeNode pluginNode in rootNode.Nodes)
|
||||
{
|
||||
if (pluginNode.Checked)
|
||||
{
|
||||
checkedNodes.Add(pluginNode);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return checkedNodes;
|
||||
}
|
||||
|
||||
private void LoadPluginFeatures()
|
||||
{
|
||||
// Clear existing nodes
|
||||
tvwFeatures.Nodes.Clear();
|
||||
|
||||
// Load plugins
|
||||
List<string> pluginFiles = AddPluginFeatures(HelperTool.Utils.Data.PluginsRootDir);
|
||||
|
||||
if (pluginFiles.Count > 0)
|
||||
{
|
||||
// Create node for the plugins
|
||||
TreeNode pluginsNode = new TreeNode("Plugins");
|
||||
|
||||
// Add PowerShell plugin files to the plugins node
|
||||
foreach (string pluginFile in pluginFiles)
|
||||
{
|
||||
string fileName = Path.GetFileNameWithoutExtension(pluginFile);
|
||||
pluginsNode.Nodes.Add(new TreeNode(fileName));
|
||||
}
|
||||
|
||||
// Add plugins node to the root node
|
||||
tvwFeatures.Nodes.Add(pluginsNode);
|
||||
}
|
||||
|
||||
// Some tvw nicety
|
||||
foreach (TreeNode tn in tvwFeatures.Nodes) { tn.Expand(); }
|
||||
}
|
||||
|
||||
private async Task ApplyPlugins(List<TreeNode> pluginNodes)
|
||||
{
|
||||
foreach (TreeNode selectedPluginNode in pluginNodes)
|
||||
{
|
||||
string pluginFilePath = Path.Combine(HelperTool.Utils.Data.PluginsRootDir, selectedPluginNode.Text + ".ps1");
|
||||
|
||||
try
|
||||
{
|
||||
// Call WindowsHelper > RunPowerShellScriptAsync
|
||||
logger.Log($"Running plugin {selectedPluginNode.Text}...");
|
||||
await WindowsHelper.RunPowerShellScript(pluginFilePath);
|
||||
logger.Log($"- Running with plugin {selectedPluginNode.Text} [Done]");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger.Log(ex.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
lnkStatus.Text = "Fixing " + node.Text;
|
||||
|
||||
var result = await performTask;
|
||||
IncrementProgress();
|
||||
}
|
||||
|
||||
DoProgress(100);
|
||||
lnkStatus.Text = "Fixing completed.";
|
||||
|
||||
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);
|
||||
|
||||
lnkStatus.Text = "Restore " + node.Text;
|
||||
|
||||
var result = await performTask;
|
||||
IncrementProgress();
|
||||
}
|
||||
|
||||
DoProgress(100);
|
||||
lnkStatus.Text = "Undo completed.";
|
||||
|
||||
tvwFeatures.Enabled = true;
|
||||
}
|
||||
|
||||
private List<FeatureNode> CollectFeatureNodes(TreeView treeView)
|
||||
{
|
||||
List<FeatureNode> nodes = new List<FeatureNode>();
|
||||
|
||||
// Iterate through each top-level node in the TreeView
|
||||
foreach (TreeNode rootNode in treeView.Nodes)
|
||||
{
|
||||
// Recursively collect nodes and child nodes
|
||||
CollectNodesRecursively(rootNode, nodes);
|
||||
}
|
||||
|
||||
return nodes;
|
||||
}
|
||||
|
||||
private void CollectNodesRecursively(TreeNode parentNode, List<FeatureNode> nodes)
|
||||
{
|
||||
// Assuming FeatureNode is actual type of nodes we are working with
|
||||
if (parentNode is FeatureNode featureNode)
|
||||
{
|
||||
nodes.Add(featureNode);
|
||||
}
|
||||
|
||||
// Recursively collect child nodes
|
||||
foreach (TreeNode childNode in parentNode.Nodes)
|
||||
{
|
||||
CollectNodesRecursively(childNode, nodes);
|
||||
}
|
||||
}
|
||||
|
||||
private async void btnAnalyze_Click(object sender, EventArgs e)
|
||||
{
|
||||
// Check if empty
|
||||
if (tvwFeaturesBin.Nodes.Count == 1)
|
||||
{
|
||||
MessageBox.Show("The trash bin is empty.\n\nUnwanted features must be moved to the trash bin before analysis. Afterward, we can provide recommendations.", "Cutting-Edge Assistant", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
return;
|
||||
}
|
||||
|
||||
Reset();
|
||||
btnApply.Enabled = false;
|
||||
int performFeaturesCount = 0;
|
||||
|
||||
// Collect feature nodes from the right TreeView
|
||||
List<FeatureNode> analyzedFeatures = CollectFeatureNodes(tvwFeaturesBin);
|
||||
// Console.WriteLine($"Number of nodes collected for analysis: {analyzedFeatures.Count}");
|
||||
|
||||
foreach (FeatureNode node in analyzedFeatures)
|
||||
{
|
||||
var feature = node.Feature;
|
||||
|
||||
// Console.WriteLine($"Collected node: {node.Text}");
|
||||
|
||||
ConfiguredTaskAwaitable<bool> analyzeTask = Task<bool>.Factory.StartNew(() => feature.CheckFeature()).ConfigureAwait(true);
|
||||
|
||||
bool shouldPerform = await analyzeTask;
|
||||
|
||||
lnkStatus.Text = "Check " + feature.ID();
|
||||
|
||||
// logger.Log($"Analyzing feature: {feature.ID()}, shouldPerform: {shouldPerform}, node.Text: {node.Text}");
|
||||
|
||||
if (shouldPerform)
|
||||
{
|
||||
logger.Log(feature.ID());
|
||||
performFeaturesCount += 1;
|
||||
node.ForeColor = Color.MediumVioletRed;
|
||||
}
|
||||
else
|
||||
{
|
||||
node.ForeColor = Color.Gray;
|
||||
}
|
||||
}
|
||||
|
||||
DoProgress(100);
|
||||
|
||||
StringBuilder sum = new StringBuilder();
|
||||
sum.Append(Environment.NewLine);
|
||||
sum.Append($"We've checked {analyzedFeatures.Count} features.\r\n");
|
||||
sum.Append($"We recommend to disable {performFeaturesCount} of these features (highlighted in color).\r\n");
|
||||
|
||||
logger.Log(sum.ToString(), "");
|
||||
btnApply.Enabled = true;
|
||||
lnkStatus.Text = $"There are {performFeaturesCount} features which require your attention.\r\n";
|
||||
}
|
||||
|
||||
private void btnAdd_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (tvwFeatures.SelectedNode != null)
|
||||
{
|
||||
// Add everyrthing if root node to Tree structure
|
||||
if (tvwFeatures.SelectedNode.Level == 0)
|
||||
{
|
||||
btnAddAll.PerformClick();
|
||||
}
|
||||
else
|
||||
{
|
||||
// Add single nodes
|
||||
AddNodeToRight(tvwFeatures.SelectedNode);
|
||||
|
||||
// Add selected node and its child nodes to right Tree structure
|
||||
AddAllChildNodesToRight(tvwFeatures.SelectedNode);
|
||||
|
||||
// Analyze directly
|
||||
btnAnalyze.PerformClick();
|
||||
|
||||
// When we remove a node, the collection is modified, and this can interfere with iteration. Therefor I've added this
|
||||
RemoveNodesFromLeft();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void AddNodeToRight(TreeNode node)
|
||||
{
|
||||
if (node is FeatureNode featureNode)
|
||||
{
|
||||
// Create new FeatureNode using FeatureBase from selected node
|
||||
FeatureNode newFeatureNode = new FeatureNode(featureNode.Feature);
|
||||
|
||||
// Set Tag property to original parent node
|
||||
newFeatureNode.Tag = featureNode.Parent;
|
||||
|
||||
// Add new FeatureNode to right TreeView
|
||||
tvwFeaturesBin.Nodes.Add(newFeatureNode);
|
||||
|
||||
// Add original FeatureNode to removal list
|
||||
nodesToRemove.Add(featureNode);
|
||||
}
|
||||
}
|
||||
|
||||
private void RemoveNodesFromLeft()
|
||||
{
|
||||
foreach (var node in nodesToRemove)
|
||||
{
|
||||
tvwFeatures.Nodes.Remove(node);
|
||||
}
|
||||
|
||||
// Clear list after removal
|
||||
nodesToRemove.Clear();
|
||||
}
|
||||
|
||||
private void AddAllChildNodesToRight(TreeNode parentNode)
|
||||
{
|
||||
foreach (TreeNode childNode in parentNode.Nodes)
|
||||
{
|
||||
AddNodeToRight(childNode);
|
||||
|
||||
// Recursively process child nodes
|
||||
AddAllChildNodesToRight(childNode);
|
||||
}
|
||||
}
|
||||
|
||||
private void AddAll(TreeNodeCollection nodes)
|
||||
{
|
||||
foreach (TreeNode node in nodes.Cast<TreeNode>().ToArray())
|
||||
{
|
||||
if (node is FeatureNode featureNode)
|
||||
{
|
||||
// Create new FeatureNode using FeatureBase the selected node
|
||||
FeatureNode newFeatureNode = new FeatureNode(featureNode.Feature);
|
||||
|
||||
// Set Tag property to original parent node
|
||||
newFeatureNode.Tag = featureNode.Parent;
|
||||
|
||||
// Add new FeatureNode to left TreeView
|
||||
tvwFeaturesBin.Nodes.Add(newFeatureNode);
|
||||
|
||||
// Remove FeatureNode from left TreeView
|
||||
tvwFeatures.Nodes.Remove(featureNode);
|
||||
}
|
||||
else
|
||||
{
|
||||
//Console.WriteLine($"Skipped node of type: {node.GetType().Name}");
|
||||
}
|
||||
|
||||
// Recursively process child nodes
|
||||
AddAll(node.Nodes);
|
||||
}
|
||||
}
|
||||
|
||||
private void btnAddAll_Click(object sender, EventArgs e)
|
||||
{
|
||||
AddAll(tvwFeatures.Nodes);
|
||||
}
|
||||
|
||||
private void btnRemove_Click(object sender, EventArgs e)
|
||||
{
|
||||
// Check if node is selected in right Tree structure
|
||||
if (tvwFeaturesBin.SelectedNode is FeatureNode selectedFeatureNode)
|
||||
{
|
||||
// Retrieve original parent node from Tag property
|
||||
if (selectedFeatureNode.Tag is TreeNode originalParentNode)
|
||||
{
|
||||
// Create new FeatureNode using FeatureBase from selected node
|
||||
FeatureNode newFeatureNode = new FeatureNode(selectedFeatureNode.Feature);
|
||||
|
||||
// Add new FeatureNode to original parent node
|
||||
originalParentNode.Nodes.Add(newFeatureNode);
|
||||
|
||||
// Remove FeatureNode from right Tree stucture
|
||||
tvwFeaturesBin.Nodes.Remove(selectedFeatureNode);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void btnRemoveAll_Click(object sender, EventArgs e)
|
||||
{
|
||||
foreach (FeatureNode node in tvwFeaturesBin.Nodes.OfType<FeatureNode>().ToList())
|
||||
{
|
||||
// Retrieve original parent node from Tag property
|
||||
if (node.Tag is TreeNode originalParentNode)
|
||||
{
|
||||
// Create new FeatureNode using FeatureBase from selected node
|
||||
FeatureNode newFeatureNode = new FeatureNode(node.Feature);
|
||||
|
||||
// Add new FeatureNode to original parent node on left
|
||||
originalParentNode.Nodes.Add(newFeatureNode);
|
||||
|
||||
// Remove FeatureNode from right Tree stucture
|
||||
tvwFeaturesBin.Nodes.Remove(node);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void menuLoadProfile_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
string filePath = HelperTool.Utils.Data.DataRootDir + "\\" + cbProfiles.Text + ".bloos";
|
||||
|
||||
ResetColorNode(tvwFeatures.Nodes, Color.White);
|
||||
SelectFeatureNodes(tvwFeatures.Nodes, false);
|
||||
tvwFeatures.ExpandAll();
|
||||
tvwFeatures.Nodes[0].EnsureVisible();
|
||||
|
||||
try
|
||||
{
|
||||
using (StreamReader reader = new StreamReader(filePath))
|
||||
{
|
||||
while (!reader.EndOfStream)
|
||||
{
|
||||
string line = reader.ReadLine();
|
||||
foreach (System.Windows.Forms.TreeNode treeNode in tvwFeatures.Nodes.All())
|
||||
{
|
||||
if (treeNode.Text.Contains(line))
|
||||
{
|
||||
treeNode.BackColor = Color.Yellow;
|
||||
treeNode.Checked = true;
|
||||
tvwFeatures.SelectedNode = treeNode;
|
||||
|
||||
// Add marked feature to tvwFeatureBin
|
||||
AddNodeToRight(treeNode);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (new FileInfo(filePath).Length == 0) logger.Log("- Empty configuration loaded.");
|
||||
}
|
||||
|
||||
btnAnalyze.PerformClick();
|
||||
logger.Log($"[{cbProfiles.Text} has been successfully loaded].\nWe have highlighted the configuration that would be enabled (no changes are done yet).");
|
||||
}
|
||||
catch { { MessageBox.Show("No profile selected."); } }
|
||||
}
|
||||
|
||||
private void menuExportProfile_Click(object sender, EventArgs e)
|
||||
{
|
||||
SaveFileDialog f = new SaveFileDialog();
|
||||
f.InitialDirectory = HelperTool.Utils.Data.DataRootDir;
|
||||
f.FileName = "Bloatynosy-profile";
|
||||
f.Filter = "Bloatynosy files *.bloos|*.bloos";
|
||||
|
||||
if (f.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
using (StreamWriter writer = new StreamWriter(f.OpenFile()))
|
||||
{
|
||||
foreach (TreeNode treeNode in tvwFeaturesBin.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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void lnkStatus_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
{
|
||||
// Extract summary from Status text
|
||||
string summary = lnkStatus.Text.Replace("======= Summary =======", "").Trim();
|
||||
|
||||
DialogResult result = MessageBox.Show(
|
||||
"Summary of problems:\n" + summary + "\n\nDo you want to ask the community for advice on applying these changes?",
|
||||
"Analysis advice",
|
||||
MessageBoxButtons.YesNo,
|
||||
MessageBoxIcon.Question
|
||||
);
|
||||
|
||||
if (result == DialogResult.Yes)
|
||||
{
|
||||
Process.Start(HelperTool.Utils.Uri.URL_HELP);
|
||||
}
|
||||
}
|
||||
|
||||
private void btnLoadProfile_Click(object sender, EventArgs e)
|
||||
=> this.contextMenu.Show(Cursor.Position.X, Cursor.Position.Y);
|
||||
|
||||
private void lnkAppBloatpilot_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
=> ViewHelper.SwitchView.SetView(new BloatyPageView());
|
||||
|
||||
private void btnMenuGripperBar_Click(object sender, EventArgs e)
|
||||
=> ViewHelper.SwitchView.SetView(new SettingsPageView(mainForm));
|
||||
|
||||
private void tvwFeatures_DoubleClick(object sender, EventArgs e)
|
||||
=> btnAdd_Click(sender, e);
|
||||
|
||||
private void tvwFeaturesBin_DoubleClick(object sender, EventArgs e)
|
||||
=> btnRemove_Click(sender, e);
|
||||
|
||||
private void checkLoadPlugins_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
// Reload features based on new state of the "Load plugins" checkbox
|
||||
if (checkLoadPlugins.Checked)
|
||||
{
|
||||
tvwFeatures.CheckBoxes = true;
|
||||
this.LoadPluginFeatures();
|
||||
}
|
||||
else
|
||||
{
|
||||
tvwFeatures.CheckBoxes = false;
|
||||
this.AddDefaultFeatures();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,129 +0,0 @@
|
||||
<?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="tt.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>175, 17</value>
|
||||
</metadata>
|
||||
<data name="rtbLog.Text" xml:space="preserve">
|
||||
<value>Move all unwanted feaures of Windows 11 you don't plan to use your device to get personalized tip, ads, recommendation within Microsoft expericences. You can always revert these settings to default (except bloatware).</value>
|
||||
</data>
|
||||
<metadata name="contextMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>26, 16</value>
|
||||
</metadata>
|
||||
</root>
|
273
src/BloatyNosyAI/Views/PackagesPageView.Designer.cs
generated
273
src/BloatyNosyAI/Views/PackagesPageView.Designer.cs
generated
@ -1,273 +0,0 @@
|
||||
namespace Bloatynosy.Views
|
||||
{
|
||||
partial class PackagesPageView
|
||||
{
|
||||
/// <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 Komponenten-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.btnRemoveAll = new System.Windows.Forms.Button();
|
||||
this.listLocal = new System.Windows.Forms.ListBox();
|
||||
this.btnRemove = new System.Windows.Forms.Button();
|
||||
this.btnAddAll = new System.Windows.Forms.Button();
|
||||
this.btnAdd = new System.Windows.Forms.Button();
|
||||
this.btnBack = new System.Windows.Forms.Button();
|
||||
this.textSearch = new System.Windows.Forms.TextBox();
|
||||
this.lblRemote = new System.Windows.Forms.Label();
|
||||
this.listRemote = new System.Windows.Forms.ListBox();
|
||||
this.richStatus = new System.Windows.Forms.RichTextBox();
|
||||
this.lblHeader = new System.Windows.Forms.Label();
|
||||
this.lblLocal = new System.Windows.Forms.Label();
|
||||
this.btnInstall = new System.Windows.Forms.Button();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// btnRemoveAll
|
||||
//
|
||||
this.btnRemoveAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnRemoveAll.AutoEllipsis = true;
|
||||
this.btnRemoveAll.Font = new System.Drawing.Font("Segoe UI Variable Text", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnRemoveAll.ForeColor = System.Drawing.Color.Black;
|
||||
this.btnRemoveAll.Location = new System.Drawing.Point(436, 405);
|
||||
this.btnRemoveAll.Name = "btnRemoveAll";
|
||||
this.btnRemoveAll.Size = new System.Drawing.Size(239, 23);
|
||||
this.btnRemoveAll.TabIndex = 45;
|
||||
this.btnRemoveAll.Text = "<< Remove all";
|
||||
this.btnRemoveAll.UseVisualStyleBackColor = true;
|
||||
this.btnRemoveAll.Click += new System.EventHandler(this.btnRemoveAll_Click);
|
||||
//
|
||||
// listLocal
|
||||
//
|
||||
this.listLocal.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.listLocal.BackColor = System.Drawing.Color.White;
|
||||
this.listLocal.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.listLocal.Font = new System.Drawing.Font("Segoe UI Variable Text Semiligh", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.listLocal.FormattingEnabled = true;
|
||||
this.listLocal.ItemHeight = 17;
|
||||
this.listLocal.Location = new System.Drawing.Point(823, 107);
|
||||
this.listLocal.Name = "listLocal";
|
||||
this.listLocal.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
|
||||
this.listLocal.Size = new System.Drawing.Size(270, 646);
|
||||
this.listLocal.Sorted = true;
|
||||
this.listLocal.TabIndex = 13;
|
||||
//
|
||||
// btnRemove
|
||||
//
|
||||
this.btnRemove.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnRemove.AutoEllipsis = true;
|
||||
this.btnRemove.Font = new System.Drawing.Font("Segoe UI Variable Text", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnRemove.ForeColor = System.Drawing.Color.Black;
|
||||
this.btnRemove.Location = new System.Drawing.Point(436, 376);
|
||||
this.btnRemove.Name = "btnRemove";
|
||||
this.btnRemove.Size = new System.Drawing.Size(239, 23);
|
||||
this.btnRemove.TabIndex = 43;
|
||||
this.btnRemove.Text = "< Remove";
|
||||
this.btnRemove.UseVisualStyleBackColor = true;
|
||||
this.btnRemove.Click += new System.EventHandler(this.btnRemove_Click);
|
||||
//
|
||||
// btnAddAll
|
||||
//
|
||||
this.btnAddAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnAddAll.AutoEllipsis = true;
|
||||
this.btnAddAll.Font = new System.Drawing.Font("Segoe UI Variable Text", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnAddAll.ForeColor = System.Drawing.Color.Black;
|
||||
this.btnAddAll.Location = new System.Drawing.Point(436, 293);
|
||||
this.btnAddAll.Name = "btnAddAll";
|
||||
this.btnAddAll.Size = new System.Drawing.Size(239, 23);
|
||||
this.btnAddAll.TabIndex = 46;
|
||||
this.btnAddAll.Text = "Add all >>";
|
||||
this.btnAddAll.Click += new System.EventHandler(this.btnAddAll_Click);
|
||||
//
|
||||
// btnAdd
|
||||
//
|
||||
this.btnAdd.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnAdd.AutoEllipsis = true;
|
||||
this.btnAdd.Font = new System.Drawing.Font("Segoe UI Variable Text", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnAdd.ForeColor = System.Drawing.Color.Black;
|
||||
this.btnAdd.Location = new System.Drawing.Point(436, 264);
|
||||
this.btnAdd.Name = "btnAdd";
|
||||
this.btnAdd.Size = new System.Drawing.Size(239, 23);
|
||||
this.btnAdd.TabIndex = 42;
|
||||
this.btnAdd.Text = "Add >";
|
||||
this.btnAdd.UseVisualStyleBackColor = true;
|
||||
this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click);
|
||||
//
|
||||
// btnBack
|
||||
//
|
||||
this.btnBack.FlatAppearance.BorderSize = 0;
|
||||
this.btnBack.FlatAppearance.MouseOverBackColor = System.Drawing.Color.WhiteSmoke;
|
||||
this.btnBack.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnBack.Font = new System.Drawing.Font("Segoe Fluent Icons", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnBack.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.btnBack.Location = new System.Drawing.Point(3, 14);
|
||||
this.btnBack.Name = "btnBack";
|
||||
this.btnBack.Size = new System.Drawing.Size(42, 38);
|
||||
this.btnBack.TabIndex = 177;
|
||||
this.btnBack.Text = "...";
|
||||
this.btnBack.UseVisualStyleBackColor = true;
|
||||
this.btnBack.Click += new System.EventHandler(this.btnBack_Click);
|
||||
//
|
||||
// textSearch
|
||||
//
|
||||
this.textSearch.Anchor = System.Windows.Forms.AnchorStyles.Top;
|
||||
this.textSearch.BackColor = System.Drawing.Color.WhiteSmoke;
|
||||
this.textSearch.Font = new System.Drawing.Font("Segoe UI Variable Display", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.textSearch.ForeColor = System.Drawing.Color.Gray;
|
||||
this.textSearch.Location = new System.Drawing.Point(485, 66);
|
||||
this.textSearch.Name = "textSearch";
|
||||
this.textSearch.Size = new System.Drawing.Size(149, 25);
|
||||
this.textSearch.TabIndex = 180;
|
||||
this.textSearch.Text = "Search";
|
||||
this.textSearch.Click += new System.EventHandler(this.textSearch_Click);
|
||||
this.textSearch.TextChanged += new System.EventHandler(this.textSearch_TextChanged);
|
||||
//
|
||||
// lblRemote
|
||||
//
|
||||
this.lblRemote.AutoSize = true;
|
||||
this.lblRemote.Font = new System.Drawing.Font("Segoe UI Variable Display", 9.75F);
|
||||
this.lblRemote.ForeColor = System.Drawing.Color.Black;
|
||||
this.lblRemote.Location = new System.Drawing.Point(42, 70);
|
||||
this.lblRemote.Name = "lblRemote";
|
||||
this.lblRemote.Size = new System.Drawing.Size(54, 17);
|
||||
this.lblRemote.TabIndex = 186;
|
||||
this.lblRemote.Text = "Remote";
|
||||
//
|
||||
// listRemote
|
||||
//
|
||||
this.listRemote.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.listRemote.BackColor = System.Drawing.Color.White;
|
||||
this.listRemote.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.listRemote.Font = new System.Drawing.Font("Segoe UI Variable Text Semiligh", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.listRemote.FormattingEnabled = true;
|
||||
this.listRemote.ItemHeight = 17;
|
||||
this.listRemote.Location = new System.Drawing.Point(44, 99);
|
||||
this.listRemote.Name = "listRemote";
|
||||
this.listRemote.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
|
||||
this.listRemote.Size = new System.Drawing.Size(270, 629);
|
||||
this.listRemote.Sorted = true;
|
||||
this.listRemote.TabIndex = 13;
|
||||
//
|
||||
// richStatus
|
||||
//
|
||||
this.richStatus.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.richStatus.BackColor = System.Drawing.Color.White;
|
||||
this.richStatus.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.richStatus.Font = new System.Drawing.Font("Segoe UI Variable Text", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.richStatus.ForeColor = System.Drawing.Color.Black;
|
||||
this.richStatus.HideSelection = false;
|
||||
this.richStatus.Location = new System.Drawing.Point(823, 107);
|
||||
this.richStatus.Name = "richStatus";
|
||||
this.richStatus.ReadOnly = true;
|
||||
this.richStatus.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical;
|
||||
this.richStatus.Size = new System.Drawing.Size(270, 646);
|
||||
this.richStatus.TabIndex = 140;
|
||||
this.richStatus.Text = "";
|
||||
this.richStatus.Visible = false;
|
||||
//
|
||||
// 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 Semibold", 18.25F, System.Drawing.FontStyle.Bold);
|
||||
this.lblHeader.ForeColor = System.Drawing.Color.Black;
|
||||
this.lblHeader.Location = new System.Drawing.Point(286, 31);
|
||||
this.lblHeader.Name = "lblHeader";
|
||||
this.lblHeader.Size = new System.Drawing.Size(523, 32);
|
||||
this.lblHeader.TabIndex = 188;
|
||||
this.lblHeader.Text = "Packages";
|
||||
this.lblHeader.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// lblLocal
|
||||
//
|
||||
this.lblLocal.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.lblLocal.AutoSize = true;
|
||||
this.lblLocal.Font = new System.Drawing.Font("Segoe UI Variable Display", 9.75F);
|
||||
this.lblLocal.ForeColor = System.Drawing.Color.Black;
|
||||
this.lblLocal.Location = new System.Drawing.Point(820, 79);
|
||||
this.lblLocal.Name = "lblLocal";
|
||||
this.lblLocal.Size = new System.Drawing.Size(38, 17);
|
||||
this.lblLocal.TabIndex = 189;
|
||||
this.lblLocal.Text = "Local";
|
||||
//
|
||||
// btnInstall
|
||||
//
|
||||
this.btnInstall.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnInstall.BackColor = System.Drawing.Color.Orchid;
|
||||
this.btnInstall.FlatAppearance.BorderSize = 0;
|
||||
this.btnInstall.Font = new System.Drawing.Font("Segoe UI Variable Display", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnInstall.ForeColor = System.Drawing.Color.White;
|
||||
this.btnInstall.Location = new System.Drawing.Point(815, 34);
|
||||
this.btnInstall.Name = "btnInstall";
|
||||
this.btnInstall.Size = new System.Drawing.Size(181, 35);
|
||||
this.btnInstall.TabIndex = 191;
|
||||
this.btnInstall.Text = "Install packages";
|
||||
this.btnInstall.UseVisualStyleBackColor = false;
|
||||
this.btnInstall.Click += new System.EventHandler(this.btnInstall_Click);
|
||||
//
|
||||
// PackagesPageView
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
this.AutoScroll = true;
|
||||
this.BackColor = System.Drawing.Color.White;
|
||||
this.Controls.Add(this.btnInstall);
|
||||
this.Controls.Add(this.lblLocal);
|
||||
this.Controls.Add(this.lblHeader);
|
||||
this.Controls.Add(this.listRemote);
|
||||
this.Controls.Add(this.lblRemote);
|
||||
this.Controls.Add(this.textSearch);
|
||||
this.Controls.Add(this.btnBack);
|
||||
this.Controls.Add(this.btnRemove);
|
||||
this.Controls.Add(this.btnAdd);
|
||||
this.Controls.Add(this.richStatus);
|
||||
this.Controls.Add(this.listLocal);
|
||||
this.Controls.Add(this.btnAddAll);
|
||||
this.Controls.Add(this.btnRemoveAll);
|
||||
this.Name = "PackagesPageView";
|
||||
this.Size = new System.Drawing.Size(1107, 805);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
private System.Windows.Forms.Button btnRemoveAll;
|
||||
private System.Windows.Forms.ListBox listLocal;
|
||||
private System.Windows.Forms.Button btnRemove;
|
||||
private System.Windows.Forms.Button btnAddAll;
|
||||
private System.Windows.Forms.Button btnAdd;
|
||||
private System.Windows.Forms.Button btnBack;
|
||||
private System.Windows.Forms.TextBox textSearch;
|
||||
private System.Windows.Forms.Label lblRemote;
|
||||
private System.Windows.Forms.ListBox listRemote;
|
||||
public System.Windows.Forms.RichTextBox richStatus;
|
||||
private System.Windows.Forms.Label lblHeader;
|
||||
private System.Windows.Forms.Label lblLocal;
|
||||
private System.Windows.Forms.Button btnInstall;
|
||||
}
|
||||
}
|
@ -1,210 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Bloatynosy.Views
|
||||
{
|
||||
public partial class PackagesPageView : UserControl
|
||||
{
|
||||
private List<string> Packages = new List<string>();
|
||||
private List<string> remoteApps = new List<string>();
|
||||
|
||||
private string fPackagesLocal = HelperTool.Utils.Data.DataRootDir + "Packages.app";
|
||||
|
||||
public PackagesPageView()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
RequestPackagesRemote();
|
||||
listRemote.Items.AddRange(remoteApps.ToArray());
|
||||
|
||||
GetPackagesLocal();
|
||||
SetStyle();
|
||||
}
|
||||
|
||||
// Some UI nicety
|
||||
private void SetStyle()
|
||||
{
|
||||
// Segoe MDL2 Assets
|
||||
btnBack.Text = "\uE72B";
|
||||
// Some color styling
|
||||
BackColor =
|
||||
richStatus.BackColor =
|
||||
Color.FromArgb(245, 241, 249);
|
||||
}
|
||||
|
||||
public void RequestPackagesRemote()
|
||||
{
|
||||
try
|
||||
{
|
||||
var webRequest = WebRequest.Create(@"https://raw.githubusercontent.com/builtbybel/Bloatynosy/main/assets/packages.git");
|
||||
string app;
|
||||
|
||||
using (var response = webRequest.GetResponse())
|
||||
using (var content = response.GetResponseStream())
|
||||
using (var sr = new StreamReader(content))
|
||||
{
|
||||
while ((app = sr.ReadLine()) != null)
|
||||
{
|
||||
{
|
||||
if (!app.StartsWith("#") && (!string.IsNullOrEmpty(app)))
|
||||
{
|
||||
remoteApps.Add(app);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{ MessageBox.Show(ex.Message); }
|
||||
}
|
||||
|
||||
public void GetPackagesLocal()
|
||||
{
|
||||
if (File.Exists(fPackagesLocal))
|
||||
{
|
||||
string[] appsInstall = File.ReadAllLines(fPackagesLocal);
|
||||
|
||||
listRemote.Items.Clear();
|
||||
lblRemote.Text = "Offline packages";
|
||||
foreach (var currentApp in appsInstall)
|
||||
{
|
||||
if (!currentApp.StartsWith("#") && (!string.IsNullOrEmpty(currentApp)))
|
||||
{
|
||||
listRemote.Items.Add(currentApp.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
else return;
|
||||
}
|
||||
|
||||
private void textSearch_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
listRemote.Items.Clear();
|
||||
|
||||
foreach (string str in remoteApps)
|
||||
{
|
||||
if (str.IndexOf(textSearch.Text, 0, StringComparison.CurrentCultureIgnoreCase) != -1)
|
||||
{
|
||||
listRemote.Items.Add(str);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void btnAddAll_Click(object sender, EventArgs e)
|
||||
{
|
||||
foreach (var item in listRemote.Items)
|
||||
{
|
||||
listLocal.Items.Add(item);
|
||||
}
|
||||
listRemote.Items.Clear();
|
||||
RefreshPackages();
|
||||
}
|
||||
|
||||
private void btnAdd_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (listRemote.Items.Count != 0)
|
||||
{
|
||||
if (listRemote.SelectedItem == null) listRemote.SelectedIndex = 0;
|
||||
while (listRemote.SelectedItem != null)
|
||||
{
|
||||
listLocal.Items.Add(listRemote.SelectedItem);
|
||||
listRemote.Items.Remove(listRemote.SelectedItem);
|
||||
}
|
||||
RefreshPackages();
|
||||
}
|
||||
}
|
||||
|
||||
private void btnRemove_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (listLocal.Items.Count != 0)
|
||||
{
|
||||
if (listLocal.SelectedItem == null) listLocal.SelectedIndex = 0;
|
||||
while (listLocal.SelectedItem != null)
|
||||
{
|
||||
listRemote.Items.Add(listLocal.SelectedItem);
|
||||
listLocal.Items.Remove(listLocal.SelectedItem);
|
||||
}
|
||||
RefreshPackages();
|
||||
}
|
||||
}
|
||||
|
||||
private void btnRemoveAll_Click(object sender, EventArgs e)
|
||||
{
|
||||
foreach (var item in listLocal.Items)
|
||||
{
|
||||
listRemote.Items.Add(item);
|
||||
}
|
||||
listLocal.Items.Clear();
|
||||
RefreshPackages();
|
||||
}
|
||||
|
||||
public void WingetInstallPackage(string packageid)
|
||||
{
|
||||
var proc = new Process
|
||||
{
|
||||
StartInfo = new ProcessStartInfo
|
||||
{
|
||||
FileName = HelperTool.Utils.Paths.ShellPS,
|
||||
Arguments = "winget install --id " + packageid + " --silent --accept-source-agreements --accept-package-agreements",
|
||||
UseShellExecute = false,
|
||||
CreateNoWindow = true,
|
||||
}
|
||||
};
|
||||
|
||||
proc.Start();
|
||||
proc.WaitForExit();
|
||||
}
|
||||
|
||||
private void RefreshPackages()
|
||||
{
|
||||
if (listLocal.Items.Count == 0)
|
||||
{
|
||||
richStatus.Visible = true;
|
||||
listLocal.Visible = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
listLocal.Visible = true;
|
||||
richStatus.Visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
private async void btnInstall_Click(object sender, EventArgs e)
|
||||
{
|
||||
richStatus.Visible = true;
|
||||
listLocal.Visible = false;
|
||||
btnInstall.Enabled = false;
|
||||
|
||||
StringBuilder message = new StringBuilder();
|
||||
|
||||
foreach (string p in listLocal.Items)
|
||||
{
|
||||
Packages.Add(p);
|
||||
}
|
||||
|
||||
foreach (string p in Packages)
|
||||
{
|
||||
richStatus.Text += Environment.NewLine + "Installing -" + p;
|
||||
await Task.Run(() => WingetInstallPackage(p));
|
||||
}
|
||||
|
||||
lblLocal.Text = "The following apps have been installed";
|
||||
listLocal.Visible = true;
|
||||
btnInstall.Enabled = true;
|
||||
richStatus.Visible = false;
|
||||
}
|
||||
|
||||
private void btnBack_Click(object sender, EventArgs e)
|
||||
=> ViewHelper.SwitchView.SetMainFormAsView();
|
||||
|
||||
private void textSearch_Click(object sender, EventArgs e)
|
||||
=> textSearch.Text = "";
|
||||
}
|
||||
}
|
@ -1,120 +0,0 @@
|
||||
<?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>
|
||||
</root>
|
393
src/BloatyNosyAI/Views/SettingsPageView.Designer.cs
generated
393
src/BloatyNosyAI/Views/SettingsPageView.Designer.cs
generated
@ -1,393 +0,0 @@
|
||||
namespace Bloatynosy.Views
|
||||
{
|
||||
partial class SettingsPageView
|
||||
{
|
||||
/// <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 Komponenten-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()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SettingsPageView));
|
||||
this.btnBack = new System.Windows.Forms.Button();
|
||||
this.lblHeader = new System.Windows.Forms.Label();
|
||||
this.pnlMain = new System.Windows.Forms.Panel();
|
||||
this.btnGithub = new System.Windows.Forms.Button();
|
||||
this.lnkStargazers = new System.Windows.Forms.LinkLabel();
|
||||
this.lnkVoting = new System.Windows.Forms.LinkLabel();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.btnEditBloatESignature = new System.Windows.Forms.Button();
|
||||
this.btnOpenProfilesDir = new System.Windows.Forms.Button();
|
||||
this.btnOpenPluginsDir = new System.Windows.Forms.Button();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.btnURLDonate = new System.Windows.Forms.Button();
|
||||
this.btnAppPackages = new System.Windows.Forms.Button();
|
||||
this.btnAppWizard = new System.Windows.Forms.Button();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.lnkURLTwitter = new System.Windows.Forms.LinkLabel();
|
||||
this.lnkURLHelp = new System.Windows.Forms.LinkLabel();
|
||||
this.lnkURLDev = new System.Windows.Forms.LinkLabel();
|
||||
this.pnlMain.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// btnBack
|
||||
//
|
||||
this.btnBack.FlatAppearance.BorderSize = 0;
|
||||
this.btnBack.FlatAppearance.MouseOverBackColor = System.Drawing.Color.WhiteSmoke;
|
||||
this.btnBack.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnBack.Font = new System.Drawing.Font("Segoe Fluent Icons", 9.75F, System.Drawing.FontStyle.Bold);
|
||||
this.btnBack.ForeColor = System.Drawing.Color.SlateBlue;
|
||||
this.btnBack.Location = new System.Drawing.Point(3, 13);
|
||||
this.btnBack.Name = "btnBack";
|
||||
this.btnBack.Size = new System.Drawing.Size(42, 38);
|
||||
this.btnBack.TabIndex = 177;
|
||||
this.btnBack.Text = "...";
|
||||
this.btnBack.UseVisualStyleBackColor = true;
|
||||
this.btnBack.Click += new System.EventHandler(this.btnBack_Click);
|
||||
//
|
||||
// lblHeader
|
||||
//
|
||||
this.lblHeader.AutoEllipsis = true;
|
||||
this.lblHeader.BackColor = System.Drawing.Color.Transparent;
|
||||
this.lblHeader.Font = new System.Drawing.Font("Segoe UI Variable Display Semib", 20.25F, System.Drawing.FontStyle.Bold);
|
||||
this.lblHeader.ForeColor = System.Drawing.Color.DimGray;
|
||||
this.lblHeader.Location = new System.Drawing.Point(277, 46);
|
||||
this.lblHeader.Name = "lblHeader";
|
||||
this.lblHeader.Size = new System.Drawing.Size(323, 36);
|
||||
this.lblHeader.TabIndex = 222;
|
||||
this.lblHeader.Text = "Settings";
|
||||
this.lblHeader.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// pnlMain
|
||||
//
|
||||
this.pnlMain.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.pnlMain.AutoScroll = true;
|
||||
this.pnlMain.AutoScrollMargin = new System.Drawing.Size(50, 50);
|
||||
this.pnlMain.Controls.Add(this.btnGithub);
|
||||
this.pnlMain.Controls.Add(this.lnkStargazers);
|
||||
this.pnlMain.Controls.Add(this.lnkVoting);
|
||||
this.pnlMain.Controls.Add(this.label3);
|
||||
this.pnlMain.Controls.Add(this.btnEditBloatESignature);
|
||||
this.pnlMain.Controls.Add(this.btnOpenProfilesDir);
|
||||
this.pnlMain.Controls.Add(this.btnOpenPluginsDir);
|
||||
this.pnlMain.Controls.Add(this.label2);
|
||||
this.pnlMain.Controls.Add(this.btnURLDonate);
|
||||
this.pnlMain.Controls.Add(this.btnAppPackages);
|
||||
this.pnlMain.Controls.Add(this.btnAppWizard);
|
||||
this.pnlMain.Controls.Add(this.label1);
|
||||
this.pnlMain.Controls.Add(this.btnBack);
|
||||
this.pnlMain.Controls.Add(this.lblHeader);
|
||||
this.pnlMain.Controls.Add(this.lnkURLTwitter);
|
||||
this.pnlMain.Controls.Add(this.lnkURLHelp);
|
||||
this.pnlMain.Controls.Add(this.lnkURLDev);
|
||||
this.pnlMain.Location = new System.Drawing.Point(0, 0);
|
||||
this.pnlMain.Name = "pnlMain";
|
||||
this.pnlMain.Size = new System.Drawing.Size(942, 759);
|
||||
this.pnlMain.TabIndex = 223;
|
||||
//
|
||||
// btnGithub
|
||||
//
|
||||
this.btnGithub.AutoSize = true;
|
||||
this.btnGithub.BackColor = System.Drawing.Color.Transparent;
|
||||
this.btnGithub.FlatAppearance.BorderColor = System.Drawing.Color.Gray;
|
||||
this.btnGithub.FlatAppearance.BorderSize = 0;
|
||||
this.btnGithub.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnGithub.Font = new System.Drawing.Font("Segoe UI Variable Text Light", 9.75F);
|
||||
this.btnGithub.ForeColor = System.Drawing.Color.Fuchsia;
|
||||
this.btnGithub.Image = ((System.Drawing.Image)(resources.GetObject("btnGithub.Image")));
|
||||
this.btnGithub.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.btnGithub.Location = new System.Drawing.Point(397, 527);
|
||||
this.btnGithub.Name = "btnGithub";
|
||||
this.btnGithub.Padding = new System.Windows.Forms.Padding(0, 0, 5, 0);
|
||||
this.btnGithub.Size = new System.Drawing.Size(106, 30);
|
||||
this.btnGithub.TabIndex = 233;
|
||||
this.btnGithub.TabStop = false;
|
||||
this.btnGithub.Text = "Github";
|
||||
this.btnGithub.UseVisualStyleBackColor = false;
|
||||
this.btnGithub.Click += new System.EventHandler(this.btnGithub_Click);
|
||||
//
|
||||
// lnkStargazers
|
||||
//
|
||||
this.lnkStargazers.ActiveLinkColor = System.Drawing.Color.MediumVioletRed;
|
||||
this.lnkStargazers.AutoEllipsis = true;
|
||||
this.lnkStargazers.BackColor = System.Drawing.Color.Transparent;
|
||||
this.lnkStargazers.Font = new System.Drawing.Font("Segoe UI Variable Text Light", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lnkStargazers.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
|
||||
this.lnkStargazers.LinkColor = System.Drawing.Color.Black;
|
||||
this.lnkStargazers.Location = new System.Drawing.Point(509, 536);
|
||||
this.lnkStargazers.Name = "lnkStargazers";
|
||||
this.lnkStargazers.Size = new System.Drawing.Size(105, 17);
|
||||
this.lnkStargazers.TabIndex = 234;
|
||||
this.lnkStargazers.TabStop = true;
|
||||
this.lnkStargazers.Text = "Error fetching Github stargazers";
|
||||
this.lnkStargazers.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
||||
this.lnkStargazers.Visible = false;
|
||||
this.lnkStargazers.VisitedLinkColor = System.Drawing.Color.MediumVioletRed;
|
||||
this.lnkStargazers.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lnkStargazers_LinkClicked);
|
||||
//
|
||||
// lnkVoting
|
||||
//
|
||||
this.lnkVoting.AutoEllipsis = true;
|
||||
this.lnkVoting.BackColor = System.Drawing.Color.MistyRose;
|
||||
this.lnkVoting.LinkColor = System.Drawing.Color.MediumVioletRed;
|
||||
this.lnkVoting.Location = new System.Drawing.Point(607, 7);
|
||||
this.lnkVoting.Name = "lnkVoting";
|
||||
this.lnkVoting.Size = new System.Drawing.Size(217, 23);
|
||||
this.lnkVoting.TabIndex = 232;
|
||||
this.lnkVoting.TabStop = true;
|
||||
this.lnkVoting.Text = "https://www.builtbybel.com/blog/bloatynosy-is-now-x";
|
||||
this.lnkVoting.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lnkVoting_LinkClicked);
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoEllipsis = true;
|
||||
this.label3.BackColor = System.Drawing.Color.MistyRose;
|
||||
this.label3.Font = new System.Drawing.Font("Segoe UI Variable Display", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.label3.Location = new System.Drawing.Point(51, 0);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(773, 30);
|
||||
this.label3.TabIndex = 231;
|
||||
this.label3.Text = "Vote here for a name change from Bloatynosy to Appstrip or?";
|
||||
this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// btnEditBloatESignature
|
||||
//
|
||||
this.btnEditBloatESignature.AutoEllipsis = true;
|
||||
this.btnEditBloatESignature.BackColor = System.Drawing.Color.GhostWhite;
|
||||
this.btnEditBloatESignature.FlatAppearance.BorderColor = System.Drawing.Color.Thistle;
|
||||
this.btnEditBloatESignature.FlatAppearance.BorderSize = 0;
|
||||
this.btnEditBloatESignature.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnEditBloatESignature.Font = new System.Drawing.Font("Segoe UI Variable Display", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnEditBloatESignature.ForeColor = System.Drawing.Color.Black;
|
||||
this.btnEditBloatESignature.Location = new System.Drawing.Point(277, 279);
|
||||
this.btnEditBloatESignature.Name = "btnEditBloatESignature";
|
||||
this.btnEditBloatESignature.Padding = new System.Windows.Forms.Padding(0, 0, 5, 0);
|
||||
this.btnEditBloatESignature.Size = new System.Drawing.Size(323, 26);
|
||||
this.btnEditBloatESignature.TabIndex = 230;
|
||||
this.btnEditBloatESignature.TabStop = false;
|
||||
this.btnEditBloatESignature.Text = "Edit BLOAT-E signature";
|
||||
this.btnEditBloatESignature.UseVisualStyleBackColor = false;
|
||||
this.btnEditBloatESignature.Click += new System.EventHandler(this.btnEditBloatESignature_Click);
|
||||
//
|
||||
// btnOpenProfilesDir
|
||||
//
|
||||
this.btnOpenProfilesDir.AutoEllipsis = true;
|
||||
this.btnOpenProfilesDir.BackColor = System.Drawing.Color.GhostWhite;
|
||||
this.btnOpenProfilesDir.FlatAppearance.BorderColor = System.Drawing.Color.Thistle;
|
||||
this.btnOpenProfilesDir.FlatAppearance.BorderSize = 0;
|
||||
this.btnOpenProfilesDir.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnOpenProfilesDir.Font = new System.Drawing.Font("Segoe UI Variable Display", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnOpenProfilesDir.ForeColor = System.Drawing.Color.Black;
|
||||
this.btnOpenProfilesDir.Location = new System.Drawing.Point(277, 247);
|
||||
this.btnOpenProfilesDir.Name = "btnOpenProfilesDir";
|
||||
this.btnOpenProfilesDir.Padding = new System.Windows.Forms.Padding(0, 0, 5, 0);
|
||||
this.btnOpenProfilesDir.Size = new System.Drawing.Size(323, 26);
|
||||
this.btnOpenProfilesDir.TabIndex = 229;
|
||||
this.btnOpenProfilesDir.TabStop = false;
|
||||
this.btnOpenProfilesDir.Text = "Open profiles directory";
|
||||
this.btnOpenProfilesDir.UseVisualStyleBackColor = false;
|
||||
this.btnOpenProfilesDir.Click += new System.EventHandler(this.btnOpenProfilesDir_Click);
|
||||
//
|
||||
// btnOpenPluginsDir
|
||||
//
|
||||
this.btnOpenPluginsDir.AutoEllipsis = true;
|
||||
this.btnOpenPluginsDir.BackColor = System.Drawing.Color.GhostWhite;
|
||||
this.btnOpenPluginsDir.FlatAppearance.BorderColor = System.Drawing.Color.Thistle;
|
||||
this.btnOpenPluginsDir.FlatAppearance.BorderSize = 0;
|
||||
this.btnOpenPluginsDir.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnOpenPluginsDir.Font = new System.Drawing.Font("Segoe UI Variable Display", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnOpenPluginsDir.ForeColor = System.Drawing.Color.Black;
|
||||
this.btnOpenPluginsDir.Location = new System.Drawing.Point(277, 217);
|
||||
this.btnOpenPluginsDir.Name = "btnOpenPluginsDir";
|
||||
this.btnOpenPluginsDir.Padding = new System.Windows.Forms.Padding(0, 0, 5, 0);
|
||||
this.btnOpenPluginsDir.Size = new System.Drawing.Size(323, 26);
|
||||
this.btnOpenPluginsDir.TabIndex = 228;
|
||||
this.btnOpenPluginsDir.TabStop = false;
|
||||
this.btnOpenPluginsDir.Text = "Open plugins directory";
|
||||
this.btnOpenPluginsDir.UseVisualStyleBackColor = false;
|
||||
this.btnOpenPluginsDir.Click += new System.EventHandler(this.btnOpenPluginsDir_Click);
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoEllipsis = true;
|
||||
this.label2.BackColor = System.Drawing.Color.Thistle;
|
||||
this.label2.Font = new System.Drawing.Font("Segoe UI Variable Text Light", 9.25F);
|
||||
this.label2.Location = new System.Drawing.Point(170, 565);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(654, 65);
|
||||
this.label2.TabIndex = 227;
|
||||
this.label2.Text = "Enhance your Windows 11 experience with a dedicated app designed to strip away un" +
|
||||
"wanted features.";
|
||||
this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// btnURLDonate
|
||||
//
|
||||
this.btnURLDonate.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnURLDonate.BackColor = System.Drawing.Color.Orange;
|
||||
this.btnURLDonate.FlatAppearance.BorderColor = System.Drawing.Color.DodgerBlue;
|
||||
this.btnURLDonate.FlatAppearance.BorderSize = 4;
|
||||
this.btnURLDonate.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnURLDonate.Font = new System.Drawing.Font("Segoe UI Variable Display", 10.25F, System.Drawing.FontStyle.Bold);
|
||||
this.btnURLDonate.Location = new System.Drawing.Point(795, 716);
|
||||
this.btnURLDonate.Name = "btnURLDonate";
|
||||
this.btnURLDonate.Size = new System.Drawing.Size(112, 40);
|
||||
this.btnURLDonate.TabIndex = 226;
|
||||
this.btnURLDonate.Text = "Donate";
|
||||
this.btnURLDonate.UseVisualStyleBackColor = false;
|
||||
this.btnURLDonate.Click += new System.EventHandler(this.btnURLDonate_Click);
|
||||
//
|
||||
// btnAppPackages
|
||||
//
|
||||
this.btnAppPackages.AutoEllipsis = true;
|
||||
this.btnAppPackages.BackColor = System.Drawing.Color.Plum;
|
||||
this.btnAppPackages.FlatAppearance.BorderColor = System.Drawing.Color.Gainsboro;
|
||||
this.btnAppPackages.Font = new System.Drawing.Font("Segoe UI Variable Display", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnAppPackages.ForeColor = System.Drawing.Color.Black;
|
||||
this.btnAppPackages.Location = new System.Drawing.Point(277, 148);
|
||||
this.btnAppPackages.Name = "btnAppPackages";
|
||||
this.btnAppPackages.Padding = new System.Windows.Forms.Padding(0, 0, 5, 0);
|
||||
this.btnAppPackages.Size = new System.Drawing.Size(323, 37);
|
||||
this.btnAppPackages.TabIndex = 225;
|
||||
this.btnAppPackages.TabStop = false;
|
||||
this.btnAppPackages.Text = "Install packages";
|
||||
this.btnAppPackages.UseVisualStyleBackColor = false;
|
||||
this.btnAppPackages.Click += new System.EventHandler(this.btnAppPackages_Click);
|
||||
//
|
||||
// btnAppWizard
|
||||
//
|
||||
this.btnAppWizard.AutoEllipsis = true;
|
||||
this.btnAppWizard.BackColor = System.Drawing.Color.Plum;
|
||||
this.btnAppWizard.FlatAppearance.BorderColor = System.Drawing.Color.Gainsboro;
|
||||
this.btnAppWizard.Font = new System.Drawing.Font("Segoe UI Variable Display", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnAppWizard.ForeColor = System.Drawing.Color.Black;
|
||||
this.btnAppWizard.Location = new System.Drawing.Point(277, 105);
|
||||
this.btnAppWizard.Name = "btnAppWizard";
|
||||
this.btnAppWizard.Padding = new System.Windows.Forms.Padding(0, 0, 5, 0);
|
||||
this.btnAppWizard.Size = new System.Drawing.Size(323, 37);
|
||||
this.btnAppWizard.TabIndex = 224;
|
||||
this.btnAppWizard.TabStop = false;
|
||||
this.btnAppWizard.Text = "Run Wizard";
|
||||
this.btnAppWizard.UseVisualStyleBackColor = false;
|
||||
this.btnAppWizard.Click += new System.EventHandler(this.btnAppWizard_Click);
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoEllipsis = true;
|
||||
this.label1.BackColor = System.Drawing.Color.Transparent;
|
||||
this.label1.Font = new System.Drawing.Font("Segoe UI Variable Display Semib", 20.25F, System.Drawing.FontStyle.Bold);
|
||||
this.label1.ForeColor = System.Drawing.Color.DimGray;
|
||||
this.label1.Location = new System.Drawing.Point(277, 488);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(323, 36);
|
||||
this.label1.TabIndex = 223;
|
||||
this.label1.Text = "About";
|
||||
this.label1.TextAlign = System.Drawing.ContentAlignment.TopCenter;
|
||||
//
|
||||
// lnkURLTwitter
|
||||
//
|
||||
this.lnkURLTwitter.ActiveLinkColor = System.Drawing.Color.MediumVioletRed;
|
||||
this.lnkURLTwitter.AutoEllipsis = true;
|
||||
this.lnkURLTwitter.AutoSize = true;
|
||||
this.lnkURLTwitter.Font = new System.Drawing.Font("Segoe UI Variable Text Light", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lnkURLTwitter.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
|
||||
this.lnkURLTwitter.LinkColor = System.Drawing.Color.DimGray;
|
||||
this.lnkURLTwitter.Location = new System.Drawing.Point(394, 661);
|
||||
this.lnkURLTwitter.Name = "lnkURLTwitter";
|
||||
this.lnkURLTwitter.Size = new System.Drawing.Size(126, 17);
|
||||
this.lnkURLTwitter.TabIndex = 199;
|
||||
this.lnkURLTwitter.TabStop = true;
|
||||
this.lnkURLTwitter.Text = "Follow dev on Twitter";
|
||||
this.lnkURLTwitter.VisitedLinkColor = System.Drawing.Color.MediumVioletRed;
|
||||
this.lnkURLTwitter.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lnkURLTwitter_LinkClicked);
|
||||
//
|
||||
// lnkURLHelp
|
||||
//
|
||||
this.lnkURLHelp.ActiveLinkColor = System.Drawing.Color.MediumVioletRed;
|
||||
this.lnkURLHelp.AutoEllipsis = true;
|
||||
this.lnkURLHelp.AutoSize = true;
|
||||
this.lnkURLHelp.Font = new System.Drawing.Font("Segoe UI Variable Text Light", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lnkURLHelp.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
|
||||
this.lnkURLHelp.LinkColor = System.Drawing.Color.DimGray;
|
||||
this.lnkURLHelp.Location = new System.Drawing.Point(395, 680);
|
||||
this.lnkURLHelp.Name = "lnkURLHelp";
|
||||
this.lnkURLHelp.Size = new System.Drawing.Size(41, 17);
|
||||
this.lnkURLHelp.TabIndex = 201;
|
||||
this.lnkURLHelp.TabStop = true;
|
||||
this.lnkURLHelp.Text = "r/help";
|
||||
this.lnkURLHelp.VisitedLinkColor = System.Drawing.Color.MediumVioletRed;
|
||||
this.lnkURLHelp.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lnkURLHelp_LinkClicked);
|
||||
//
|
||||
// lnkURLDev
|
||||
//
|
||||
this.lnkURLDev.ActiveLinkColor = System.Drawing.Color.MediumVioletRed;
|
||||
this.lnkURLDev.AutoEllipsis = true;
|
||||
this.lnkURLDev.AutoSize = true;
|
||||
this.lnkURLDev.Font = new System.Drawing.Font("Segoe UI Variable Text Light", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lnkURLDev.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
|
||||
this.lnkURLDev.LinkColor = System.Drawing.Color.DimGray;
|
||||
this.lnkURLDev.Location = new System.Drawing.Point(394, 642);
|
||||
this.lnkURLDev.Name = "lnkURLDev";
|
||||
this.lnkURLDev.Size = new System.Drawing.Size(100, 17);
|
||||
this.lnkURLDev.TabIndex = 198;
|
||||
this.lnkURLDev.TabStop = true;
|
||||
this.lnkURLDev.Text = "Dev @Builtbybel";
|
||||
this.lnkURLDev.VisitedLinkColor = System.Drawing.Color.MediumVioletRed;
|
||||
this.lnkURLDev.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lnkURLDev_LinkClicked);
|
||||
//
|
||||
// SettingsPageView
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
this.Controls.Add(this.pnlMain);
|
||||
this.Name = "SettingsPageView";
|
||||
this.Size = new System.Drawing.Size(942, 759);
|
||||
this.pnlMain.ResumeLayout(false);
|
||||
this.pnlMain.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Button btnBack;
|
||||
private System.Windows.Forms.Label lblHeader;
|
||||
private System.Windows.Forms.Panel pnlMain;
|
||||
private System.Windows.Forms.LinkLabel lnkURLTwitter;
|
||||
private System.Windows.Forms.LinkLabel lnkURLHelp;
|
||||
private System.Windows.Forms.LinkLabel lnkURLDev;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Button btnAppPackages;
|
||||
private System.Windows.Forms.Button btnAppWizard;
|
||||
private System.Windows.Forms.Button btnURLDonate;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.Button btnOpenPluginsDir;
|
||||
private System.Windows.Forms.Button btnOpenProfilesDir;
|
||||
private System.Windows.Forms.Button btnEditBloatESignature;
|
||||
private System.Windows.Forms.LinkLabel lnkVoting;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.Button btnGithub;
|
||||
private System.Windows.Forms.LinkLabel lnkStargazers;
|
||||
}
|
||||
}
|
@ -1,106 +0,0 @@
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Bloatynosy.Views
|
||||
{
|
||||
public partial class SettingsPageView : UserControl
|
||||
{
|
||||
private MainForm mainForm;
|
||||
private Stargazers github;
|
||||
|
||||
public SettingsPageView(MainForm mainForm)
|
||||
{
|
||||
InitializeComponent();
|
||||
SetStyle();
|
||||
|
||||
// Fetch Github Stargazers
|
||||
GetGitHubStargazers();
|
||||
}
|
||||
|
||||
// Some UI nicety
|
||||
private void SetStyle()
|
||||
{
|
||||
btnBack.Text = "\uE72B";
|
||||
// Some color styling
|
||||
BackColor =
|
||||
Color.FromArgb(245, 241, 249);
|
||||
}
|
||||
|
||||
private void GetGitHubStargazers()
|
||||
{
|
||||
github = new Stargazers();
|
||||
github.StargazersCountFetched += (sender, count) =>
|
||||
{
|
||||
if (count >= 0)
|
||||
btnGithub.Text = $"{count}";
|
||||
else
|
||||
lnkStargazers.Visible = true;
|
||||
};
|
||||
|
||||
// Stargazers link Event listener
|
||||
lnkStargazers_LinkClicked(lnkStargazers, new LinkLabelLinkClickedEventArgs(lnkStargazers.Links[0]));
|
||||
}
|
||||
|
||||
private void btnEditBloatESignature_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
string filePath = System.IO.Path.Combine(HelperTool.Utils.Data.DataRootDir, "BLOAT-E.txt");
|
||||
|
||||
if (System.IO.File.Exists(filePath))
|
||||
{
|
||||
Process.Start(filePath);
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show("Private Signature file for BLOAT-E could not be found: " + filePath);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show($"An error occurred: {ex.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
private void btnBack_Click(object sender, EventArgs e)
|
||||
=> ViewHelper.SwitchView.SetMainFormAsView();
|
||||
|
||||
private void btnAppWizard_Click(object sender, EventArgs e)
|
||||
=> ViewHelper.SwitchView.SetView(new WizardPageView(mainForm));
|
||||
|
||||
private void btnAppPackages_Click(object sender, EventArgs e)
|
||||
=> ViewHelper.SwitchView.SetView(new PackagesPageView());
|
||||
|
||||
private void lnkURLTwitter_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
=> Process.Start(HelperTool.Utils.Uri.URL_TWITTER);
|
||||
|
||||
private void lnkURLDev_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
=> Process.Start(HelperTool.Utils.Uri.URL_BUILTBYBEL);
|
||||
|
||||
private void lnkURLHelp_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
=> Process.Start(HelperTool.Utils.Uri.URL_HELP);
|
||||
|
||||
private void btnURLDonate_Click(object sender, EventArgs e)
|
||||
=> Process.Start(HelperTool.Utils.Uri.URL_DONATE);
|
||||
|
||||
private void btnOpenPluginsDir_Click(object sender, EventArgs e)
|
||||
=> Process.Start(new ProcessStartInfo("explorer.exe", HelperTool.Utils.Data.PluginsRootDir) { UseShellExecute = true });
|
||||
|
||||
private void btnOpenProfilesDir_Click(object sender, EventArgs e)
|
||||
=> Process.Start(new ProcessStartInfo("explorer.exe", HelperTool.Utils.Data.DataRootDir) { UseShellExecute = true });
|
||||
|
||||
private void lnkVoting_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
=> Process.Start("https://www.builtbybel.com/blog/bloatynosy-is-now-x");
|
||||
|
||||
private async void lnkStargazers_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
{
|
||||
//e.Link.Visited = true;
|
||||
await github.FetchStargazersAsync();
|
||||
}
|
||||
|
||||
private void btnGithub_Click(object sender, EventArgs e)
|
||||
=> Process.Start(HelperTool.Utils.Uri.URL_GITREPO);
|
||||
}
|
||||
}
|
236
src/BloatyNosyAI/Views/SetupPageView.Designer.cs
generated
236
src/BloatyNosyAI/Views/SetupPageView.Designer.cs
generated
@ -1,236 +0,0 @@
|
||||
namespace BloatyNosy
|
||||
{
|
||||
partial class SetupPageView
|
||||
{
|
||||
/// <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 Komponenten-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.lblHeader = new System.Windows.Forms.Label();
|
||||
this.btnBack = new System.Windows.Forms.Button();
|
||||
this.btnHome = new System.Windows.Forms.Button();
|
||||
this.btnNext = new System.Windows.Forms.Button();
|
||||
this.btnPrev = new System.Windows.Forms.Button();
|
||||
this.cbTable = new System.Windows.Forms.ComboBox();
|
||||
this.pbView = new System.Windows.Forms.PictureBox();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.btnAssist = new System.Windows.Forms.Button();
|
||||
this.lnkCustomize = new System.Windows.Forms.LinkLabel();
|
||||
this.lnkConfigure = new System.Windows.Forms.LinkLabel();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pbView)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// lblHeader
|
||||
//
|
||||
this.lblHeader.AutoEllipsis = true;
|
||||
this.lblHeader.AutoSize = true;
|
||||
this.lblHeader.Font = new System.Drawing.Font("Segoe UI Variable Text Semibold", 14.25F, System.Drawing.FontStyle.Bold, 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(60, 4);
|
||||
this.lblHeader.Name = "lblHeader";
|
||||
this.lblHeader.Size = new System.Drawing.Size(144, 26);
|
||||
this.lblHeader.TabIndex = 180;
|
||||
this.lblHeader.Text = "Setup Windows";
|
||||
//
|
||||
// btnBack
|
||||
//
|
||||
this.btnBack.FlatAppearance.BorderSize = 0;
|
||||
this.btnBack.FlatAppearance.MouseOverBackColor = System.Drawing.Color.WhiteSmoke;
|
||||
this.btnBack.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnBack.Font = new System.Drawing.Font("Segoe Fluent Icons", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnBack.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.btnBack.Location = new System.Drawing.Point(0, 0);
|
||||
this.btnBack.Name = "btnBack";
|
||||
this.btnBack.Size = new System.Drawing.Size(42, 38);
|
||||
this.btnBack.TabIndex = 179;
|
||||
this.btnBack.Text = "...";
|
||||
this.btnBack.UseVisualStyleBackColor = true;
|
||||
this.btnBack.Click += new System.EventHandler(this.btnBack_Click);
|
||||
//
|
||||
// btnHome
|
||||
//
|
||||
this.btnHome.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnHome.FlatAppearance.BorderSize = 0;
|
||||
this.btnHome.FlatStyle = System.Windows.Forms.FlatStyle.System;
|
||||
this.btnHome.Font = new System.Drawing.Font("Segoe UI Variable Text Semiligh", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnHome.ForeColor = System.Drawing.Color.Black;
|
||||
this.btnHome.Location = new System.Drawing.Point(669, 728);
|
||||
this.btnHome.Name = "btnHome";
|
||||
this.btnHome.Size = new System.Drawing.Size(89, 29);
|
||||
this.btnHome.TabIndex = 182;
|
||||
this.btnHome.Text = "Home";
|
||||
this.btnHome.Click += new System.EventHandler(this.btnHome_Click);
|
||||
//
|
||||
// btnNext
|
||||
//
|
||||
this.btnNext.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnNext.BackColor = System.Drawing.Color.DeepPink;
|
||||
this.btnNext.FlatAppearance.BorderSize = 0;
|
||||
this.btnNext.FlatStyle = System.Windows.Forms.FlatStyle.System;
|
||||
this.btnNext.Font = new System.Drawing.Font("Segoe UI Variable Text", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnNext.ForeColor = System.Drawing.Color.White;
|
||||
this.btnNext.Location = new System.Drawing.Point(859, 728);
|
||||
this.btnNext.Name = "btnNext";
|
||||
this.btnNext.Size = new System.Drawing.Size(89, 29);
|
||||
this.btnNext.TabIndex = 183;
|
||||
this.btnNext.Text = "Next";
|
||||
this.btnNext.UseVisualStyleBackColor = false;
|
||||
this.btnNext.Click += new System.EventHandler(this.btnNext_Click);
|
||||
//
|
||||
// btnPrev
|
||||
//
|
||||
this.btnPrev.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnPrev.FlatAppearance.BorderSize = 0;
|
||||
this.btnPrev.FlatStyle = System.Windows.Forms.FlatStyle.System;
|
||||
this.btnPrev.Font = new System.Drawing.Font("Segoe UI Variable Text Semiligh", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnPrev.ForeColor = System.Drawing.Color.Black;
|
||||
this.btnPrev.Location = new System.Drawing.Point(764, 728);
|
||||
this.btnPrev.Name = "btnPrev";
|
||||
this.btnPrev.Size = new System.Drawing.Size(89, 29);
|
||||
this.btnPrev.TabIndex = 184;
|
||||
this.btnPrev.Text = "Previous";
|
||||
this.btnPrev.Click += new System.EventHandler(this.btnPrev_Click);
|
||||
//
|
||||
// cbTable
|
||||
//
|
||||
this.cbTable.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.cbTable.BackColor = System.Drawing.Color.White;
|
||||
this.cbTable.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.cbTable.Font = new System.Drawing.Font("Segoe UI Variable Text Semiligh", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.cbTable.FormattingEnabled = true;
|
||||
this.cbTable.Location = new System.Drawing.Point(102, 734);
|
||||
this.cbTable.Name = "cbTable";
|
||||
this.cbTable.Size = new System.Drawing.Size(121, 23);
|
||||
this.cbTable.TabIndex = 185;
|
||||
this.cbTable.SelectedIndexChanged += new System.EventHandler(this.cbTable_SelectedIndexChanged);
|
||||
//
|
||||
// pbView
|
||||
//
|
||||
this.pbView.BackColor = System.Drawing.Color.Transparent;
|
||||
this.pbView.ErrorImage = null;
|
||||
this.pbView.ImeMode = System.Windows.Forms.ImeMode.NoControl;
|
||||
this.pbView.InitialImage = null;
|
||||
this.pbView.Location = new System.Drawing.Point(37, 133);
|
||||
this.pbView.Name = "pbView";
|
||||
this.pbView.Size = new System.Drawing.Size(457, 330);
|
||||
this.pbView.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
|
||||
this.pbView.TabIndex = 186;
|
||||
this.pbView.TabStop = false;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Font = new System.Drawing.Font("Segoe UI Variable Text Semiligh", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.label1.Location = new System.Drawing.Point(52, 738);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(44, 15);
|
||||
this.label1.TabIndex = 189;
|
||||
this.label1.Text = "Jump to";
|
||||
//
|
||||
// btnAssist
|
||||
//
|
||||
this.btnAssist.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnAssist.FlatAppearance.BorderColor = System.Drawing.Color.HotPink;
|
||||
this.btnAssist.FlatAppearance.BorderSize = 8;
|
||||
this.btnAssist.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnAssist.Font = new System.Drawing.Font("Segoe UI Variable Text Semiligh", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnAssist.Location = new System.Drawing.Point(546, 131);
|
||||
this.btnAssist.Name = "btnAssist";
|
||||
this.btnAssist.Size = new System.Drawing.Size(466, 332);
|
||||
this.btnAssist.TabIndex = 190;
|
||||
this.btnAssist.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.btnAssist.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// lnkCustomize
|
||||
//
|
||||
this.lnkCustomize.ActiveLinkColor = System.Drawing.Color.HotPink;
|
||||
this.lnkCustomize.AutoSize = true;
|
||||
this.lnkCustomize.Font = new System.Drawing.Font("Segoe UI Variable Text Semibold", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lnkCustomize.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
|
||||
this.lnkCustomize.LinkColor = System.Drawing.Color.DeepPink;
|
||||
this.lnkCustomize.Location = new System.Drawing.Point(553, 493);
|
||||
this.lnkCustomize.Name = "lnkCustomize";
|
||||
this.lnkCustomize.Size = new System.Drawing.Size(177, 20);
|
||||
this.lnkCustomize.TabIndex = 191;
|
||||
this.lnkCustomize.TabStop = true;
|
||||
this.lnkCustomize.Text = "Customizations available";
|
||||
this.lnkCustomize.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lnkCustomize_LinkClicked);
|
||||
//
|
||||
// lnkConfigure
|
||||
//
|
||||
this.lnkConfigure.ActiveLinkColor = System.Drawing.Color.HotPink;
|
||||
this.lnkConfigure.AutoSize = true;
|
||||
this.lnkConfigure.Font = new System.Drawing.Font("Segoe UI Variable Text Semiligh", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lnkConfigure.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
|
||||
this.lnkConfigure.LinkColor = System.Drawing.Color.DeepPink;
|
||||
this.lnkConfigure.Location = new System.Drawing.Point(553, 528);
|
||||
this.lnkConfigure.Name = "lnkConfigure";
|
||||
this.lnkConfigure.Size = new System.Drawing.Size(126, 20);
|
||||
this.lnkConfigure.TabIndex = 192;
|
||||
this.lnkConfigure.TabStop = true;
|
||||
this.lnkConfigure.Text = "Configure settings";
|
||||
this.lnkConfigure.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lnkConfigure_LinkClicked);
|
||||
//
|
||||
// SetupPageView
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
this.AutoScroll = true;
|
||||
this.Controls.Add(this.lnkConfigure);
|
||||
this.Controls.Add(this.lnkCustomize);
|
||||
this.Controls.Add(this.btnAssist);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Controls.Add(this.pbView);
|
||||
this.Controls.Add(this.cbTable);
|
||||
this.Controls.Add(this.btnPrev);
|
||||
this.Controls.Add(this.btnNext);
|
||||
this.Controls.Add(this.btnHome);
|
||||
this.Controls.Add(this.lblHeader);
|
||||
this.Controls.Add(this.btnBack);
|
||||
this.Name = "SetupPageView";
|
||||
this.Size = new System.Drawing.Size(1054, 795);
|
||||
((System.ComponentModel.ISupportInitialize)(this.pbView)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Label lblHeader;
|
||||
private System.Windows.Forms.Button btnBack;
|
||||
private System.Windows.Forms.Button btnHome;
|
||||
private System.Windows.Forms.Button btnNext;
|
||||
private System.Windows.Forms.Button btnPrev;
|
||||
private System.Windows.Forms.ComboBox cbTable;
|
||||
public System.Windows.Forms.PictureBox pbView;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Button btnAssist;
|
||||
private System.Windows.Forms.LinkLabel lnkCustomize;
|
||||
private System.Windows.Forms.LinkLabel lnkConfigure;
|
||||
}
|
||||
}
|
@ -1,499 +0,0 @@
|
||||
using BloatyNosy.Setup;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace BloatyNosy
|
||||
{
|
||||
public partial class SetupPageView : UserControl
|
||||
{
|
||||
private PageTitle INavPage = PageTitle.Setup;
|
||||
private string wallpaperPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData).ToString() + @"\Microsoft\Windows\Themes\TranscodedWallpaper";
|
||||
private readonly string defaultCustomizerText = "Customizations available";
|
||||
|
||||
private MainForm mainForm = null;
|
||||
|
||||
public SetupPageView(Form frm)
|
||||
{
|
||||
mainForm = frm as MainForm;
|
||||
InitializeComponent();
|
||||
|
||||
NavigationView();
|
||||
EnumTableOfContents();
|
||||
|
||||
SetStyle();
|
||||
}
|
||||
|
||||
// Some UI nicety
|
||||
private void SetStyle()
|
||||
{
|
||||
BackColor =
|
||||
Color.FromArgb(245, 241, 249);
|
||||
btnBack.Text = "\uE72B";
|
||||
|
||||
btnAssist.FlatAppearance.MouseOverBackColor = btnAssist.BackColor;
|
||||
btnAssist.BackColorChanged += (s, e) =>
|
||||
{
|
||||
btnAssist.FlatAppearance.MouseOverBackColor = btnAssist.BackColor;
|
||||
};
|
||||
}
|
||||
|
||||
private void btnHome_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (INavPage > PageTitle.Setup)
|
||||
{
|
||||
INavPage = 0;
|
||||
cbTable.SelectedIndex = 0;
|
||||
}
|
||||
|
||||
NavigationView();
|
||||
}
|
||||
|
||||
private void btnPrev_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (INavPage > PageTitle.Setup)
|
||||
{
|
||||
--INavPage;
|
||||
cbTable.SelectedItem = INavPage++;
|
||||
}
|
||||
|
||||
NavigationView();
|
||||
}
|
||||
|
||||
private void btnNext_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (INavPage == PageTitle.Custom)
|
||||
{
|
||||
INavPage = 0;
|
||||
cbTable.SelectedIndex = 0;
|
||||
NavigationView();
|
||||
}
|
||||
else
|
||||
{
|
||||
INavPage++;
|
||||
NavigationView();
|
||||
|
||||
cbTable.SelectedItem = INavPage++;
|
||||
}
|
||||
}
|
||||
|
||||
// Enum breadcrumbs to cb
|
||||
private void EnumTableOfContents()
|
||||
{
|
||||
cbTable.DataSource = Enum.GetValues(typeof(PageTitle));
|
||||
}
|
||||
|
||||
private void cbTable_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
PageTitle index;
|
||||
Enum.TryParse<PageTitle>(cbTable.SelectedValue.ToString(), out index);
|
||||
|
||||
INavPage = index;
|
||||
NavigationView();
|
||||
}
|
||||
|
||||
public void NavigationView()
|
||||
{
|
||||
btnPrev.Enabled = INavPage > PageTitle.Setup;
|
||||
btnHome.Visible = INavPage > PageTitle.Setup;
|
||||
|
||||
switch (INavPage)
|
||||
{
|
||||
case PageTitle.Setup:
|
||||
lnkConfigure.Visible = false;
|
||||
lnkCustomize.Visible = false;
|
||||
if (!HelperTool.Utils.IsInet())
|
||||
lblHeader.Text = "We cannot connect to the Internet. Some functions of the Windows 11 Setup module are not available.";
|
||||
else lblHeader.Text = "Hi " + Environment.UserName;
|
||||
|
||||
btnAssist.Text = "Lets make sure everything is set up how you want it." +
|
||||
"\n\nYou have two options:" +
|
||||
"\n\n1. Use the <Next> and <Previous> buttons to run a guided tour to Windows 11 and to configure the system step by step." +
|
||||
"\n\n2. Use the Auto-Analyze feature and Apps provided on the main page to quickly set up Windows 11.";
|
||||
|
||||
pbView.Visible = true;
|
||||
pbView.ImageLocation = "https://github.com/builtbybel/ThisIsWin11/blob/main/assets/pages/startpage.png?raw=true";
|
||||
|
||||
break;
|
||||
|
||||
case PageTitle.NewLook:
|
||||
lnkConfigure.Visible = true;
|
||||
lnkCustomize.Visible = true;
|
||||
lnkCustomize.Text = "Customize Windows 11";
|
||||
lblHeader.Text = "A new look";
|
||||
btnAssist.Text = "As you already see, Windows 11 features a clean design with rounded corners, pastel shades and a centered Start menu and Taskbar.";
|
||||
pbView.Visible = true;
|
||||
pbView.ImageLocation = "https://github.com/builtbybel/ThisIsWin11/blob/main/assets/pages/page-look.png?raw=true";
|
||||
|
||||
break;
|
||||
|
||||
case PageTitle.StartMenu:
|
||||
lnkConfigure.Visible = true;
|
||||
lnkCustomize.Visible = true;
|
||||
lnkCustomize.Text = defaultCustomizerText;
|
||||
lblHeader.Text = "New Start Menu";
|
||||
btnAssist.Text = "Of all the new Windows 11 features, the new launcher-style floating Start Menu is the most distinctive part of Microsoft’s next-gen desktop OS.\n\n" +
|
||||
"Unlike the traditional Start Menu, the new Start — as Microsoft is calling it — sits right at the center of the taskbar.\n\n" +
|
||||
"It has a flyout design with pinned and recommended apps accompanying each other.";
|
||||
pbView.Visible = true;
|
||||
pbView.ImageLocation = "https://github.com/builtbybel/ThisIsWin11/blob/main/assets/pages/page-startmenu.png?raw=true";
|
||||
|
||||
break;
|
||||
|
||||
case PageTitle.Apps:
|
||||
lnkConfigure.Visible = true;
|
||||
lnkCustomize.Visible = true;
|
||||
lnkCustomize.Text = "Remove bloatware";
|
||||
lblHeader.Text = "Apps";
|
||||
btnAssist.Text = "Apparently Windows 11 is also lighter than Windows 10 as for the preinstalled apps.\n\n" +
|
||||
"The good thing is that at least some of the Windows 10 apps aren’t installed. However, you will still have installed all the hoard of apps that belong to Microsoft, such as Mail and Calendar, Your Phone, Mixed Reality Portal, Solitaire Collection, Get Help, Paint 3D, XBox Game Bar, etc.";
|
||||
pbView.Visible = true;
|
||||
pbView.ImageLocation = "https://github.com/builtbybel/ThisIsWin11/blob/main/assets/pages/page-apps.png?raw=true";
|
||||
|
||||
break;
|
||||
|
||||
case PageTitle.Privacy:
|
||||
lnkConfigure.Visible = true;
|
||||
lnkCustomize.Visible = true;
|
||||
lnkCustomize.Text = "Fix privacy issues";
|
||||
lblHeader.Text = "Privacy";
|
||||
btnAssist.Text = "One thing Microsoft didn't discuss is about Windows 11 privacy.\n\n" +
|
||||
"Since Windows 11 Home will essentially require a Microsoft account for most users, data harvesting is part of the package. \n\n" +
|
||||
"In Windows 11, you'll be able to continue editing cloud files per its algorithmically populated \"Recommended\" section in the new Start Menu.\n" +
|
||||
"Your browser history will sync between Edge on PC and Edge on mobile, as it already does. Your Skype and Teams conversations will sync as you'd expect too, and your Windows 11 features will migrate to new PCs if you upgrade.";
|
||||
pbView.Visible = true;
|
||||
pbView.ImageLocation = "https://github.com/builtbybel/ThisIsWin11/blob/main/assets/pages/page-privacy.png?raw=true";
|
||||
|
||||
break;
|
||||
|
||||
case PageTitle.MicrosoftStore:
|
||||
lnkConfigure.Visible = false;
|
||||
lnkCustomize.Visible = true;
|
||||
lnkCustomize.Text = "Install packages";
|
||||
lblHeader.Text = "New Microsoft Store";
|
||||
btnAssist.Text = "There’s a complete UI overhaul on the app store and some speed improvements.\n\n" +
|
||||
"The key change is allowing more apps into the store. The Microsoft Store is changing on Windows 11, and eventually Windows 10, to include any traditional desktop apps.\n\n" +
|
||||
"Microsoft previously restricted developers to its Universal Windows Apps, before then allowing some desktop apps that were packaged to use its store for updates. Now any app can be part of the store, a move that aligns with the Windows Package Manager Microsoft released last year.";
|
||||
pbView.Visible = true;
|
||||
pbView.ImageLocation = "https://github.com/builtbybel/ThisIsWin11/blob/main/assets/pages/page-msstore.png?raw=true";
|
||||
|
||||
break;
|
||||
|
||||
case PageTitle.ActionCenter:
|
||||
lnkConfigure.Visible = true;
|
||||
lnkCustomize.Visible = false;
|
||||
lnkCustomize.Text = defaultCustomizerText;
|
||||
lblHeader.Text = "Action Center";
|
||||
btnAssist.Text = "Another great feature of Windows 11 is the revamped Action Center.\n\n" +
|
||||
"It follows a design language that we have seen on mobile OSes, and I quite like this mobile - first approach to important system toggles\n\n" +
|
||||
"You can now simply click on the unified “WiFi, volume and battery” button to open the new Action Center. It packs all the necessary controls, including brightness and volume sliders. You can also add more toggles like before.";
|
||||
pbView.Visible = true;
|
||||
pbView.ImageLocation = "https://github.com/builtbybel/ThisIsWin11/blob/main/assets/pages/page-actioncenter.png?raw=true";
|
||||
|
||||
break;
|
||||
|
||||
case PageTitle.FileExplorer:
|
||||
lnkConfigure.Visible = true;
|
||||
lnkCustomize.Visible = true;
|
||||
lnkCustomize.Text = defaultCustomizerText;
|
||||
lblHeader.Text = "Modern File Explorer";
|
||||
btnAssist.Text = "The new experience of file explorer didn’t come with multiple Tabs options similar to tabs in the Microsoft Edge browser.\n\n" +
|
||||
"By default, File Explorer is now optimized for tablet users.\n\n" +
|
||||
"The File Explorer interface is not changing dramatically, but there are several noticeable changes. For example, Microsoft is replacing the Windows 8-era ribbon toolbar with a redesigned top menu called command bar allowing you quick access to commonly used actions like share, delete, rename, etc";
|
||||
pbView.Visible = true;
|
||||
pbView.ImageLocation = "https://github.com/builtbybel/ThisIsWin11/blob/main/assets/pages/page-fileexplorer.png?raw=true";
|
||||
|
||||
break;
|
||||
|
||||
case PageTitle.SettingsApp:
|
||||
lnkConfigure.Visible = false;
|
||||
lnkCustomize.Visible = true;
|
||||
lnkCustomize.Text = "Check all settings";
|
||||
lblHeader.Text = "Redesigned Settings App";
|
||||
btnAssist.Text = "The Settings app has been redesigned with a radically different look and it is now using a new navigation menu on the left, similar to Control Panel.\n\n" +
|
||||
"It comes with a slightly reorganized layout which enables easier access to all your PC settings.\n\n" +
|
||||
"We’re also getting new pages to customize the touch keyboard, Windows snapping, multitasking and other advanced features like “Wake on Touch” in the new operating system.";
|
||||
pbView.Visible = true;
|
||||
pbView.ImageLocation = "https://github.com/builtbybel/ThisIsWin11/blob/main/assets/pages/page-settingsapp.png?raw=true";
|
||||
|
||||
break;
|
||||
|
||||
case PageTitle.WindowsUpdates:
|
||||
lnkConfigure.Visible = true;
|
||||
lnkCustomize.Visible = false;
|
||||
lblHeader.Text = "Faster Windows Updates";
|
||||
btnAssist.Text = "Yes, you read that right. With Windows 11, you will have a much faster Windows update process, thanks to the background installation mechanism. Microsoft has promised that Windows updates will now be 40% smaller, making the process even more efficient. ";
|
||||
pbView.Visible = true;
|
||||
pbView.ImageLocation = "https://github.com/builtbybel/ThisIsWin11/blob/main/assets/pages/page-windowsupdates.png?raw=true";
|
||||
|
||||
break;
|
||||
|
||||
case PageTitle.SnapLayouts:
|
||||
lnkConfigure.Visible = false;
|
||||
lnkCustomize.Visible = true;
|
||||
lnkCustomize.Text = "Disable SnapLayouts feature";
|
||||
lblHeader.Text = "Snap Layouts";
|
||||
btnAssist.Text = "Snap is a productivity feature that helps users arrange applications and other windows logically on-screen.\n\n" +
|
||||
"In 2019, Microsoft relaunched the PowerToys brand with a new utility called FancyZones that extends the Snap experience to allow for more complex and useful on-screen window layouts. A key part of this utility, incredibly, has been integrated into Windows 11 and is now called Snap Layouts.\n\n" +
|
||||
"When you're working in a bunch of open windows, Windows 11 will let you arrange them in different layouts on the screen, and will save all of those windows in that arrangement. ";
|
||||
pbView.Visible = true;
|
||||
pbView.ImageLocation = "https://github.com/builtbybel/ThisIsWin11/blob/main/assets/pages/page-snaplayouts.png?raw=true";
|
||||
|
||||
break;
|
||||
|
||||
case PageTitle.Widgets:
|
||||
lnkConfigure.Visible = false;
|
||||
lnkCustomize.Visible = true;
|
||||
lnkCustomize.Text = "Disable Widgets feature";
|
||||
lblHeader.Text = "Widgets";
|
||||
btnAssist.Text = "With Windows 11, Microsoft has brought Widgets, where you can find all kinds of information with just a click. It’s similar to Google Assistant’s Snapshot and the “Today View” in Apple’s iOS 15 or macOS Monterey.";
|
||||
pbView.Visible = true;
|
||||
pbView.ImageLocation = "https://github.com/builtbybel/ThisIsWin11/blob/main/assets/pages/page-widgets.png?raw=true";
|
||||
|
||||
break;
|
||||
|
||||
case PageTitle.GestureControls:
|
||||
lnkConfigure.Visible = true;
|
||||
lnkCustomize.Visible = false;
|
||||
lblHeader.Text = "Advanced Gesture Controls";
|
||||
btnAssist.Text = "Gestures have long been part of Windows 10, but frankly speaking, they were not very smooth, and the transitions between apps and virtual desktops were awful. With the new Advanced Gesture Controls and mandatory precision touchpad requirement for Windows 11, things might get better.\n\n" +
|
||||
"Now, you can customize three-finger and four-finger swipes according to your preference.";
|
||||
pbView.Visible = true;
|
||||
pbView.ImageLocation = "https://github.com/builtbybel/ThisIsWin11/blob/main/assets/pages/page-gestures.png?raw=true";
|
||||
|
||||
break;
|
||||
|
||||
case PageTitle.WallpapersNSounds:
|
||||
lnkConfigure.Visible = true;
|
||||
lnkCustomize.Visible = false;
|
||||
lblHeader.Text = "New Wallpapers && Sounds";
|
||||
btnAssist.Text = "Along with Windows 11, Microsoft has also brought a series of beautiful wallpapers, sounds, and themes. Wallpapers such as Captured Motion, Flow, Sunrise, Glow are some of the nicest wallpapers you can find on a desktop OS.\n\n" +
|
||||
"Also, the startup and notification sound is really good.\nPress the Magic Button to listen to the startup sound.\n\n" +
|
||||
"You will find great new wallpapers for Microsoft products also here https://wallpaperhub.app";
|
||||
pbView.Visible = true;
|
||||
pbView.ImageLocation = wallpaperPath;
|
||||
|
||||
break;
|
||||
|
||||
case PageTitle.LockScreen:
|
||||
lnkConfigure.Visible = true;
|
||||
lnkCustomize.Visible = false;
|
||||
lblHeader.Text = "New Minimal Lock Screen";
|
||||
btnAssist.Text = "Windows 11 supports animated lock-screen background on PCs that have accelerometer.\n\n" +
|
||||
"It applies an acrylic blur in the background, and the new variable Segoe UI font makes things even better. If you don’t want all the links and recommendations on the lock screen, you can disable them from Settings for a clean lock screen.";
|
||||
pbView.Visible = true;
|
||||
pbView.ImageLocation = "https://github.com/builtbybel/ThisIsWin11/blob/main/assets/pages/page-lockscreen.png?raw=true";
|
||||
|
||||
break;
|
||||
|
||||
case PageTitle.TouchKeyboard:
|
||||
lnkConfigure.Visible = true;
|
||||
lnkCustomize.Visible = false;
|
||||
lblHeader.Text = "Touch Keyboard Improvements";
|
||||
btnAssist.Text = "Windows 11 comes with a Touch Keyboard feature that remains turned off by default. You can use this touch keyboard on a computer or laptop, which is not a touch screen. It is a handy application if your physical keyboard is totally not working or a few keys are not working.\n\n" +
|
||||
"Microsoft made it more intuitive to use by drawing inspiration from smartphone keyboards.\n\nEven you can use this Touch Keyboard as a substitute for a mechanical keyboard.";
|
||||
pbView.Visible = true;
|
||||
pbView.ImageLocation = "https://github.com/builtbybel/ThisIsWin11/blob/main/assets/pages/page-touchkeyboard.png?raw=true";
|
||||
break;
|
||||
|
||||
case PageTitle.AndroidApps:
|
||||
lnkConfigure.Visible = false;
|
||||
lnkCustomize.Visible = true;
|
||||
lnkCustomize.Text = "Install Windows Subsystem for Android";
|
||||
lblHeader.Text = "Android Apps Support";
|
||||
btnAssist.Text = "Microsoft has released Android apps support in the Beta Channel of Windows 11.\n\n" +
|
||||
"The experience of installing apps is very simple. Microsoft has partnered with Amazon, so the Microsoft Store will list apps but send you over to Amazon’s Appstore app to get them installed or updated.\n\n" +
|
||||
"The best part is that you can even sideload APKs on your Windows 11 PC and pin them to the Start menu or taskbar and use all of the windowing and multitasking features of Windows 11 just like a regular desktop app.";
|
||||
pbView.Visible = true;
|
||||
pbView.ImageLocation = "https://github.com/builtbybel/ThisIsWin11/blob/main/assets/pages/page-androidapps.png?raw=true";
|
||||
|
||||
break;
|
||||
|
||||
case PageTitle.Gaming:
|
||||
lnkConfigure.Visible = true;
|
||||
lnkCustomize.Visible = true;
|
||||
lblHeader.Text = "Gaming";
|
||||
lnkCustomize.Text = "Improve Gaming";
|
||||
btnAssist.Text = "If you're a gamer, Windows 11 was made for you and the following three features will make it great for gaming.\n\n" +
|
||||
"1. During the Windows 11 unveiling, Microsoft announced support for Auto HDR that would elevate the viewing experience while playing games.\n\n" +
|
||||
"HDR stands for High Dynamic Range, as opposed to SDR or Standard Dynamic Range. With a higher range of colors, HDR gives more vibrant and realistic colors to your video games and makes the sceneries look even better.\n\n" +
|
||||
"2. Microsoft also revealed that the DirectStorage API will come to Windows PCs. DirectStorage is an API that allows the GPU to load game data directly from the SSD and skip the CPU processing. With DirectStorage, the GPU processes and decompresses the data itself.\n\n" +
|
||||
"3. Windows 11 will have an deeper Implementation of the Xbox App. The Xbox app and Game Pass are built-in features, giving Game Pass Ultimate subscribers instant access to a massive catalog of video games along with Xbox Cloud Gaming.";
|
||||
pbView.Visible = true;
|
||||
pbView.ImageLocation = "https://github.com/builtbybel/ThisIsWin11/blob/main/assets/pages/page-gaming.png?raw=true";
|
||||
|
||||
break;
|
||||
|
||||
case PageTitle.Finish:
|
||||
lnkConfigure.Visible = false;
|
||||
lnkCustomize.Visible = true;
|
||||
lblHeader.Text = "See you in a bit";
|
||||
lnkCustomize.Text = "We have some tips for you!";
|
||||
btnAssist.Text = "We're finish setting up your device.";
|
||||
pbView.Visible = true;
|
||||
pbView.ImageLocation = "https://github.com/builtbybel/ThisIsWin11/blob/main/assets/pages/endpage.png?raw=true";
|
||||
|
||||
break;
|
||||
|
||||
case PageTitle.Custom:
|
||||
lnkConfigure.Visible = false;
|
||||
lnkCustomize.Visible = true;
|
||||
lnkCustomize.Text = "Customize Windows 11";
|
||||
lblHeader.Text = "Customization marketplace";
|
||||
btnAssist.Text = "You will find here code snippets (Mods) to customize Windows 11 according to your wishes.";
|
||||
pbView.Visible = false;
|
||||
pbView.ImageLocation = "";
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void btnBack_Click(object sender, EventArgs e)
|
||||
{
|
||||
var mainForm = Application.OpenForms.OfType<MainForm>().Single();
|
||||
mainForm.pnlForm.Controls.Clear();
|
||||
if (mainForm.INavPage != null) mainForm.pnlForm.Controls.Add(mainForm.INavPage);
|
||||
}
|
||||
|
||||
private void lnkCustomize_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
{
|
||||
switch (INavPage)
|
||||
{
|
||||
case PageTitle.Apps:
|
||||
mainForm.SetView(new AppsPageView());
|
||||
break;
|
||||
|
||||
case PageTitle.MicrosoftStore:
|
||||
mainForm.SetView(new PackagesPageView());
|
||||
break;
|
||||
|
||||
case PageTitle.Custom:
|
||||
mainForm.SetView(new ModsPageView());
|
||||
break;
|
||||
|
||||
case PageTitle.Finish: // Open Microsoft Tips app
|
||||
|
||||
bool tipsApp = Directory.Exists(Path.Combine
|
||||
(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
|
||||
"Packages\\Microsoft.Getstarted_8wekyb3d8bbwe"));
|
||||
|
||||
if (!tipsApp) MessageBox.Show("Microsoft Tips app is not installed on this system :(\nYou can get it on the Microsoft Store.", "We are sorry...", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
else
|
||||
{
|
||||
Process.Start(@"shell:appsfolder\Microsoft.Getstarted_8wekyb3d8bbwe!App");
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
btnBack.PerformClick();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void lnkConfigure_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
{
|
||||
switch (INavPage)
|
||||
{
|
||||
case PageTitle.Setup:
|
||||
break;
|
||||
|
||||
case PageTitle.NewLook:
|
||||
Process.Start("ms-settings:personalization-background");
|
||||
break;
|
||||
|
||||
case PageTitle.StartMenu:
|
||||
Process.Start("ms-settings:personalization-start");
|
||||
break;
|
||||
|
||||
case PageTitle.Apps:
|
||||
|
||||
Process.Start("ms-settings:appsfeatures-app");
|
||||
|
||||
break;
|
||||
|
||||
case PageTitle.Privacy:
|
||||
Process.Start("ms-settings:privacy-general");
|
||||
break;
|
||||
|
||||
case PageTitle.MicrosoftStore:
|
||||
|
||||
break;
|
||||
|
||||
case PageTitle.ActionCenter:
|
||||
Process.Start("ms-settings:notifications");
|
||||
break;
|
||||
|
||||
case PageTitle.FileExplorer:
|
||||
|
||||
try
|
||||
{
|
||||
Process proc = new Process();
|
||||
proc.StartInfo.UseShellExecute = false;
|
||||
proc.StartInfo.FileName = "rundll32.exe";
|
||||
proc.StartInfo.Arguments = "shell32.dll,Options_RunDLL 0";
|
||||
proc.Start();
|
||||
|
||||
break;
|
||||
}
|
||||
catch { }
|
||||
|
||||
break;
|
||||
|
||||
case PageTitle.SettingsApp:
|
||||
|
||||
break;
|
||||
|
||||
case PageTitle.WindowsUpdates:
|
||||
Process.Start("ms-settings:windowsupdate-options");
|
||||
break;
|
||||
|
||||
case PageTitle.SnapLayouts:
|
||||
|
||||
break;
|
||||
|
||||
case PageTitle.Widgets:
|
||||
|
||||
break;
|
||||
|
||||
case PageTitle.GestureControls:
|
||||
Process.Start("ms-settings:mousetouchpad");
|
||||
break;
|
||||
|
||||
case PageTitle.WallpapersNSounds:
|
||||
Process.Start("ms-settings:personalization-background");
|
||||
break;
|
||||
|
||||
case PageTitle.LockScreen:
|
||||
Process.Start("ms-settings:lockscreen");
|
||||
|
||||
break;
|
||||
|
||||
case PageTitle.TouchKeyboard:
|
||||
|
||||
Process.Start("ms-settings:easeofaccess-keyboard");
|
||||
break;
|
||||
|
||||
case PageTitle.AndroidApps:
|
||||
|
||||
break;
|
||||
|
||||
case PageTitle.Gaming:
|
||||
Process.Start("ms-settings:gaming-gamebar");
|
||||
break;
|
||||
|
||||
case PageTitle.Finish:
|
||||
|
||||
break;
|
||||
|
||||
case PageTitle.Custom:
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user