diff --git a/src/Privatezilla/Privatezilla.sln b/src/Privatezilla/Privatezilla.sln
new file mode 100644
index 0000000..86b0579
--- /dev/null
+++ b/src/Privatezilla/Privatezilla.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.30011.22
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Privatezilla", "Privatezilla\Privatezilla.csproj", "{1CF5392E-0522-49D4-8343-B732BE762086}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {1CF5392E-0522-49D4-8343-B732BE762086}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1CF5392E-0522-49D4-8343-B732BE762086}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1CF5392E-0522-49D4-8343-B732BE762086}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1CF5392E-0522-49D4-8343-B732BE762086}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {8E8CB191-75D5-4C79-A0FE-23D7D018C316}
+ EndGlobalSection
+EndGlobal
diff --git a/src/Privatezilla/Privatezilla/App.config b/src/Privatezilla/Privatezilla/App.config
new file mode 100644
index 0000000..5ffd8f8
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/src/Privatezilla/Privatezilla/AppIcon.ico b/src/Privatezilla/Privatezilla/AppIcon.ico
new file mode 100644
index 0000000..49dadb3
Binary files /dev/null and b/src/Privatezilla/Privatezilla/AppIcon.ico differ
diff --git a/src/Privatezilla/Privatezilla/GitHubIcon.png b/src/Privatezilla/Privatezilla/GitHubIcon.png
new file mode 100644
index 0000000..1ec1583
Binary files /dev/null and b/src/Privatezilla/Privatezilla/GitHubIcon.png differ
diff --git a/src/Privatezilla/Privatezilla/Helpers/RegistryHelper.cs b/src/Privatezilla/Privatezilla/Helpers/RegistryHelper.cs
new file mode 100644
index 0000000..a0a19ac
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Helpers/RegistryHelper.cs
@@ -0,0 +1,44 @@
+using Microsoft.Win32;
+using Privatezilla.Setting;
+using System;
+using System.Windows.Forms;
+
+namespace Privatezilla
+{
+ ///
+ /// Check whether Registry values equal
+ ///
+ internal class RegistryHelper
+ {
+ public SettingBase Setting { get; }
+
+ public static bool IntEquals(string keyName, string valueName, int expectedValue)
+ {
+ try
+ {
+ var value = Registry.GetValue(keyName, valueName, null);
+ return (value != null && (int)value == expectedValue);
+ }
+ catch (Exception ex)
+
+ {
+ MessageBox.Show(keyName, ex.Message, MessageBoxButtons.OK);
+ return false;
+ }
+ }
+
+ public static bool StringEquals(string keyName, string valueName, string expectedValue)
+ {
+ try
+ {
+ var value = Registry.GetValue(keyName, valueName, null);
+ return (value != null && (string)value == expectedValue);
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(keyName, ex.Message, MessageBoxButtons.OK);
+ return false;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Helpers/SettingsNode.cs b/src/Privatezilla/Privatezilla/Helpers/SettingsNode.cs
new file mode 100644
index 0000000..fb0db14
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Helpers/SettingsNode.cs
@@ -0,0 +1,19 @@
+using Privatezilla.Setting;
+using System.Windows.Forms;
+
+namespace Privatezilla
+{
+ internal class SettingNode : TreeNode
+ {
+ public SettingBase Setting { get; }
+
+ public SettingNode(SettingBase setting)
+ {
+ Setting = setting;
+ Text = Setting.ID();
+ ToolTipText = Setting.Info();
+ //Checked = true;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Helpers/SetttingsBase.cs b/src/Privatezilla/Privatezilla/Helpers/SetttingsBase.cs
new file mode 100644
index 0000000..08eea15
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Helpers/SetttingsBase.cs
@@ -0,0 +1,35 @@
+namespace Privatezilla.Setting
+{
+ public abstract class SettingBase
+ {
+ ///
+ /// Name of setting
+ ///
+ /// The setting name
+ public abstract string ID();
+
+ ///
+ /// Tooltip text of setting
+ ///
+ /// The setting tooltip
+ public abstract string Info();
+
+ ///
+ /// Checks whether the setting should be applied
+ ///
+ /// Returns true if the setting should be applied, false otherwise.
+ public abstract bool CheckSetting();
+
+ ///
+ /// Applies the setting
+ ///
+ /// Returns true if the setting was successfull, false otherwise.
+ public abstract bool DoSetting();
+
+ ///
+ /// Revert the setting
+ ///
+ /// Returns true if the setting was successfull, false otherwise.
+ public abstract bool UndoSetting();
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Helpers/WindowsHelper.cs b/src/Privatezilla/Privatezilla/Helpers/WindowsHelper.cs
new file mode 100644
index 0000000..3c46c15
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Helpers/WindowsHelper.cs
@@ -0,0 +1,16 @@
+using Microsoft.Win32;
+
+namespace Privatezilla
+{
+ internal static class WindowsHelper
+ {
+ internal static string GetOS()
+ {
+
+ string releaseID = Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "ReleaseId", "").ToString();
+ return releaseID;
+
+ }
+
+ }
+}
diff --git a/src/Privatezilla/Privatezilla/Interfaces/IListView.cs b/src/Privatezilla/Privatezilla/Interfaces/IListView.cs
new file mode 100644
index 0000000..bcfc427
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Interfaces/IListView.cs
@@ -0,0 +1,40 @@
+using System;
+using System.Collections;
+using System.Windows.Forms;
+
+namespace Privatezilla
+{
+ /* Modified ListView sort example from https://support.microsoft.com/en-us/kb/319401
+ which will not only sort ascending but both ways */
+
+ public class ListViewItemComparer : IComparer
+ {
+ private readonly int col;
+ private readonly bool bAsc = false;
+
+ public ListViewItemComparer()
+ {
+ col = 0;
+ }
+
+ public ListViewItemComparer(int column, bool b)
+ {
+ col = column;
+ bAsc = b;
+ }
+
+ public int Compare(object x, object y)
+ {
+ if (bAsc)
+ {
+ return String.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text);
+ // bAsc = false;
+ }
+ else
+ {
+ return String.Compare(((ListViewItem)y).SubItems[col].Text, ((ListViewItem)x).SubItems[col].Text);
+ // bAsc = true;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Interfaces/ITreeNode.cs b/src/Privatezilla/Privatezilla/Interfaces/ITreeNode.cs
new file mode 100644
index 0000000..92236d0
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Interfaces/ITreeNode.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.Windows.Forms;
+
+namespace Privatezilla.ITreeNode
+{
+ public static class ITreeNode
+ {
+ // Retrieving TreeView nodes as IEnumerable
+ public static IEnumerable 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;
+ }
+ }
+ }
+ }
+}
diff --git a/src/Privatezilla/Privatezilla/MainWindow.Designer.cs b/src/Privatezilla/Privatezilla/MainWindow.Designer.cs
new file mode 100644
index 0000000..bd1b47d
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/MainWindow.Designer.cs
@@ -0,0 +1,458 @@
+namespace Privatezilla
+{
+ partial class MainWindow
+ {
+ ///
+ /// Erforderliche Designervariable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Verwendete Ressourcen bereinigen.
+ ///
+ /// True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Vom Windows Form-Designer generierter Code
+
+ ///
+ /// Erforderliche Methode für die Designerunterstützung.
+ /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainWindow));
+ this.TvwSettings = new System.Windows.Forms.TreeView();
+ this.LblMainMenu = new System.Windows.Forms.Button();
+ this.MainMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
+ this.Help = new System.Windows.Forms.ToolStripMenuItem();
+ this.CommunityPkg = new System.Windows.Forms.ToolStripMenuItem();
+ this.CheckRelease = new System.Windows.Forms.ToolStripMenuItem();
+ this.Info = new System.Windows.Forms.ToolStripMenuItem();
+ this.PnlNav = new System.Windows.Forms.Panel();
+ this.LblPS = new System.Windows.Forms.LinkLabel();
+ this.LblSettings = new System.Windows.Forms.LinkLabel();
+ this.LstPS = new System.Windows.Forms.CheckedListBox();
+ this.PnlSettings = new System.Windows.Forms.Panel();
+ this.assetOpenGitHub = new System.Windows.Forms.PictureBox();
+ this.PBar = new System.Windows.Forms.ProgressBar();
+ this.LvwStatus = new System.Windows.Forms.ListView();
+ this.Setting = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.State = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.LblStatus = new System.Windows.Forms.Label();
+ this.BtnSettingsUndo = new System.Windows.Forms.Button();
+ this.BtnSettingsDo = new System.Windows.Forms.Button();
+ this.BtnSettingsAnalyze = new System.Windows.Forms.Button();
+ this.PnlPS = new System.Windows.Forms.Panel();
+ this.BtnMenuPS = new System.Windows.Forms.Button();
+ this.TxtPSInfo = new System.Windows.Forms.TextBox();
+ this.TxtOutputPS = new System.Windows.Forms.TextBox();
+ this.TxtConsolePS = new System.Windows.Forms.TextBox();
+ this.LblPSHeader = new System.Windows.Forms.Label();
+ this.PSMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
+ this.PSImport = new System.Windows.Forms.ToolStripMenuItem();
+ this.PSSaveAs = new System.Windows.Forms.ToolStripMenuItem();
+ this.PSMarketplace = new System.Windows.Forms.ToolStripMenuItem();
+ this.ToolTip = new System.Windows.Forms.ToolTip(this.components);
+ this.PnlSettingsBottom = new System.Windows.Forms.Panel();
+ this.ChkCodePS = new System.Windows.Forms.CheckBox();
+ this.BtnDoPS = new System.Windows.Forms.Button();
+ this.MainMenu.SuspendLayout();
+ this.PnlNav.SuspendLayout();
+ this.PnlSettings.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.assetOpenGitHub)).BeginInit();
+ this.PnlPS.SuspendLayout();
+ this.PSMenu.SuspendLayout();
+ this.PnlSettingsBottom.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // TvwSettings
+ //
+ resources.ApplyResources(this.TvwSettings, "TvwSettings");
+ this.TvwSettings.BackColor = System.Drawing.Color.WhiteSmoke;
+ this.TvwSettings.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.TvwSettings.CheckBoxes = true;
+ this.TvwSettings.LineColor = System.Drawing.Color.DarkOrchid;
+ this.TvwSettings.Name = "TvwSettings";
+ this.TvwSettings.ShowLines = false;
+ this.TvwSettings.ShowNodeToolTips = true;
+ this.TvwSettings.ShowPlusMinus = false;
+ this.TvwSettings.TabStop = false;
+ this.TvwSettings.AfterCheck += new System.Windows.Forms.TreeViewEventHandler(this.TvwSetting_AfterCheck);
+ //
+ // LblMainMenu
+ //
+ resources.ApplyResources(this.LblMainMenu, "LblMainMenu");
+ this.LblMainMenu.BackColor = System.Drawing.Color.WhiteSmoke;
+ this.LblMainMenu.FlatAppearance.BorderColor = System.Drawing.Color.WhiteSmoke;
+ this.LblMainMenu.FlatAppearance.BorderSize = 0;
+ this.LblMainMenu.FlatAppearance.MouseOverBackColor = System.Drawing.Color.HotPink;
+ this.LblMainMenu.ForeColor = System.Drawing.Color.Black;
+ this.LblMainMenu.Name = "LblMainMenu";
+ this.LblMainMenu.UseVisualStyleBackColor = false;
+ this.LblMainMenu.Click += new System.EventHandler(this.LblMainMenu_Click);
+ //
+ // MainMenu
+ //
+ resources.ApplyResources(this.MainMenu, "MainMenu");
+ this.MainMenu.ImageScalingSize = new System.Drawing.Size(18, 18);
+ this.MainMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.Help,
+ this.CommunityPkg,
+ this.CheckRelease,
+ this.Info});
+ this.MainMenu.Name = "MainMenu";
+ this.MainMenu.RenderMode = System.Windows.Forms.ToolStripRenderMode.System;
+ //
+ // Help
+ //
+ resources.ApplyResources(this.Help, "Help");
+ this.Help.Name = "Help";
+ this.Help.Click += new System.EventHandler(this.Help_Click);
+ //
+ // CommunityPkg
+ //
+ resources.ApplyResources(this.CommunityPkg, "CommunityPkg");
+ this.CommunityPkg.Name = "CommunityPkg";
+ this.CommunityPkg.Click += new System.EventHandler(this.CommunityPkg_Click);
+ //
+ // CheckRelease
+ //
+ resources.ApplyResources(this.CheckRelease, "CheckRelease");
+ this.CheckRelease.Name = "CheckRelease";
+ this.CheckRelease.Click += new System.EventHandler(this.CheckRelease_Click);
+ //
+ // Info
+ //
+ resources.ApplyResources(this.Info, "Info");
+ this.Info.Name = "Info";
+ this.Info.Click += new System.EventHandler(this.Info_Click);
+ //
+ // PnlNav
+ //
+ this.PnlNav.BackColor = System.Drawing.Color.WhiteSmoke;
+ this.PnlNav.Controls.Add(this.TvwSettings);
+ this.PnlNav.Controls.Add(this.LblPS);
+ this.PnlNav.Controls.Add(this.LblSettings);
+ this.PnlNav.Controls.Add(this.LblMainMenu);
+ this.PnlNav.Controls.Add(this.LstPS);
+ resources.ApplyResources(this.PnlNav, "PnlNav");
+ this.PnlNav.Name = "PnlNav";
+ //
+ // LblPS
+ //
+ this.LblPS.ActiveLinkColor = System.Drawing.Color.DeepPink;
+ this.LblPS.AutoEllipsis = true;
+ resources.ApplyResources(this.LblPS, "LblPS");
+ this.LblPS.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
+ this.LblPS.LinkColor = System.Drawing.Color.Black;
+ this.LblPS.Name = "LblPS";
+ this.LblPS.TabStop = true;
+ this.LblPS.VisitedLinkColor = System.Drawing.Color.DimGray;
+ this.LblPS.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LblPS_LinkClicked);
+ //
+ // LblSettings
+ //
+ this.LblSettings.ActiveLinkColor = System.Drawing.Color.DeepPink;
+ this.LblSettings.AutoEllipsis = true;
+ resources.ApplyResources(this.LblSettings, "LblSettings");
+ this.LblSettings.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
+ this.LblSettings.LinkColor = System.Drawing.Color.Black;
+ this.LblSettings.Name = "LblSettings";
+ this.LblSettings.TabStop = true;
+ this.LblSettings.VisitedLinkColor = System.Drawing.Color.DimGray;
+ this.LblSettings.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LblSettings_LinkClicked);
+ //
+ // LstPS
+ //
+ resources.ApplyResources(this.LstPS, "LstPS");
+ this.LstPS.BackColor = System.Drawing.Color.WhiteSmoke;
+ this.LstPS.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.LstPS.ForeColor = System.Drawing.Color.Black;
+ this.LstPS.FormattingEnabled = true;
+ this.LstPS.Name = "LstPS";
+ this.LstPS.Sorted = true;
+ this.LstPS.ThreeDCheckBoxes = true;
+ this.LstPS.SelectedIndexChanged += new System.EventHandler(this.LstPS_SelectedIndexChanged);
+ //
+ // PnlSettings
+ //
+ resources.ApplyResources(this.PnlSettings, "PnlSettings");
+ this.PnlSettings.Controls.Add(this.assetOpenGitHub);
+ this.PnlSettings.Controls.Add(this.PBar);
+ this.PnlSettings.Controls.Add(this.LvwStatus);
+ this.PnlSettings.Controls.Add(this.LblStatus);
+ this.PnlSettings.Name = "PnlSettings";
+ //
+ // assetOpenGitHub
+ //
+ resources.ApplyResources(this.assetOpenGitHub, "assetOpenGitHub");
+ this.assetOpenGitHub.Cursor = System.Windows.Forms.Cursors.Hand;
+ this.assetOpenGitHub.Name = "assetOpenGitHub";
+ this.assetOpenGitHub.TabStop = false;
+ this.ToolTip.SetToolTip(this.assetOpenGitHub, resources.GetString("assetOpenGitHub.ToolTip"));
+ this.assetOpenGitHub.Click += new System.EventHandler(this.assetOpenGitHubPage_Click);
+ //
+ // PBar
+ //
+ resources.ApplyResources(this.PBar, "PBar");
+ this.PBar.Name = "PBar";
+ //
+ // LvwStatus
+ //
+ resources.ApplyResources(this.LvwStatus, "LvwStatus");
+ this.LvwStatus.BackColor = System.Drawing.Color.White;
+ this.LvwStatus.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.LvwStatus.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+ this.Setting,
+ this.State});
+ this.LvwStatus.FullRowSelect = true;
+ this.LvwStatus.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
+ this.LvwStatus.HideSelection = false;
+ this.LvwStatus.Name = "LvwStatus";
+ this.LvwStatus.TileSize = new System.Drawing.Size(1, 1);
+ this.LvwStatus.UseCompatibleStateImageBehavior = false;
+ this.LvwStatus.View = System.Windows.Forms.View.Details;
+ this.LvwStatus.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.LvwStatus_ColumnClick);
+ //
+ // Setting
+ //
+ resources.ApplyResources(this.Setting, "Setting");
+ //
+ // State
+ //
+ resources.ApplyResources(this.State, "State");
+ //
+ // LblStatus
+ //
+ resources.ApplyResources(this.LblStatus, "LblStatus");
+ this.LblStatus.AutoEllipsis = true;
+ this.LblStatus.BackColor = System.Drawing.Color.White;
+ this.LblStatus.Name = "LblStatus";
+ //
+ // BtnSettingsUndo
+ //
+ resources.ApplyResources(this.BtnSettingsUndo, "BtnSettingsUndo");
+ this.BtnSettingsUndo.BackColor = System.Drawing.Color.Gainsboro;
+ this.BtnSettingsUndo.FlatAppearance.BorderColor = System.Drawing.Color.Gainsboro;
+ this.BtnSettingsUndo.FlatAppearance.BorderSize = 0;
+ this.BtnSettingsUndo.Name = "BtnSettingsUndo";
+ this.BtnSettingsUndo.UseVisualStyleBackColor = false;
+ this.BtnSettingsUndo.Click += new System.EventHandler(this.BtnSettingsUndo_Click);
+ //
+ // BtnSettingsDo
+ //
+ resources.ApplyResources(this.BtnSettingsDo, "BtnSettingsDo");
+ this.BtnSettingsDo.BackColor = System.Drawing.Color.Gainsboro;
+ this.BtnSettingsDo.FlatAppearance.BorderColor = System.Drawing.Color.Gainsboro;
+ this.BtnSettingsDo.FlatAppearance.BorderSize = 0;
+ this.BtnSettingsDo.Name = "BtnSettingsDo";
+ this.BtnSettingsDo.UseVisualStyleBackColor = false;
+ this.BtnSettingsDo.Click += new System.EventHandler(this.BtnSettingsDo_Click);
+ //
+ // BtnSettingsAnalyze
+ //
+ resources.ApplyResources(this.BtnSettingsAnalyze, "BtnSettingsAnalyze");
+ this.BtnSettingsAnalyze.BackColor = System.Drawing.Color.Gainsboro;
+ this.BtnSettingsAnalyze.FlatAppearance.BorderColor = System.Drawing.Color.Gainsboro;
+ this.BtnSettingsAnalyze.FlatAppearance.BorderSize = 0;
+ this.BtnSettingsAnalyze.Name = "BtnSettingsAnalyze";
+ this.BtnSettingsAnalyze.UseVisualStyleBackColor = false;
+ this.BtnSettingsAnalyze.Click += new System.EventHandler(this.BtnSettingsAnalyze_Click);
+ //
+ // PnlPS
+ //
+ resources.ApplyResources(this.PnlPS, "PnlPS");
+ this.PnlPS.BackColor = System.Drawing.Color.White;
+ this.PnlPS.Controls.Add(this.BtnMenuPS);
+ this.PnlPS.Controls.Add(this.TxtPSInfo);
+ this.PnlPS.Controls.Add(this.TxtOutputPS);
+ this.PnlPS.Controls.Add(this.TxtConsolePS);
+ this.PnlPS.Controls.Add(this.LblPSHeader);
+ this.PnlPS.Name = "PnlPS";
+ //
+ // BtnMenuPS
+ //
+ resources.ApplyResources(this.BtnMenuPS, "BtnMenuPS");
+ this.BtnMenuPS.BackColor = System.Drawing.Color.Gainsboro;
+ this.BtnMenuPS.FlatAppearance.BorderColor = System.Drawing.Color.Gainsboro;
+ this.BtnMenuPS.FlatAppearance.BorderSize = 0;
+ this.BtnMenuPS.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Silver;
+ this.BtnMenuPS.ForeColor = System.Drawing.Color.Black;
+ this.BtnMenuPS.Name = "BtnMenuPS";
+ this.BtnMenuPS.UseVisualStyleBackColor = false;
+ this.BtnMenuPS.Click += new System.EventHandler(this.BtnMenuPS_Click);
+ //
+ // TxtPSInfo
+ //
+ resources.ApplyResources(this.TxtPSInfo, "TxtPSInfo");
+ this.TxtPSInfo.BackColor = System.Drawing.Color.White;
+ this.TxtPSInfo.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.TxtPSInfo.ForeColor = System.Drawing.Color.Black;
+ this.TxtPSInfo.Name = "TxtPSInfo";
+ this.TxtPSInfo.ReadOnly = true;
+ //
+ // TxtOutputPS
+ //
+ resources.ApplyResources(this.TxtOutputPS, "TxtOutputPS");
+ this.TxtOutputPS.BackColor = System.Drawing.Color.White;
+ this.TxtOutputPS.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.TxtOutputPS.ForeColor = System.Drawing.Color.Black;
+ this.TxtOutputPS.Name = "TxtOutputPS";
+ //
+ // TxtConsolePS
+ //
+ resources.ApplyResources(this.TxtConsolePS, "TxtConsolePS");
+ this.TxtConsolePS.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest;
+ this.TxtConsolePS.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.FileSystem;
+ this.TxtConsolePS.BackColor = System.Drawing.Color.PaleTurquoise;
+ this.TxtConsolePS.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.TxtConsolePS.ForeColor = System.Drawing.Color.Black;
+ this.TxtConsolePS.Name = "TxtConsolePS";
+ //
+ // LblPSHeader
+ //
+ resources.ApplyResources(this.LblPSHeader, "LblPSHeader");
+ this.LblPSHeader.BackColor = System.Drawing.Color.Gainsboro;
+ this.LblPSHeader.Name = "LblPSHeader";
+ //
+ // PSMenu
+ //
+ this.PSMenu.BackColor = System.Drawing.Color.WhiteSmoke;
+ resources.ApplyResources(this.PSMenu, "PSMenu");
+ this.PSMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.PSImport,
+ this.PSSaveAs,
+ this.PSMarketplace});
+ this.PSMenu.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.Table;
+ this.PSMenu.Name = "contextHostsMenu";
+ this.PSMenu.RenderMode = System.Windows.Forms.ToolStripRenderMode.System;
+ //
+ // PSImport
+ //
+ resources.ApplyResources(this.PSImport, "PSImport");
+ this.PSImport.Name = "PSImport";
+ this.PSImport.Click += new System.EventHandler(this.PSImport_Click);
+ //
+ // PSSaveAs
+ //
+ resources.ApplyResources(this.PSSaveAs, "PSSaveAs");
+ this.PSSaveAs.Name = "PSSaveAs";
+ this.PSSaveAs.Click += new System.EventHandler(this.PSSaveAs_Click);
+ //
+ // PSMarketplace
+ //
+ this.PSMarketplace.BackColor = System.Drawing.Color.Transparent;
+ resources.ApplyResources(this.PSMarketplace, "PSMarketplace");
+ this.PSMarketplace.ForeColor = System.Drawing.Color.Black;
+ this.PSMarketplace.Name = "PSMarketplace";
+ this.PSMarketplace.Click += new System.EventHandler(this.PSMarketplace_Click);
+ //
+ // ToolTip
+ //
+ this.ToolTip.AutomaticDelay = 0;
+ this.ToolTip.UseAnimation = false;
+ this.ToolTip.UseFading = false;
+ //
+ // PnlSettingsBottom
+ //
+ this.PnlSettingsBottom.Controls.Add(this.BtnSettingsAnalyze);
+ this.PnlSettingsBottom.Controls.Add(this.BtnSettingsUndo);
+ this.PnlSettingsBottom.Controls.Add(this.BtnSettingsDo);
+ this.PnlSettingsBottom.Controls.Add(this.ChkCodePS);
+ this.PnlSettingsBottom.Controls.Add(this.BtnDoPS);
+ resources.ApplyResources(this.PnlSettingsBottom, "PnlSettingsBottom");
+ this.PnlSettingsBottom.Name = "PnlSettingsBottom";
+ //
+ // ChkCodePS
+ //
+ resources.ApplyResources(this.ChkCodePS, "ChkCodePS");
+ this.ChkCodePS.BackColor = System.Drawing.Color.Gainsboro;
+ this.ChkCodePS.FlatAppearance.BorderColor = System.Drawing.Color.Black;
+ this.ChkCodePS.FlatAppearance.BorderSize = 0;
+ this.ChkCodePS.ForeColor = System.Drawing.Color.Black;
+ this.ChkCodePS.Name = "ChkCodePS";
+ this.ChkCodePS.UseVisualStyleBackColor = false;
+ this.ChkCodePS.CheckedChanged += new System.EventHandler(this.ChkCodePS_CheckedChanged);
+ //
+ // BtnDoPS
+ //
+ resources.ApplyResources(this.BtnDoPS, "BtnDoPS");
+ this.BtnDoPS.BackColor = System.Drawing.Color.Gainsboro;
+ this.BtnDoPS.FlatAppearance.BorderColor = System.Drawing.Color.Gainsboro;
+ this.BtnDoPS.FlatAppearance.BorderSize = 0;
+ this.BtnDoPS.Name = "BtnDoPS";
+ this.BtnDoPS.UseVisualStyleBackColor = false;
+ this.BtnDoPS.Click += new System.EventHandler(this.BtnDoPS_Click);
+ //
+ // MainWindow
+ //
+ resources.ApplyResources(this, "$this");
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
+ this.BackColor = System.Drawing.Color.White;
+ this.Controls.Add(this.PnlSettingsBottom);
+ this.Controls.Add(this.PnlNav);
+ this.Controls.Add(this.PnlSettings);
+ this.Controls.Add(this.PnlPS);
+ this.Name = "MainWindow";
+ this.ShowIcon = false;
+ this.MainMenu.ResumeLayout(false);
+ this.PnlNav.ResumeLayout(false);
+ this.PnlNav.PerformLayout();
+ this.PnlSettings.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.assetOpenGitHub)).EndInit();
+ this.PnlPS.ResumeLayout(false);
+ this.PnlPS.PerformLayout();
+ this.PSMenu.ResumeLayout(false);
+ this.PnlSettingsBottom.ResumeLayout(false);
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+ private System.Windows.Forms.TreeView TvwSettings;
+ private System.Windows.Forms.Button LblMainMenu;
+ private System.Windows.Forms.ContextMenuStrip MainMenu;
+ private System.Windows.Forms.ToolStripMenuItem Info;
+ private System.Windows.Forms.ToolStripMenuItem CheckRelease;
+ private System.Windows.Forms.ToolStripMenuItem Help;
+ private System.Windows.Forms.Panel PnlNav;
+ private System.Windows.Forms.LinkLabel LblSettings;
+ private System.Windows.Forms.LinkLabel LblPS;
+ private System.Windows.Forms.CheckedListBox LstPS;
+ private System.Windows.Forms.Panel PnlSettings;
+ private System.Windows.Forms.ListView LvwStatus;
+ private System.Windows.Forms.ColumnHeader Setting;
+ private System.Windows.Forms.ColumnHeader State;
+ private System.Windows.Forms.Button BtnSettingsUndo;
+ private System.Windows.Forms.ProgressBar PBar;
+ private System.Windows.Forms.Label LblStatus;
+ private System.Windows.Forms.Button BtnSettingsDo;
+ private System.Windows.Forms.Button BtnSettingsAnalyze;
+ private System.Windows.Forms.Panel PnlPS;
+ private System.Windows.Forms.TextBox TxtPSInfo;
+ private System.Windows.Forms.TextBox TxtOutputPS;
+ private System.Windows.Forms.TextBox TxtConsolePS;
+ private System.Windows.Forms.ContextMenuStrip PSMenu;
+ private System.Windows.Forms.ToolStripMenuItem PSImport;
+ private System.Windows.Forms.ToolStripMenuItem PSSaveAs;
+ private System.Windows.Forms.ToolStripMenuItem PSMarketplace;
+ private System.Windows.Forms.ToolStripMenuItem CommunityPkg;
+ private System.Windows.Forms.ToolTip ToolTip;
+ private System.Windows.Forms.Button BtnMenuPS;
+ private System.Windows.Forms.Label LblPSHeader;
+ private System.Windows.Forms.PictureBox assetOpenGitHub;
+ private System.Windows.Forms.Panel PnlSettingsBottom;
+ private System.Windows.Forms.Button BtnDoPS;
+ private System.Windows.Forms.CheckBox ChkCodePS;
+ }
+}
+
diff --git a/src/Privatezilla/Privatezilla/MainWindow.cs b/src/Privatezilla/Privatezilla/MainWindow.cs
new file mode 100644
index 0000000..2507dc5
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/MainWindow.cs
@@ -0,0 +1,758 @@
+using Privatezilla.ITreeNode;
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Diagnostics;
+using System.Drawing;
+using System.Globalization; // Localization
+using System.IO;
+using System.Linq;
+using System.Management.Automation;
+using System.Net;
+using System.Runtime.CompilerServices;
+using System.Text;
+using System.Threading; // Localization
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace Privatezilla
+{
+ public partial class MainWindow : Form
+ {
+ // Setting progress
+ private int _progress = 0;
+
+ private int _progressIncrement = 0;
+
+ // Update
+ private readonly string _releaseURL = "https://raw.githubusercontent.com/builtbybel/privatezilla/master/latest.txt";
+
+ public Version CurrentVersion = new Version(Application.ProductVersion);
+ public Version LatestVersion;
+
+ private void CheckRelease_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ WebRequest hreq = WebRequest.Create(_releaseURL);
+ hreq.Timeout = 10000;
+ hreq.Headers.Set("Cache-Control", "no-cache, no-store, must-revalidate");
+
+ WebResponse hres = hreq.GetResponse();
+ StreamReader sr = new StreamReader(hres.GetResponseStream());
+
+ LatestVersion = new Version(sr.ReadToEnd().Trim());
+
+ // Done and dispose!
+ sr.Dispose();
+ hres.Dispose();
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error); // Update check failed!
+ }
+
+ var equals = LatestVersion.CompareTo(CurrentVersion);
+
+ if (equals == 0)
+ {
+ MessageBox.Show(Properties.Resources.releaseUpToDate, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information); // Up-to-date
+ }
+ else if (equals < 0)
+ {
+ MessageBox.Show(Properties.Resources.releaseUnofficial, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); // Unofficial
+ }
+ else // New release available!
+ {
+ if (MessageBox.Show(Properties.Resources.releaseUpdateAvailable + LatestVersion + Properties.Resources.releaseUpdateYourVersion.Replace("\\r\\n", "\r\n") + CurrentVersion + Properties.Resources.releaseUpdateAvailableURL.Replace("\\r\\n", "\r\n\n"), this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) // New release available!
+ {
+ Process.Start("https://github.com/builtbybel/privatezilla/releases/tag/" + LatestVersion);
+ }
+ }
+ }
+
+ public void Globalization()
+ {
+ BtnDoPS.Text = Properties.Resources.BtnDoPS;
+ BtnSettingsAnalyze.Text = Properties.Resources.BtnSettingsAnalyze;
+ BtnSettingsDo.Text = Properties.Resources.BtnSettingsDo;
+ BtnSettingsUndo.Text = Properties.Resources.BtnSettingsUndo;
+ ChkCodePS.Text = Properties.Resources.ChkCodePS;
+ LblPS.Text = Properties.Resources.LblPS;
+ LblPSHeader.Text = Properties.Resources.LblPSHeader;
+ LblSettings.Text = Properties.Resources.LblSettings;
+ LblStatus.Text = Properties.Resources.LblStatus;
+ TxtPSInfo.Text = Properties.Resources.TxtPSInfo;
+ CheckRelease.Text = Properties.Resources.CheckRelease;
+ CommunityPkg.Text = Properties.Resources.CommunityPkg;
+ Help.Text = Properties.Resources.Help;
+ Info.Text = Properties.Resources.Info;
+ PSImport.Text = Properties.Resources.PSImport;
+ PSMarketplace.Text = Properties.Resources.PSMarketplace;
+ PSSaveAs.Text = Properties.Resources.PSSaveAs;
+ Setting.Text = Properties.Resources.columnSetting; // Status column
+ State.Text = Properties.Resources.columnState; // State column
+ }
+
+ public MainWindow()
+ {
+ // Uncomment lower line and add lang code to run localization test
+ // Thread.CurrentThread.CurrentUICulture = new CultureInfo("de");
+
+ InitializeComponent();
+
+ // Initilize settings
+ InitializeSettings();
+
+ // Check if community package is installed
+ CommunityPackageAvailable();
+
+ // GUI options
+ LblMainMenu.Text = "\ue700"; // Hamburger menu
+
+ // GUI localization
+ Globalization();
+ }
+
+ public void InitializeSettings()
+ {
+ TvwSettings.Nodes.Clear();
+
+ // Root node
+ TreeNode root = new TreeNode("Windows 10 (" + WindowsHelper.GetOS() + ")")
+ {
+ Checked = false
+ };
+
+ // Settings > Privacy
+ TreeNode privacy = new TreeNode(Properties.Resources.rootSettingsPrivacy, new TreeNode[] {
+ new SettingNode(new Setting.Privacy.DisableTelemetry()),
+ new SettingNode(new Setting.Privacy.DisableCompTelemetry()),
+ new SettingNode(new Setting.Privacy.DisableAds()),
+ new SettingNode(new Setting.Privacy.DisableWiFi()),
+ new SettingNode(new Setting.Privacy.DiagnosticData()),
+ new SettingNode(new Setting.Privacy.HandwritingData()),
+ new SettingNode(new Setting.Privacy.DisableBiometrics()),
+ new SettingNode(new Setting.Privacy.DisableTimeline()),
+ new SettingNode(new Setting.Privacy.DisableLocation()),
+ new SettingNode(new Setting.Privacy.DisableFeedback()),
+ new SettingNode(new Setting.Privacy.DisableTips()),
+ new SettingNode(new Setting.Privacy.DisableTipsLockScreen()),
+ new SettingNode(new Setting.Privacy.InstalledApps()),
+ new SettingNode(new Setting.Privacy.SuggestedApps()),
+ new SettingNode(new Setting.Privacy.SuggestedContent()),
+ new SettingNode(new Setting.Privacy.DisableCEIP()),
+ new SettingNode(new Setting.Privacy.DisableHEIP()),
+ new SettingNode(new Setting.Privacy.DisableMSExperiments()),
+ new SettingNode(new Setting.Privacy.InventoryCollector()),
+ new SettingNode(new Setting.Privacy.GetMoreOutOfWindows()),
+ })
+ {
+ //Checked = true,
+ //ToolTipText = "Privacy settings"
+ };
+
+ // Policies > Cortana
+ TreeNode cortana = new TreeNode(Properties.Resources.rootSettingsCortana, new TreeNode[] {
+ new SettingNode(new Setting.Cortana.DisableCortana()),
+ new SettingNode(new Setting.Cortana.DisableBing()),
+ new SettingNode(new Setting.Cortana.UninstallCortana()),
+ });
+
+ // Settings > Bloatware
+ TreeNode bloatware = new TreeNode(Properties.Resources.rootSettingsBloatware, new TreeNode[] {
+ new SettingNode(new Setting.Bloatware.RemoveUWPAll()),
+ new SettingNode(new Setting.Bloatware.RemoveUWPDefaults()),
+ })
+ {
+ ToolTipText = Properties.Resources.rootSettingsBloatwareInfo
+ };
+
+ // Settings > App permissions
+ TreeNode apps = new TreeNode(Properties.Resources.rootSettingsApps, new TreeNode[] {
+ new SettingNode(new Setting.Apps.AppNotifications()),
+ new SettingNode(new Setting.Apps.Camera()),
+ new SettingNode(new Setting.Apps.Microphone()),
+ new SettingNode(new Setting.Apps.Call()),
+ new SettingNode(new Setting.Apps.Notifications()),
+ new SettingNode(new Setting.Apps.AccountInfo()),
+ new SettingNode(new Setting.Apps.Contacts()),
+ new SettingNode(new Setting.Apps.Calendar()),
+ new SettingNode(new Setting.Apps.CallHistory()),
+ new SettingNode(new Setting.Apps.Email()),
+ new SettingNode(new Setting.Apps.Tasks()),
+ new SettingNode(new Setting.Apps.Messaging()),
+ new SettingNode(new Setting.Apps.Motion()),
+ new SettingNode(new Setting.Apps.OtherDevices()),
+ new SettingNode(new Setting.Apps.BackgroundApps()),
+ new SettingNode(new Setting.Apps.TrackingApps()),
+ new SettingNode(new Setting.Apps.DiagnosticInformation()),
+ new SettingNode(new Setting.Apps.Documents()),
+ new SettingNode(new Setting.Apps.Pictures()),
+ new SettingNode(new Setting.Apps.Videos()),
+ new SettingNode(new Setting.Apps.Radios()),
+ new SettingNode(new Setting.Apps.FileSystem()),
+ new SettingNode(new Setting.Apps.EyeGaze()),
+ new SettingNode(new Setting.Apps.CellularData()),
+ });
+
+ // Settings > Updates
+ TreeNode updates = new TreeNode(Properties.Resources.rootSettingsUpdates, new TreeNode[] {
+ new SettingNode(new Setting.Updates.DisableUpdates()),
+ new SettingNode(new Setting.Updates.DisableUpdatesSharing()),
+ new SettingNode(new Setting.Updates.BlockMajorUpdates()),
+ });
+
+ // Settings > Gaming
+ TreeNode gaming = new TreeNode(Properties.Resources.rootSettingsGaming, new TreeNode[] {
+ new SettingNode(new Setting.Gaming.DisableGameBar()),
+ });
+
+ // Settings > Windows Defender
+ TreeNode defender = new TreeNode(Properties.Resources.rootSettingsDefender, new TreeNode[] {
+ new SettingNode(new Setting.Defender.DisableSmartScreenStore()),
+ });
+
+ // Settings > Microsoft Edge
+ TreeNode edge = new TreeNode(Properties.Resources.rootSettingsEdge, new TreeNode[] {
+ new SettingNode(new Setting.Edge.DisableAutoFillCredits()),
+ new SettingNode(new Setting.Edge.EdgeBackground()),
+ new SettingNode(new Setting.Edge.DisableSync()),
+ new SettingNode(new Setting.Edge.BlockEdgeRollout()),
+ });
+
+ // Settings > Security
+ TreeNode security = new TreeNode(Properties.Resources.rootSettingsSecurity, new TreeNode[] {
+ new SettingNode(new Setting.Security.DisablePassword()),
+ new SettingNode(new Setting.Security.WindowsDRM()),
+ });
+
+ // Add root nodes
+ root.Nodes.AddRange(new TreeNode[]
+ {
+ privacy,
+ cortana,
+ bloatware,
+ apps,
+ updates,
+ gaming,
+ defender,
+ edge,
+ security,
+ });
+
+ TvwSettings.Nodes.Add(root);
+ TvwSettings.ExpandAll();
+
+ // Preselect nodes
+ CheckNodes(privacy);
+
+ // Set up ToolTip text for TvwSettings
+ ToolTip tooltip = new ToolTip();
+ tooltip.AutoPopDelay = 15000;
+ tooltip.IsBalloon = true;
+ tooltip.SetToolTip(this.TvwSettings, Properties.Resources.LblSettings);
+ }
+
+ private List CollectSettingNodes()
+ {
+ List selectedSettings = new List();
+
+ foreach (TreeNode treeNode in TvwSettings.Nodes.All())
+ {
+ if (treeNode.Checked && treeNode.GetType() == typeof(SettingNode))
+ {
+ selectedSettings.Add((SettingNode)treeNode);
+ }
+ }
+
+ _progressIncrement = (int)Math.Floor(100.0f / selectedSettings.Count);
+
+ return selectedSettings;
+ }
+
+ private void Reset()
+ {
+ _progress = 0;
+ _progressIncrement = 0;
+
+ PBar.Visible = true;
+ PBar.Value = 0;
+ LvwStatus.HeaderStyle = ColumnHeaderStyle.Clickable; // Add Header to ListView
+ LvwStatus.Items.Clear();
+ LvwStatus.Refresh();
+ }
+
+ private void IncrementProgress()
+ {
+ _progress += _progressIncrement;
+ PBar.Value = _progress;
+ }
+
+ private void DoProgress(int value)
+ {
+ _progress = value;
+ PBar.Value = _progress;
+ }
+
+ // Check favored parent node including all child nodes
+ public void CheckNodes(TreeNode startNode)
+ {
+ startNode.Checked = true;
+
+ foreach (TreeNode node in startNode.Nodes)
+
+ CheckNodes(node);
+ }
+
+ ///
+ /// Auto check child nodes when parent node is checked
+ ///
+ private void TvwSetting_AfterCheck(object sender, TreeViewEventArgs e)
+ {
+ TvwSettings.BeginUpdate();
+
+ foreach (TreeNode child in e.Node.Nodes)
+ {
+ child.Checked = e.Node.Checked;
+ }
+
+ TvwSettings.EndUpdate();
+ }
+
+ ///
+ /// Method to auto. resize column and set the width to the width of the last item in ListView
+ ///
+ private void ResizeListViewColumns(ListView lv)
+ {
+ foreach (ColumnHeader column in lv.Columns)
+ {
+ column.Width = -2;
+ }
+ }
+
+ ///
+ /// Check system for configured settings
+ ///
+ private async void BtnSettingsAnalyze_Click(object sender, EventArgs e)
+ {
+ Reset();
+ LblStatus.Text = Properties.Resources.statusDoWait;
+ BtnSettingsAnalyze.Enabled = false;
+
+ LvwStatus.BeginUpdate();
+
+ List selectedSettings = CollectSettingNodes();
+
+ foreach (SettingNode node in selectedSettings)
+ {
+ var setting = node.Setting;
+ ListViewItem state = new ListViewItem(node.Parent.Text + ": " + setting.ID());
+ ConfiguredTaskAwaitable analyzeTask = Task.Factory.StartNew(() => setting.CheckSetting()).ConfigureAwait(true);
+
+ bool shouldPerform = await analyzeTask;
+
+ if (shouldPerform)
+ {
+ state.SubItems.Add(Properties.Resources.statusFailedConfigure); // Not configured
+ state.BackColor = Color.LavenderBlush;
+ }
+ else
+ {
+ state.SubItems.Add(Properties.Resources.statusSuccessConfigure); // Configured
+ state.BackColor = Color.Honeydew;
+ }
+
+ state.Tag = setting;
+ LvwStatus.Items.Add(state);
+ IncrementProgress();
+ }
+
+ DoProgress(100);
+
+ // Summary
+ LblStatus.Text = Properties.Resources.statusFinishAnalyze;
+ BtnSettingsAnalyze.Enabled = true;
+ LvwStatus.EndUpdate();
+
+ ResizeListViewColumns(LvwStatus);
+ }
+
+ ///
+ /// Apply selected settings
+ ///
+ ///
+ private async void ApplySettings(List treeNodes)
+ {
+ BtnSettingsDo.Enabled = false;
+ LvwStatus.BeginUpdate();
+
+ foreach (SettingNode node in treeNodes)
+ {
+ // Add status info
+ LblStatus.Text = Properties.Resources.statusDoWait + " (" + node.Text + ")";
+
+ var setting = node.Setting;
+ ConfiguredTaskAwaitable performTask = Task.Factory.StartNew(() => setting.DoSetting()).ConfigureAwait(true);
+
+ var result = await performTask;
+
+ var listItem = new ListViewItem(setting.ID());
+ if (result)
+ {
+ listItem.SubItems.Add(Properties.Resources.statusSuccessApply); // Applied
+ listItem.BackColor = Color.Honeydew;
+ }
+ else
+ {
+ listItem.SubItems.Add(Properties.Resources.statusFailedApply); // Not applied
+ listItem.BackColor = Color.LavenderBlush;
+ }
+
+ LvwStatus.Items.Add(listItem);
+ IncrementProgress();
+ }
+
+ DoProgress(100);
+
+ LblStatus.Text = Properties.Resources.statusFinishApply;
+ BtnSettingsDo.Enabled = true;
+ LvwStatus.EndUpdate();
+
+ ResizeListViewColumns(LvwStatus);
+ }
+
+ ///
+ /// Revert selected settings
+ ///
+ private async void UndoSettings(List treeNodes)
+ {
+ LblStatus.Text = Properties.Resources.statusDoWait;
+ BtnSettingsUndo.Enabled = false;
+ LvwStatus.BeginUpdate();
+
+ foreach (SettingNode node in treeNodes)
+ {
+ var setting = node.Setting;
+ ConfiguredTaskAwaitable performTask = Task.Factory.StartNew(() => setting.UndoSetting()).ConfigureAwait(true);
+
+ var result = await performTask;
+
+ var listItem = new ListViewItem(setting.ID());
+ if (result)
+ {
+ listItem.SubItems.Add(Properties.Resources.statusSuccessApply); // Applied
+ listItem.BackColor = Color.Honeydew;
+ }
+ else
+ {
+ listItem.SubItems.Add(Properties.Resources.statusFailedApply); // Not applied
+ listItem.BackColor = Color.LavenderBlush;
+ }
+
+ LvwStatus.Items.Add(listItem);
+ IncrementProgress();
+ }
+
+ DoProgress(100);
+
+ LblStatus.Text = Properties.Resources.statusFinishUndo;
+ BtnSettingsUndo.Enabled = true;
+ LvwStatus.EndUpdate();
+
+ ResizeListViewColumns(LvwStatus);
+ }
+
+ private void BtnSettingsDo_Click(object sender, EventArgs e)
+ {
+ Reset();
+
+ List performNodes = CollectSettingNodes();
+ ApplySettings(performNodes);
+ }
+
+ private void BtnSettingsUndo_Click(object sender, EventArgs e)
+ {
+ if (MessageBox.Show(Properties.Resources.statusUndoSettings, this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
+ {
+ Reset();
+
+ List performNodes = CollectSettingNodes();
+ UndoSettings(performNodes);
+ }
+ }
+
+ private void Info_Click(object sender, EventArgs e)
+ {
+ MessageBox.Show("Privatezilla" + "\nVersion " + Program.GetCurrentVersionTostring() + " (Phoenix)\r\n" +
+ Properties.Resources.infoApp.Replace("\\t", "\t"), "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+
+ private void LblMainMenu_Click(object sender, EventArgs e)
+ {
+ this.MainMenu.Show(Cursor.Position.X, Cursor.Position.Y);
+ }
+
+ private void Help_Click(object sender, EventArgs e)
+ {
+ MessageBox.Show(Properties.Resources.helpApp.Replace("\\r\\n", "\r\n"), Help.Text, MessageBoxButtons.OK, MessageBoxIcon.Question);
+ }
+
+ ///
+ /// Populate Setting files to Navigation > settings > LstPopulatePS
+ ///
+ private void PopulatePS()
+ {
+ // Switch to More
+ PnlPS.Visible = true;
+ BtnDoPS.Visible = true;
+ ChkCodePS.Visible = true;
+ LstPS.Visible = true;
+
+ PnlSettings.Visible = false;
+ BtnSettingsAnalyze.Visible = false;
+ BtnSettingsUndo.Visible = false;
+ BtnSettingsDo.Visible = false;
+ TvwSettings.Visible = false;
+
+ // Clear list
+ LstPS.Items.Clear();
+
+ DirectoryInfo dirs = new DirectoryInfo(@"scripts");
+ FileInfo[] listSettings = dirs.GetFiles("*.ps1");
+ foreach (FileInfo fi in listSettings)
+ {
+ LstPS.Items.Add(Path.GetFileNameWithoutExtension(fi.Name));
+ LstPS.Enabled = true;
+ }
+ }
+
+ private void LblPS_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
+ {
+ // Show Info about feature
+ try
+ {
+ StreamReader OpenFile = new StreamReader(@"scripts\" + "readme.txt");
+ MessageBox.Show(OpenFile.ReadToEnd(), "Info about this feature", MessageBoxButtons.OK);
+ OpenFile.Close();
+ }
+ catch
+ { }
+
+ // Refresh
+ PopulatePS();
+ }
+
+ private void LblSettings_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
+ {
+ // Switch to Setting
+ PnlSettings.Visible = true;
+ BtnSettingsAnalyze.Visible = true;
+ BtnSettingsUndo.Visible = true;
+ BtnSettingsDo.Visible = true;
+ TvwSettings.Visible = true;
+
+ PnlPS.Visible = false;
+ BtnDoPS.Visible = false;
+ ChkCodePS.Visible = false;
+ LstPS.Visible = false;
+ }
+
+ private void LstPS_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ string psdir = @"scripts\" + LstPS.Text + ".ps1";
+
+ //Read PS content line by line
+ try
+ {
+ using (StreamReader sr = new StreamReader(@"scripts\" + LstPS.Text + ".ps1", Encoding.Default))
+ {
+ StringBuilder content = new StringBuilder();
+
+ // writes line by line to the StringBuilder until the end of the file is reached
+ while (!sr.EndOfStream)
+ content.AppendLine(sr.ReadLine());
+
+ // View Code
+ TxtConsolePS.Text = content.ToString();
+
+ // View Info
+ TxtPSInfo.Text = Properties.Resources.PSInfo.Replace("\\r\\n", "\r\n") + string.Join(Environment.NewLine, System.IO.File.ReadAllLines(psdir).Where(s => s.StartsWith("###")).Select(s => s.Substring(3).Replace("###", "\r\n\n")));
+ }
+ }
+ catch { }
+ }
+
+ ///
+ /// Run custom PowerShell scripts
+ ///
+ private void BtnDoPS_Click(object sender, EventArgs e)
+ {
+ if (LstPS.CheckedItems.Count == 0)
+ {
+ MessageBox.Show(Properties.Resources.msgPSSelect, BtnDoPS.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+
+ for (int i = 0; i < LstPS.Items.Count; i++)
+ {
+ if (LstPS.GetItemChecked(i))
+ {
+ LstPS.SelectedIndex = i;
+ BtnDoPS.Text = Properties.Resources.statusDoPSProcessing;
+ PnlPS.Enabled = false;
+
+ //TxtOutputPS.Clear();
+ using (PowerShell powerShell = PowerShell.Create())
+ {
+ powerShell.AddScript(TxtConsolePS.Text);
+ powerShell.AddCommand("Out-String");
+ Collection PSOutput = powerShell.Invoke();
+ StringBuilder stringBuilder = new StringBuilder();
+ foreach (PSObject pSObject in PSOutput)
+ stringBuilder.AppendLine(pSObject.ToString());
+
+ TxtOutputPS.Text = stringBuilder.ToString();
+
+ BtnDoPS.Text = Properties.Resources.statusDoPSApply;
+ PnlPS.Enabled = true;
+ }
+
+ // Done!
+ MessageBox.Show("Script " + "\"" + LstPS.Text + "\" " + Properties.Resources.msgPSSuccess, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ }
+ }
+
+ ///
+ /// Open PowerShell code view
+ ///
+ private void ChkCodePS_CheckedChanged(object sender, EventArgs e)
+ {
+ if (ChkCodePS.Checked == true)
+ {
+ ChkCodePS.Text = Properties.Resources.PSBack;
+ TxtConsolePS.Visible = true;
+ TxtOutputPS.Visible = false;
+ }
+ else
+ {
+ ChkCodePS.Text = Properties.Resources.PSViewCode;
+ TxtOutputPS.Visible = true;
+ TxtConsolePS.Visible = false;
+ }
+ }
+
+ ///
+ /// Import PowerShell script files
+ ///
+ private void PSImport_Click(object sender, EventArgs e)
+ {
+ OpenFileDialog ofd = new OpenFileDialog();
+
+ ofd.Filter = "*.txt|*.txt|*.ps1|*.ps1";
+ ofd.DefaultExt = ".ps1";
+ ofd.RestoreDirectory = true;
+ ofd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
+ ofd.FilterIndex = 2;
+
+ string strDestPath = Application.StartupPath + @"\scripts";
+ ofd.Multiselect = true;
+ if (ofd.ShowDialog() == DialogResult.OK)
+ {
+ foreach (string fileName in ofd.FileNames)
+ {
+ try
+ {
+ File.Copy(fileName, strDestPath + @"\" + Path.GetFileName(fileName));
+ }
+ catch (Exception ex)
+ { MessageBox.Show(ex.Message, this.Text); }
+ }
+ }
+
+ // Refresh
+ PopulatePS();
+ }
+
+ ///
+ /// Save PowerShell script files as new preset script files
+ ///
+
+ private void PSSaveAs_Click(object sender, EventArgs e)
+ {
+ if (ChkCodePS.Checked == false)
+ {
+ MessageBox.Show(Properties.Resources.msgPSSave, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ else
+ {
+ SaveFileDialog dlg = new SaveFileDialog();
+ dlg.Filter = "*.txt|*.txt|*.ps1|*.ps1";
+ dlg.DefaultExt = ".ps1";
+ dlg.RestoreDirectory = true;
+ dlg.InitialDirectory = Application.StartupPath + @"\scripts";
+ dlg.FilterIndex = 2;
+
+ try
+ {
+ if (dlg.ShowDialog() == DialogResult.OK)
+ {
+ File.WriteAllText(dlg.FileName, TxtConsolePS.Text, Encoding.UTF8);
+ //Refresh
+ PopulatePS();
+ }
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.Message);
+ }
+ }
+ }
+
+ private void PSMarketplace_Click(object sender, EventArgs e)
+ {
+ Process.Start("http://www.builtbybel.com/marketplace");
+ }
+
+ private void CommunityPkg_Click(object sender, EventArgs e)
+ {
+ Process.Start("https://github.com/builtbybel/privatezilla#community-package");
+ }
+
+ // Check if community package installed
+ private void CommunityPackageAvailable()
+ {
+ string path = @"scripts";
+ if (Directory.Exists(path))
+ {
+ LblPS.Visible = true;
+ CommunityPkg.Visible = false;
+ }
+ }
+
+ private bool sortAscending = false;
+
+ private void LvwStatus_ColumnClick(object sender, ColumnClickEventArgs e)
+ {
+ if (!sortAscending)
+ {
+ sortAscending = true;
+ }
+ else
+ {
+ sortAscending = false;
+ }
+ this.LvwStatus.ListViewItemSorter = new ListViewItemComparer(e.Column, sortAscending);
+ }
+
+ private void BtnMenuPS_Click(object sender, EventArgs e)
+ {
+ this.PSMenu.Show(Cursor.Position.X, Cursor.Position.Y);
+ }
+
+ private void assetOpenGitHubPage_Click(object sender, EventArgs e)
+ {
+ Process.Start("https://github.com/builtbybel/privatezilla");
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/MainWindow.resx b/src/Privatezilla/Privatezilla/MainWindow.resx
new file mode 100644
index 0000000..e2cfb51
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/MainWindow.resx
@@ -0,0 +1,1097 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ Top, Bottom, Left
+
+
+
+ Segoe UI Semilight, 12pt
+
+
+ 12, 88
+
+
+ 355, 746
+
+
+
+ 18
+
+
+ TvwSettings
+
+
+ System.Windows.Forms.TreeView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ PnlNav
+
+
+ 0
+
+
+ True
+
+
+ Flat
+
+
+ Segoe MDL2 Assets, 12pt, style=Bold
+
+
+ 0, 0
+
+
+ 48, 51
+
+
+ 21
+
+
+ LblMainMenu
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ PnlNav
+
+
+ 3
+
+
+ 17, 17
+
+
+ Segoe UI, 14.25pt
+
+
+ Segoe UI, 12.75pt
+
+
+ 270, 28
+
+
+ Short Guide
+
+
+ Segoe UI, 12.75pt
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAABGdBTUEAALGPC/xhBQAAAHtJREFUOE/t
+ kkEKg0AQBPclnvQXCjnrmwKiT8s17/ADetdqsgMreHDHEAhYUNDMMH2a8CsKHHGI2c0T16iymx6tSNnN
+ XXRMhS9844RWpKyZdiWeosYZrcTUTLssGkzLXCWGyhZUifIlOmw/8R9J/yXX3X89UAOPuv0WIWxtST6A
+ yKRghgAAAABJRU5ErkJggg==
+
+
+
+ 270, 28
+
+
+ Get community package
+
+
+ Segoe UI, 12.75pt
+
+
+ 270, 28
+
+
+ Check for updates
+
+
+ Segoe UI, 12.75pt
+
+
+ 270, 28
+
+
+ Info
+
+
+ 271, 116
+
+
+ MainMenu
+
+
+ System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ True
+
+
+ True
+
+
+ Segoe UI Semibold, 12pt, style=Bold
+
+
+ MiddleLeft
+
+
+ 138, 54
+
+
+ 60, 21
+
+
+ 25
+
+
+ Scripts
+
+
+ False
+
+
+ LblPS
+
+
+ System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ PnlNav
+
+
+ 1
+
+
+ True
+
+
+ Segoe UI Semibold, 12pt, style=Bold
+
+
+ MiddleLeft
+
+
+ 12, 54
+
+
+ 70, 21
+
+
+ 24
+
+
+ Settings
+
+
+ LblSettings
+
+
+ System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ PnlNav
+
+
+ 2
+
+
+ Top, Bottom, Left, Right
+
+
+ Segoe UI Semilight, 12.75pt
+
+
+ 16, 88
+
+
+ 351, 750
+
+
+ 112
+
+
+ False
+
+
+ LstPS
+
+
+ System.Windows.Forms.CheckedListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ PnlNav
+
+
+ 4
+
+
+ Left
+
+
+ 0, 0
+
+
+ 367, 837
+
+
+ 26
+
+
+ PnlNav
+
+
+ System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 3
+
+
+ Top, Bottom, Left, Right
+
+
+ Top, Right
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAiJJREFUSEvd
+ lU1r1FAYheMHSgUVVyIIBVvQYW5SsG66c9GFqC0qfiG69leoWXRyb6R2oRuhIH6s9AeI+/6CopaRYSY3
+ Yy2CUHRh3RnPHc9M7k0npLPUB14m855z3klykzve/0127c0eLdQF7atn2perqE3WaurL54mQN4yH9tHA
+ gFkM+oTKKqqdBmqOsWoyL9uF0D3Ub2tIVRnvkslyTDk6kIuF8AilHnHMcMyluoFoRgt5Gcdrbr9X7VSo
+ 6526mnL70XmOc8nOhnthaNlm0zPa55mlsa6Iz2BdjpjSQeN0e1odtnLWD8jmx3q4z2gO3SCaLxizTm1h
+ nHIpHdE4WswNXXTc+5cFY8ucOeVSNqbDA8ZrZ/H4vqCcA+GDY/KjS5Qq4ToNsqj3lHJg+mabWpPhIUqV
+ GK+dRW1SykHzh21qnowPUqrELLidRW1RykHTuUVpEF2lVEkSqJt2Fu9Dh1IOhFeuSa5jHU5RLkWLuAbv
+ hp1F7jXlHC2iK7aJ9TP11X08+ydoG9AVDydSIR/As1XIZHgBb9OWY14OiH8fNyEX8Pm2H0A9oW0AesUr
+ 7tfX1uTj/bS5pCK6CIPZuH6tB/FxfH+H4++61jhGy4B0StU50Clk7tAynMRXcc/oR5KtofT+KwrDceXL
+ lTuqMSS+VAytIbRCaRv2cJzQ0/7etSOSQJ5DsGnCbG2Dw7/gsbzF1mhkXri7dPsFuJ13d7Jf/ct43h8o
+ 1jKqDLJlDQAAAABJRU5ErkJggg==
+
+
+
+ 681, 7
+
+
+ 24, 24
+
+
+ 32
+
+
+ 229, 19
+
+
+ Open @github.com/builtbybel/privatezilla
+
+
+ assetOpenGitHub
+
+
+ System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ PnlSettings
+
+
+ 0
+
+
+ Top, Left, Right
+
+
+ 12, 41
+
+
+ 814, 5
+
+
+ 27
+
+
+ False
+
+
+ PBar
+
+
+ System.Windows.Forms.ProgressBar, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ PnlSettings
+
+
+ 1
+
+
+ Top, Bottom, Left, Right
+
+
+ Setting
+
+
+ 550
+
+
+ State
+
+
+ 150
+
+
+ Segoe UI Semilight, 12pt
+
+
+ 9, 50
+
+
+ 704, 720
+
+
+ 31
+
+
+ LvwStatus
+
+
+ System.Windows.Forms.ListView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ PnlSettings
+
+
+ 2
+
+
+ Top, Left, Right
+
+
+ Segoe UI Semibold, 12pt, style=Bold
+
+
+ 9, 7
+
+
+ 704, 40
+
+
+ 29
+
+
+ Press Analyze to check for configured settings.
+
+
+ LblStatus
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ PnlSettings
+
+
+ 3
+
+
+ 366, 0
+
+
+ 716, 773
+
+
+ 113
+
+
+ PnlSettings
+
+
+ System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 4
+
+
+ Bottom, Right
+
+
+ Flat
+
+
+ Segoe UI, 9.75pt
+
+
+ 297, 14
+
+
+ 196, 32
+
+
+ 30
+
+
+ Revert selected
+
+
+ BtnSettingsUndo
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ PnlSettingsBottom
+
+
+ 1
+
+
+ Bottom, Right
+
+
+ Flat
+
+
+ Segoe UI, 9.75pt
+
+
+ 508, 14
+
+
+ 196, 32
+
+
+ 26
+
+
+ Apply selected
+
+
+ BtnSettingsDo
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ PnlSettingsBottom
+
+
+ 2
+
+
+ Bottom, Left
+
+
+ Flat
+
+
+ Segoe UI, 9.75pt
+
+
+ 12, 14
+
+
+ 196, 32
+
+
+ 28
+
+
+ Analyze
+
+
+ BtnSettingsAnalyze
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ PnlSettingsBottom
+
+
+ 0
+
+
+ Top, Bottom, Left, Right
+
+
+ Top, Right
+
+
+ Flat
+
+
+ Segoe UI, 11.25pt
+
+
+ 671, 0
+
+
+ 45, 45
+
+
+ 118
+
+
+ . . .
+
+
+ BtnMenuPS
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ PnlPS
+
+
+ 0
+
+
+ Top, Bottom, Left
+
+
+ Segoe UI Semilight, 9.75pt
+
+
+ 3, 48
+
+
+ True
+
+
+ 238, 714
+
+
+ 110
+
+
+ Welcome to the Modern Policy Editor, which allows you to apply group policies and custom settings in the form of PowerShell scripts and templates (bundled scripts).
+
+Select a script to view it's description.
+
+To check the code for vulnerabilities click on "View code".
+
+To obtain new objects (templates, scripts etc.) visit the Marketplace in the upper right menu. Privatezilla uses the Marketplace of the app "SharpApp". Since this app is from the same developer and the scripting is based upon Powershell, they are also compatible with each other.
+
+
+
+ TxtPSInfo
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ PnlPS
+
+
+ 1
+
+
+ Top, Bottom, Left, Right
+
+
+ Consolas, 9pt
+
+
+ 242, 48
+
+
+ True
+
+
+ Both
+
+
+ 474, 722
+
+
+ 10
+
+
+ PS
+
+
+ False
+
+
+ TxtOutputPS
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ PnlPS
+
+
+ 2
+
+
+ Top, Bottom, Left, Right
+
+
+ Segoe UI Semibold, 9pt, style=Bold
+
+
+ 242, 48
+
+
+ True
+
+
+ Both
+
+
+ 474, 722
+
+
+ 111
+
+
+ False
+
+
+ False
+
+
+ TxtConsolePS
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ PnlPS
+
+
+ 3
+
+
+ Top, Left, Right
+
+
+ Segoe UI Semibold, 12pt, style=Bold
+
+
+ 0, 0
+
+
+ 5, 0, 0, 0
+
+
+ 716, 45
+
+
+ 116
+
+
+ Apply PowerShell Script
+
+
+ MiddleLeft
+
+
+ LblPSHeader
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ PnlPS
+
+
+ 4
+
+
+ 366, 0
+
+
+ 716, 773
+
+
+ 113
+
+
+ False
+
+
+ PnlPS
+
+
+ System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 5
+
+
+ 132, 19
+
+
+ Segoe UI, 14.25pt, style=Bold
+
+
+ Segoe UI, 12pt
+
+
+ 352, 26
+
+
+ Import script
+
+
+ Segoe UI, 12pt
+
+
+ 352, 26
+
+
+ Save current script as new preset script
+
+
+ Segoe UI, 12pt
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL
+ EwAACxMBAJqcGAAAAohJREFUOE+Fkt1LU3EYx09ms9S0TEtNZ7kXnbYoKeiquhKK3QSZIFQU1b9QgReS
+ JV3VZcKZmzPnjuf4BqbTuujlwjBpitHS7bxOjQVqBBoR1dPznM7y0IoeOPwObN/P5zy/52H+rOqQ1OQS
+ lHEXrz6xhZSJwm7NY/z0/6oWlJMuQe1xcuI1BycPlwfl5n0hZQlPnml5mmn87d9VI6g+JycddfLqMAOw
+ qX48mePqldkaXpu0c/JUZUiLWYPKOgJfVgSVe3YuYTOiDNPAv7XUDWgTdYOaH89X7n4tWsWr3/ALAAOw
+ F5/ibgmKuiTYhc+OThHyA0oj4x5QThwbSsweGUx8cQsqYO/g7FXBzimwH8MVPTKUYbikW4Y9DyUoxHBB
+ QIJ8BOT6xEamtk+5eKhfA3efBtgCVCPA0auADQF2ToX6kUU4PKDp9t0IIPvOgAh5ZsBBDB/A8JnH76Ft
+ egWap5bBP/8Jvn7/AVRXX3xIs2/3i7CtI35OB5C9FgHjC+t6IIznaOLXO9WV58l0ewrgErQLZKfe786s
+ whiG26ZX4TZ+yUhiDR5pa3A6vKRfntme7YtvAMhOvROA7HcQ0BpBAIYJcCq8mG5HgMUfb2CcvHae7FV4
+ 82SnGkUz2VN1GVsgO40uZd/aYQKQnUbnGVuCW69X4PrkMnjnNi7x0rNkmj0LAZu9BoDsNPdKY+60OKU4
+ dzqPDy9ge8pve45P1O1bvAbAwUtNZKe50+JYTYtDN0+jI7u+OCZ7ZgpAVd4RKbX6ZjzWzvmbZYG5YGkg
+ Nl3cFftchMHU2prtFgqzMWDY+Fkd8NdqgYyC9khNfvubxjxvtDWXjQ5ls/PxLHbuY2b7u3DGg9kbzP1o
+ yU9i5UnNIXoRFwAAAABJRU5ErkJggg==
+
+
+
+ 352, 26
+
+
+ Visit Marketplace
+
+
+ 353, 82
+
+
+ PSMenu
+
+
+ System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Bottom, Left
+
+
+ Button
+
+
+ Flat
+
+
+ Segoe UI, 9.75pt
+
+
+ 12, 14
+
+
+ 2, 2, 2, 2
+
+
+ 196, 32
+
+
+ 115
+
+
+ View code
+
+
+ MiddleCenter
+
+
+ False
+
+
+ ChkCodePS
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ PnlSettingsBottom
+
+
+ 3
+
+
+ Bottom, Right
+
+
+ Flat
+
+
+ Segoe UI, 9.75pt
+
+
+ 508, 14
+
+
+ 196, 32
+
+
+ 114
+
+
+ Apply selected
+
+
+ False
+
+
+ BtnDoPS
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ PnlSettingsBottom
+
+
+ 4
+
+
+ Bottom
+
+
+ 367, 779
+
+
+ 716, 58
+
+
+ 114
+
+
+ PnlSettingsBottom
+
+
+ System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 2
+
+
+ True
+
+
+ 87
+
+
+ 96, 96
+
+
+ 1083, 837
+
+
+ Segoe UI, 8.25pt
+
+
+ 1019, 550
+
+
+ CenterScreen
+
+
+ Privatezilla
+
+
+ Help
+
+
+ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ CommunityPkg
+
+
+ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ CheckRelease
+
+
+ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Info
+
+
+ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Setting
+
+
+ System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ State
+
+
+ System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ PSImport
+
+
+ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ PSSaveAs
+
+
+ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ PSMarketplace
+
+
+ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ ToolTip
+
+
+ System.Windows.Forms.ToolTip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ MainWindow
+
+
+ System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Privatezilla.csproj b/src/Privatezilla/Privatezilla/Privatezilla.csproj
new file mode 100644
index 0000000..53c09f8
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Privatezilla.csproj
@@ -0,0 +1,186 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {1CF5392E-0522-49D4-8343-B732BE762086}
+ WinExe
+ Privatezilla
+ Privatezilla
+ v4.8
+ 512
+ true
+ true
+
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+ false
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+ app.manifest
+
+
+ AppIcon.ico
+
+
+ bin\x64\
+
+
+ x64
+ bin\x64\Debug\
+
+
+ x64
+ bin\x64\Release\
+
+
+ x64
+ bin\x64\x64\
+
+
+
+
+
+
+
+ False
+ ..\..\..\..\..\Windows\Microsoft.NET\assembly\GAC_MSIL\System.Management.Automation\v4.0_3.0.0.0__31bf3856ad364e35\System.Management.Automation.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ MainWindow.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MainWindow.cs
+ Designer
+
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+ True
+
+
+
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Program.cs b/src/Privatezilla/Privatezilla/Program.cs
new file mode 100644
index 0000000..da53ebd
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Program.cs
@@ -0,0 +1,31 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace Privatezilla
+{
+ static class Program
+ {
+
+ internal static string GetCurrentVersionTostring() => new Version(Application.ProductVersion).ToString(3);
+
+ ///
+ /// The main entry point for the application.
+ ///
+ [STAThread]
+ static void Main()
+ {
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+
+ if (Environment.OSVersion.Version.Build < 9200)
+
+ MessageBox.Show(Properties.Resources.msgAppCompatibility, "Privatezilla", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ else
+ Application.Run(new MainWindow());
+
+ }
+ }
+}
diff --git a/src/Privatezilla/Privatezilla/Properties/AssemblyInfo.cs b/src/Privatezilla/Privatezilla/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..4bd1076
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// Allgemeine Informationen über eine Assembly werden über die folgenden
+// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
+// die einer Assembly zugeordnet sind.
+[assembly: AssemblyTitle("Privatezilla")]
+[assembly: AssemblyDescription("The alternate Windows 10 privacy settings app")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Builtbybel")]
+[assembly: AssemblyProduct("Privatezilla")]
+[assembly: AssemblyCopyright("Copyright © 2020")]
+[assembly: AssemblyTrademark("Privatezilla")]
+[assembly: AssemblyCulture("")]
+
+// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly
+// für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von
+// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen.
+[assembly: ComVisible(false)]
+
+// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
+[assembly: Guid("1cf5392e-0522-49d4-8343-b732be762086")]
+
+// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
+//
+// Hauptversion
+// Nebenversion
+// Buildnummer
+// Revision
+//
+// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
+// indem Sie "*" wie unten gezeigt eingeben:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("0.40.2")]
+[assembly: AssemblyFileVersion("0.40.2")]
diff --git a/src/Privatezilla/Privatezilla/Properties/Resources.Designer.cs b/src/Privatezilla/Privatezilla/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..c87d960
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Properties/Resources.Designer.cs
@@ -0,0 +1,1497 @@
+//------------------------------------------------------------------------------
+//
+// Dieser Code wurde von einem Tool generiert.
+// Laufzeitversion:4.0.30319.42000
+//
+// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
+// der Code erneut generiert wird.
+//
+//------------------------------------------------------------------------------
+
+namespace Privatezilla.Properties {
+ using System;
+
+
+ ///
+ /// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
+ ///
+ // Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert
+ // -Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert.
+ // Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen
+ // mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ ///
+ /// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Privatezilla.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle
+ /// Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Apply selected ähnelt.
+ ///
+ internal static string BtnDoPS {
+ get {
+ return ResourceManager.GetString("BtnDoPS", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Analyze ähnelt.
+ ///
+ internal static string BtnSettingsAnalyze {
+ get {
+ return ResourceManager.GetString("BtnSettingsAnalyze", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Apply selected ähnelt.
+ ///
+ internal static string BtnSettingsDo {
+ get {
+ return ResourceManager.GetString("BtnSettingsDo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Revert selected ähnelt.
+ ///
+ internal static string BtnSettingsUndo {
+ get {
+ return ResourceManager.GetString("BtnSettingsUndo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Check for updates ähnelt.
+ ///
+ internal static string CheckRelease {
+ get {
+ return ResourceManager.GetString("CheckRelease", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die View Code ähnelt.
+ ///
+ internal static string ChkCodePS {
+ get {
+ return ResourceManager.GetString("ChkCodePS", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Setting ähnelt.
+ ///
+ internal static string columnSetting {
+ get {
+ return ResourceManager.GetString("columnSetting", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die State ähnelt.
+ ///
+ internal static string columnState {
+ get {
+ return ResourceManager.GetString("columnState", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Get community package ähnelt.
+ ///
+ internal static string CommunityPkg {
+ get {
+ return ResourceManager.GetString("CommunityPkg", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Short Guide ähnelt.
+ ///
+ internal static string Help {
+ get {
+ return ResourceManager.GetString("Help", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Info about a setting: \r\nMove the cursor over a setting to view a brief explanation
+ /// \r\nAnalyze (Button): Determines which settings are enabled and configured on your system or not. NO system changes are done yet!
+ /// \r\nApply selected (Button): This will enable all selected settings.
+ /// \r\nRevert selected (Button): This will restore the default Windows 10 settings.
+ /// [Rest der Zeichenfolge wurde abgeschnitten]"; ähnelt.
+ ///
+ internal static string helpApp {
+ get {
+ return ResourceManager.GetString("helpApp", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Info ähnelt.
+ ///
+ internal static string Info {
+ get {
+ return ResourceManager.GetString("Info", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die
+ ///The open source Windows 10 privacy settings app.
+ ///
+ ///This is in no way related to Microsoft and a completely independent project.
+ ///
+ ///All infos and credits about this project on
+ ///\tgithub.com/builtbybel/privatezilla
+ ///
+ ///You can also follow me on
+ ///\ttwitter.com/builtbybel
+ ///
+ ///(C#) 2020, Builtbybel ähnelt.
+ ///
+ internal static string infoApp {
+ get {
+ return ResourceManager.GetString("infoApp", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Scripts ähnelt.
+ ///
+ internal static string LblPS {
+ get {
+ return ResourceManager.GetString("LblPS", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Apply PowerShell Script ähnelt.
+ ///
+ internal static string LblPSHeader {
+ get {
+ return ResourceManager.GetString("LblPSHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Settings ähnelt.
+ ///
+ internal static string LblSettings {
+ get {
+ return ResourceManager.GetString("LblSettings", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Press Analyze to check for configured settings. ähnelt.
+ ///
+ internal static string LblStatus {
+ get {
+ return ResourceManager.GetString("LblStatus", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die You are running Privatezilla on a system older than Windows 10. Privatezilla is limited to Windows 10 ONLY. ähnelt.
+ ///
+ internal static string msgAppCompatibility {
+ get {
+ return ResourceManager.GetString("msgAppCompatibility", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Please switch to code view. ähnelt.
+ ///
+ internal static string msgPSSave {
+ get {
+ return ResourceManager.GetString("msgPSSave", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Please select a script. ähnelt.
+ ///
+ internal static string msgPSSelect {
+ get {
+ return ResourceManager.GetString("msgPSSelect", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die has been successfully executed ähnelt.
+ ///
+ internal static string msgPSSuccess {
+ get {
+ return ResourceManager.GetString("msgPSSuccess", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Back ähnelt.
+ ///
+ internal static string PSBack {
+ get {
+ return ResourceManager.GetString("PSBack", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Import script ähnelt.
+ ///
+ internal static string PSImport {
+ get {
+ return ResourceManager.GetString("PSImport", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die What does this template/script do?\r\n ähnelt.
+ ///
+ internal static string PSInfo {
+ get {
+ return ResourceManager.GetString("PSInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Visit Marketplace ähnelt.
+ ///
+ internal static string PSMarketplace {
+ get {
+ return ResourceManager.GetString("PSMarketplace", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Save current script as new preset script ähnelt.
+ ///
+ internal static string PSSaveAs {
+ get {
+ return ResourceManager.GetString("PSSaveAs", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die View code ähnelt.
+ ///
+ internal static string PSViewCode {
+ get {
+ return ResourceManager.GetString("PSViewCode", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die You are using an unoffical version of Privatezilla. ähnelt.
+ ///
+ internal static string releaseUnofficial {
+ get {
+ return ResourceManager.GetString("releaseUnofficial", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die There is a new version available # ähnelt.
+ ///
+ internal static string releaseUpdateAvailable {
+ get {
+ return ResourceManager.GetString("releaseUpdateAvailable", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die \r\nDo you want to open the @github/releases page? ähnelt.
+ ///
+ internal static string releaseUpdateAvailableURL {
+ get {
+ return ResourceManager.GetString("releaseUpdateAvailableURL", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die \r\nYour are using version # ähnelt.
+ ///
+ internal static string releaseUpdateYourVersion {
+ get {
+ return ResourceManager.GetString("releaseUpdateYourVersion", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die There are currently no updates available. ähnelt.
+ ///
+ internal static string releaseUpToDate {
+ get {
+ return ResourceManager.GetString("releaseUpToDate", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die App permissions ähnelt.
+ ///
+ internal static string rootSettingsApps {
+ get {
+ return ResourceManager.GetString("rootSettingsApps", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Bloatware ähnelt.
+ ///
+ internal static string rootSettingsBloatware {
+ get {
+ return ResourceManager.GetString("rootSettingsBloatware", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Debloat Windows 10 ähnelt.
+ ///
+ internal static string rootSettingsBloatwareInfo {
+ get {
+ return ResourceManager.GetString("rootSettingsBloatwareInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Cortana ähnelt.
+ ///
+ internal static string rootSettingsCortana {
+ get {
+ return ResourceManager.GetString("rootSettingsCortana", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Windows Defender ähnelt.
+ ///
+ internal static string rootSettingsDefender {
+ get {
+ return ResourceManager.GetString("rootSettingsDefender", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Microsoft Edge ähnelt.
+ ///
+ internal static string rootSettingsEdge {
+ get {
+ return ResourceManager.GetString("rootSettingsEdge", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Gaming ähnelt.
+ ///
+ internal static string rootSettingsGaming {
+ get {
+ return ResourceManager.GetString("rootSettingsGaming", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Privacy ähnelt.
+ ///
+ internal static string rootSettingsPrivacy {
+ get {
+ return ResourceManager.GetString("rootSettingsPrivacy", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Security ähnelt.
+ ///
+ internal static string rootSettingsSecurity {
+ get {
+ return ResourceManager.GetString("rootSettingsSecurity", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Updates ähnelt.
+ ///
+ internal static string rootSettingsUpdates {
+ get {
+ return ResourceManager.GetString("rootSettingsUpdates", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable app access to account info ähnelt.
+ ///
+ internal static string settingsAppsAccountInfo {
+ get {
+ return ResourceManager.GetString("settingsAppsAccountInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable app notifications ähnelt.
+ ///
+ internal static string settingsAppsAppNotifications {
+ get {
+ return ResourceManager.GetString("settingsAppsAppNotifications", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die The Action Center in Windows 10 collects and shows notifications and alerts from traditional Windows applications and system notifications, alongside those generated from modern apps.\nNotifications are then grouped in the Action Center by app and time.\nThis setting will disable all notifications from apps and other senders in settings. ähnelt.
+ ///
+ internal static string settingsAppsAppNotificationsInfo {
+ get {
+ return ResourceManager.GetString("settingsAppsAppNotificationsInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable apps running in background ähnelt.
+ ///
+ internal static string settingsAppsBackgroundApps {
+ get {
+ return ResourceManager.GetString("settingsAppsBackgroundApps", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Windows 10 apps have no more permission to run in the background so they can't update their live tiles, fetch new data, and receive notifications. ähnelt.
+ ///
+ internal static string settingsAppsBackgroundAppsInfo {
+ get {
+ return ResourceManager.GetString("settingsAppsBackgroundAppsInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable app access to calendar ähnelt.
+ ///
+ internal static string settingsAppsCalendar {
+ get {
+ return ResourceManager.GetString("settingsAppsCalendar", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable app access to call ähnelt.
+ ///
+ internal static string settingsAppsCall {
+ get {
+ return ResourceManager.GetString("settingsAppsCall", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable app access to call history ähnelt.
+ ///
+ internal static string settingsAppsCallHistory {
+ get {
+ return ResourceManager.GetString("settingsAppsCallHistory", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable app access to camera ähnelt.
+ ///
+ internal static string settingsAppsCamera {
+ get {
+ return ResourceManager.GetString("settingsAppsCamera", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable app access to cellular data ähnelt.
+ ///
+ internal static string settingsAppsCellularData {
+ get {
+ return ResourceManager.GetString("settingsAppsCellularData", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Some Windows 10 devices have a SIM card and/or eSIM in them that lets you connect to a cellular data network (aka: LTE or Broadband), so you can get online in more places by using a cellular signal.\nIf you do not want any apps to be allowed to use cellular data, you can disable it with this setting. ähnelt.
+ ///
+ internal static string settingsAppsCellularDataInfo {
+ get {
+ return ResourceManager.GetString("settingsAppsCellularDataInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable app access to contacts ähnelt.
+ ///
+ internal static string settingsAppsContacts {
+ get {
+ return ResourceManager.GetString("settingsAppsContacts", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable app access to diagnostics ähnelt.
+ ///
+ internal static string settingsAppsDiagnosticInformation {
+ get {
+ return ResourceManager.GetString("settingsAppsDiagnosticInformation", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable app access to documents ähnelt.
+ ///
+ internal static string settingsAppsDocuments {
+ get {
+ return ResourceManager.GetString("settingsAppsDocuments", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable app access to email ähnelt.
+ ///
+ internal static string settingsAppsEmail {
+ get {
+ return ResourceManager.GetString("settingsAppsEmail", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable app access to eye tracking ähnelt.
+ ///
+ internal static string settingsAppsEyeGaze {
+ get {
+ return ResourceManager.GetString("settingsAppsEyeGaze", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable app access to eye-gaze-based interaction ähnelt.
+ ///
+ internal static string settingsAppsEyeGazeInfo {
+ get {
+ return ResourceManager.GetString("settingsAppsEyeGazeInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable app access to file system ähnelt.
+ ///
+ internal static string settingsAppsFileSystem {
+ get {
+ return ResourceManager.GetString("settingsAppsFileSystem", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die This setting will disable app access to file system. Some apps may be restricted in their function or may no longer work at all. ähnelt.
+ ///
+ internal static string settingsAppsFileSystemInfo {
+ get {
+ return ResourceManager.GetString("settingsAppsFileSystemInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable app access to messaging ähnelt.
+ ///
+ internal static string settingsAppsMessaging {
+ get {
+ return ResourceManager.GetString("settingsAppsMessaging", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable app access to microphone ähnelt.
+ ///
+ internal static string settingsAppsMicrophone {
+ get {
+ return ResourceManager.GetString("settingsAppsMicrophone", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable app access to motion ähnelt.
+ ///
+ internal static string settingsAppsMotion {
+ get {
+ return ResourceManager.GetString("settingsAppsMotion", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable app access to notifications ähnelt.
+ ///
+ internal static string settingsAppsNotification {
+ get {
+ return ResourceManager.GetString("settingsAppsNotification", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable app access to other devices ähnelt.
+ ///
+ internal static string settingsAppsOtherDevices {
+ get {
+ return ResourceManager.GetString("settingsAppsOtherDevices", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable app access to pictures ähnelt.
+ ///
+ internal static string settingsAppsPictures {
+ get {
+ return ResourceManager.GetString("settingsAppsPictures", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable app access to radios ähnelt.
+ ///
+ internal static string settingsAppsRadios {
+ get {
+ return ResourceManager.GetString("settingsAppsRadios", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable app access to tasks ähnelt.
+ ///
+ internal static string settingsAppsTasks {
+ get {
+ return ResourceManager.GetString("settingsAppsTasks", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable tracking of app starts ähnelt.
+ ///
+ internal static string settingsAppsTrackingApps {
+ get {
+ return ResourceManager.GetString("settingsAppsTrackingApps", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die This allows you to quickly have access to your list of Most used apps both in the Start menu and when you search your device." ähnelt.
+ ///
+ internal static string settingsAppsTrackingAppsInfo {
+ get {
+ return ResourceManager.GetString("settingsAppsTrackingAppsInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable app access to videos ähnelt.
+ ///
+ internal static string settingsAppsVideos {
+ get {
+ return ResourceManager.GetString("settingsAppsVideos", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Remove all built-in apps ähnelt.
+ ///
+ internal static string settingsBloatwareRemoveUWPAll {
+ get {
+ return ResourceManager.GetString("settingsBloatwareRemoveUWPAll", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die This will remove all built-in apps except Microsoft Store. ähnelt.
+ ///
+ internal static string settingsBloatwareRemoveUWPAllInfo {
+ get {
+ return ResourceManager.GetString("settingsBloatwareRemoveUWPAllInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Remove all built-in apps except defaults ähnelt.
+ ///
+ internal static string settingsBloatwareRemoveUWPDefaults {
+ get {
+ return ResourceManager.GetString("settingsBloatwareRemoveUWPDefaults", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die This will remove all built-in apps except the following:\nMicrosoft Store\nApp Installer\nCalendar\nMail\nCalculator\nCamera\nSkype\nGroove Music\nMaps\nPaint 3D\nYour Phone\nPhotos\nSticky Notes\nWeather\nXbox ähnelt.
+ ///
+ internal static string settingsBloatwareRemoveUWPDefaultsInfo {
+ get {
+ return ResourceManager.GetString("settingsBloatwareRemoveUWPDefaultsInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable Bing in Windows Search ähnelt.
+ ///
+ internal static string settingsCortanaDisableBing {
+ get {
+ return ResourceManager.GetString("settingsCortanaDisableBing", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Windows 10, by default, sends everything you search for in the Start Menu to their servers to give you results from Bing search. ähnelt.
+ ///
+ internal static string settingsCortanaDisableBingInfo {
+ get {
+ return ResourceManager.GetString("settingsCortanaDisableBingInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable Cortana ähnelt.
+ ///
+ internal static string settingsCortanaDisableCortana {
+ get {
+ return ResourceManager.GetString("settingsCortanaDisableCortana", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Cortana is Microsoft's virtual assistant that comes integrated into Windows 10.\nThis setting will disable Cortana permanently and prevent it from recording and storing your search habits and history. ähnelt.
+ ///
+ internal static string settingsCortanaDisableCortanaInfo {
+ get {
+ return ResourceManager.GetString("settingsCortanaDisableCortanaInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Uninstall Cortana ähnelt.
+ ///
+ internal static string settingsCortanaUninstallCortana {
+ get {
+ return ResourceManager.GetString("settingsCortanaUninstallCortana", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die This will uninstall the new Cortana app on Windows 10, version 2004. ähnelt.
+ ///
+ internal static string settingsCortanaUninstallCortanaInfo {
+ get {
+ return ResourceManager.GetString("settingsCortanaUninstallCortanaInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable SmartScreen for Store Apps ähnelt.
+ ///
+ internal static string settingsDefenderDisableSmartScreenStore {
+ get {
+ return ResourceManager.GetString("settingsDefenderDisableSmartScreenStore", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Windows Defender SmartScreen Filter helps protect your device by checking web content (URLs) that Microsoft Store apps use. ähnelt.
+ ///
+ internal static string settingsDefenderDisableSmartScreenStoreInfo {
+ get {
+ return ResourceManager.GetString("settingsDefenderDisableSmartScreenStoreInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable AutoFill for credit cards ähnelt.
+ ///
+ internal static string settingsEdeAutoFillCredit {
+ get {
+ return ResourceManager.GetString("settingsEdeAutoFillCredit", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Microsoft Edge's AutoFill feature lets users auto complete credit card information in web forms using previously stored information. ähnelt.
+ ///
+ internal static string settingsEdeAutoFillCreditInfo {
+ get {
+ return ResourceManager.GetString("settingsEdeAutoFillCreditInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Prevent Edge running in background ähnelt.
+ ///
+ internal static string settingsEdgeBackground {
+ get {
+ return ResourceManager.GetString("settingsEdgeBackground", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die On the new Chromium version of Microsoft Edge, extensions and other services can keep the browser running in the background even after it's closed. ähnelt.
+ ///
+ internal static string settingsEdgeBackgroundInfo {
+ get {
+ return ResourceManager.GetString("settingsEdgeBackgroundInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Block Installation of New Microsoft Edge ähnelt.
+ ///
+ internal static string settingsEdgeBlockEdgeRollout {
+ get {
+ return ResourceManager.GetString("settingsEdgeBlockEdgeRollout", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die This will block Windows 10 Update Force Installing of the new Chromium-based Microsoft Edge web browser if it's not installed already on the device. ähnelt.
+ ///
+ internal static string settingsEdgeBlockEdgeRolloutInfo {
+ get {
+ return ResourceManager.GetString("settingsEdgeBlockEdgeRolloutInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable synchronization of data ähnelt.
+ ///
+ internal static string settingsEdgeDisableSync {
+ get {
+ return ResourceManager.GetString("settingsEdgeDisableSync", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die This setting will disable synchronization of data using Microsoft sync services. ähnelt.
+ ///
+ internal static string settingsEdgeDisableSyncInfo {
+ get {
+ return ResourceManager.GetString("settingsEdgeDisableSyncInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable Game Bar features ähnelt.
+ ///
+ internal static string settingsGamingGameBar {
+ get {
+ return ResourceManager.GetString("settingsGamingGameBar", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die This setting will disable the Windows Game Recording and Broadcasting. ähnelt.
+ ///
+ internal static string settingsGamingGameBarInfo {
+ get {
+ return ResourceManager.GetString("settingsGamingGameBarInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die 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. ähnelt.
+ ///
+ internal static string settingsGamingGameBarInfoInfo {
+ get {
+ return ResourceManager.GetString("settingsGamingGameBarInfoInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Block suggested apps in Start ähnelt.
+ ///
+ internal static string settingsPrivacyBlockSuggestedApps {
+ get {
+ return ResourceManager.GetString("settingsPrivacyBlockSuggestedApps", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die This will block the Suggested Apps that occasionally appear on the Start menu. ähnelt.
+ ///
+ internal static string settingsPrivacyBlockSuggestedAppsInfo {
+ get {
+ return ResourceManager.GetString("settingsPrivacyBlockSuggestedAppsInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Prevent using diagnostic data ähnelt.
+ ///
+ internal static string settingsPrivacyDiagnosticData {
+ get {
+ return ResourceManager.GetString("settingsPrivacyDiagnosticData", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die 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. ähnelt.
+ ///
+ internal static string settingsPrivacyDiagnosticDataInfo {
+ get {
+ return ResourceManager.GetString("settingsPrivacyDiagnosticDataInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable Advertising ID for Relevant Ads ähnelt.
+ ///
+ internal static string settingsPrivacyDisableAds {
+ get {
+ return ResourceManager.GetString("settingsPrivacyDisableAds", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Windows 10 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. ähnelt.
+ ///
+ internal static string settingsPrivacyDisableAdsInfo {
+ get {
+ return ResourceManager.GetString("settingsPrivacyDisableAdsInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable Windows Hello Biometrics ähnelt.
+ ///
+ internal static string settingsPrivacyDisableBiometrics {
+ get {
+ return ResourceManager.GetString("settingsPrivacyDisableBiometrics", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Windows Hello biometrics lets you sign in to your devices, apps, online services, and networks using your face, iris, or fingerprint. ähnelt.
+ ///
+ internal static string settingsPrivacyDisableBiometricsInfo {
+ get {
+ return ResourceManager.GetString("settingsPrivacyDisableBiometricsInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable Customer Experience Program ähnelt.
+ ///
+ internal static string settingsPrivacyDisableCEIP {
+ get {
+ return ResourceManager.GetString("settingsPrivacyDisableCEIP", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die The Customer Experience Improvement Program (CEIP) is a feature that comes enabled by default on Windows 10, and it secretly collects and submits hardware and software usage information to Microsoft. ähnelt.
+ ///
+ internal static string settingsPrivacyDisableCEIPInfo {
+ get {
+ return ResourceManager.GetString("settingsPrivacyDisableCEIPInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable Compatibility Telemetry ähnelt.
+ ///
+ internal static string settingsPrivacyDisableCompTelemetry {
+ get {
+ return ResourceManager.GetString("settingsPrivacyDisableCompTelemetry", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die 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. ähnelt.
+ ///
+ internal static string settingsPrivacyDisableCompTelemetryInfo {
+ get {
+ return ResourceManager.GetString("settingsPrivacyDisableCompTelemetryInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Do not show feedback notifications ähnelt.
+ ///
+ internal static string settingsPrivacyDisableFeedback {
+ get {
+ return ResourceManager.GetString("settingsPrivacyDisableFeedback", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Windows 10 may also pop up from time to time and ask for feedback. ähnelt.
+ ///
+ internal static string settingsPrivacyDisableFeedbackInfo {
+ get {
+ return ResourceManager.GetString("settingsPrivacyDisableFeedbackInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable Help Experience Program ähnelt.
+ ///
+ internal static string settingsPrivacyDisableHEIP {
+ get {
+ return ResourceManager.GetString("settingsPrivacyDisableHEIP", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die The Help Experience Improvement Program (HEIP) collects and send to Microsoft information about how you use Windows Help. This might reveal what problems you are having with your computer. ähnelt.
+ ///
+ internal static string settingsPrivacyDisableHEIPInfo {
+ get {
+ return ResourceManager.GetString("settingsPrivacyDisableHEIPInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable Location tracking ähnelt.
+ ///
+ internal static string settingsPrivacyDisableLocation {
+ get {
+ return ResourceManager.GetString("settingsPrivacyDisableLocation", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Wherever you go, Windows 10 knows you're there. When Location Tracking is turned on, Windows and its apps are allowed to detect the current location of your computer or device. ähnelt.
+ ///
+ internal static string settingsPrivacyDisableLocationInfo {
+ get {
+ return ResourceManager.GetString("settingsPrivacyDisableLocationInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable Settings Experimentation ähnelt.
+ ///
+ internal static string settingsPrivacyDisableMSExperiments {
+ get {
+ return ResourceManager.GetString("settingsPrivacyDisableMSExperiments", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die In certain builds of Windows 10, users could let Microsoft experiment with the system to study user preferences or device behavior. This allows Microsoft to “conduct experiments” with the settings on your PC and should be disabled with this setting. ähnelt.
+ ///
+ internal static string settingsPrivacyDisableMSExperimentsInfo {
+ get {
+ return ResourceManager.GetString("settingsPrivacyDisableMSExperimentsInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable Telemetry ähnelt.
+ ///
+ internal static string settingsPrivacyDisableTelemetry {
+ get {
+ return ResourceManager.GetString("settingsPrivacyDisableTelemetry", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die 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 10.\nThe services diagtrack & dmwappushservice will also be disabled.\nNOTE: Diagnostic Data must be set to Full to get preview builds from Windows-Insider-Program! ähnelt.
+ ///
+ internal static string settingsPrivacyDisableTelemetryInfo {
+ get {
+ return ResourceManager.GetString("settingsPrivacyDisableTelemetryInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable Timeline feature ähnelt.
+ ///
+ internal static string settingsPrivacyDisableTimeline {
+ get {
+ return ResourceManager.GetString("settingsPrivacyDisableTimeline", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die This collects a history of activities you've performed, including files you've opened and web pages you've viewed in Edge.\nIf Timeline isn’t for you, or you simply don’t want Windows 10 collecting your sensitive activities and information, you can disable Timeline completely with this setting.\nNote: A system reboot is required for the changes to take effect. ähnelt.
+ ///
+ internal static string settingsPrivacyDisableTimelineInfo {
+ get {
+ return ResourceManager.GetString("settingsPrivacyDisableTimelineInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable Windows Tips ähnelt.
+ ///
+ internal static string settingsPrivacyDisableTips {
+ get {
+ return ResourceManager.GetString("settingsPrivacyDisableTips", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die You will no longer see Windows Tips, e.g. Spotlight and Consumer Features, Feedback Notifications etc. ähnelt.
+ ///
+ internal static string settingsPrivacyDisableTipsInfo {
+ get {
+ return ResourceManager.GetString("settingsPrivacyDisableTipsInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable Ads and Links on Lock Screen ähnelt.
+ ///
+ internal static string settingsPrivacyDisableTipsLockScreen {
+ get {
+ return ResourceManager.GetString("settingsPrivacyDisableTipsLockScreen", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die This setting will set your lock screen background options to a picture and turn off tips, fun facts and tricks from Microsoft. ähnelt.
+ ///
+ internal static string settingsPrivacyDisableTipsLockScreenInfo {
+ get {
+ return ResourceManager.GetString("settingsPrivacyDisableTipsLockScreenInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable Wi-Fi Sense ähnelt.
+ ///
+ internal static string settingsPrivacyDisableWiFi {
+ get {
+ return ResourceManager.GetString("settingsPrivacyDisableWiFi", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die You should at least stop your PC from sending your Wi-Fi password. ähnelt.
+ ///
+ internal static string settingsPrivacyDisableWiFiInfo {
+ get {
+ return ResourceManager.GetString("settingsPrivacyDisableWiFiInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable Get Even More Out of Windows ähnelt.
+ ///
+ internal static string settingsPrivacyGetMoreOutOfWindows {
+ get {
+ return ResourceManager.GetString("settingsPrivacyGetMoreOutOfWindows", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Recent Windows 10 versions occasionally display a nag screen "Get Even More Out of Windows" when you sign-in to your user account. If you find it annoying, you can disable it with this setting. ähnelt.
+ ///
+ internal static string settingsPrivacyGetMoreOutOfWindowsInfo {
+ get {
+ return ResourceManager.GetString("settingsPrivacyGetMoreOutOfWindowsInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Prevent using handwriting data ähnelt.
+ ///
+ internal static string settingsPrivacyHandwritingData {
+ get {
+ return ResourceManager.GetString("settingsPrivacyHandwritingData", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die If you don’t want Windows to know and record all unique words that you use, like names and professional jargon, just enable this setting. ähnelt.
+ ///
+ internal static string settingsPrivacyHandwritingDataInfo {
+ get {
+ return ResourceManager.GetString("settingsPrivacyHandwritingDataInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Block automatic Installation of apps ähnelt.
+ ///
+ internal static string settingsPrivacyInstalledApps {
+ get {
+ return ResourceManager.GetString("settingsPrivacyInstalledApps", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die When you sign-in to a new Windows 10 profile or device for the first time, chance is that you notice several third-party applications and games listed prominently in the Start menu.\nThis setting will block automatic Installation of suggested Windows 10 apps. ähnelt.
+ ///
+ internal static string settingsPrivacyInstalledAppsInfo {
+ get {
+ return ResourceManager.GetString("settingsPrivacyInstalledAppsInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable Inventory Collector ähnelt.
+ ///
+ internal static string settingsPrivacyInventoryCollector {
+ get {
+ return ResourceManager.GetString("settingsPrivacyInventoryCollector", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die The Inventory Collector inventories applications files devices and drivers on the system and sends the information to Microsoft. This information is used to help diagnose compatibility problems.\nNote: This setting setting has no effect if the Customer Experience Improvement Program is turned off. The Inventory Collector will be off. ähnelt.
+ ///
+ internal static string settingsPrivacyInventoryCollectorInfo {
+ get {
+ return ResourceManager.GetString("settingsPrivacyInventoryCollectorInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Block suggested content in Settings app ähnelt.
+ ///
+ internal static string settingsPrivacySuggestedContent {
+ get {
+ return ResourceManager.GetString("settingsPrivacySuggestedContent", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die To help new Windows 10 users to learn new features of Windows 10, Microsoft has started showing suggested content via a huge banner in Windows 10 Setting Apps. ähnelt.
+ ///
+ internal static string settingsPrivacySuggestedContentInfo {
+ get {
+ return ResourceManager.GetString("settingsPrivacySuggestedContentInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable password reveal button ähnelt.
+ ///
+ internal static string settingsSecurityDisablePassword {
+ get {
+ return ResourceManager.GetString("settingsSecurityDisablePassword", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die The password reveal button can be used to display an entered password and should be disabled with this setting. ähnelt.
+ ///
+ internal static string settingsSecurityDisablePasswordInfo {
+ get {
+ return ResourceManager.GetString("settingsSecurityDisablePasswordInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable DRM in Windows Media Player ähnelt.
+ ///
+ internal static string settingsSecurityWindowsDRM {
+ get {
+ return ResourceManager.GetString("settingsSecurityWindowsDRM", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die If the Windows Media Digital Rights Management should not get access to the Internet (or intranet) for license acquisition and security upgrades, you can prevent it with this setting. ähnelt.
+ ///
+ internal static string settingsSecurityWindowsDRMInfo {
+ get {
+ return ResourceManager.GetString("settingsSecurityWindowsDRMInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Block major Windows updates ähnelt.
+ ///
+ internal static string settingsUpdatesBlockMajorUpdates {
+ get {
+ return ResourceManager.GetString("settingsUpdatesBlockMajorUpdates", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die This setting called "TargetReleaseVersionInfo" prevents Windows 10 feature updates from being installed until the specified version reaches the end of support.\nIt will specify your currently used Windows 10 version as the target release version of Windows 10 that you wish the system to be on (supports only Pro and enterprise versions). ähnelt.
+ ///
+ internal static string settingsUpdatesBlockMajorUpdatesInfo {
+ get {
+ return ResourceManager.GetString("settingsUpdatesBlockMajorUpdatesInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable forced Windows updates ähnelt.
+ ///
+ internal static string settingsUpdatesDisableUpdates {
+ get {
+ return ResourceManager.GetString("settingsUpdatesDisableUpdates", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die This will notify when updates are available, and you decide when to install them. ähnelt.
+ ///
+ internal static string settingsUpdatesDisableUpdatesInfo {
+ get {
+ return ResourceManager.GetString("settingsUpdatesDisableUpdatesInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Disable Windows updates sharing ähnelt.
+ ///
+ internal static string settingsUpdatesUpdateSharing {
+ get {
+ return ResourceManager.GetString("settingsUpdatesUpdateSharing", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Windows 10 lets you download updates from several sources to speed up the process of updating the operating system. This will disable sharing your files by others and exposing your IP address to random computers. ähnelt.
+ ///
+ internal static string settingsUpdatesUpdateSharingInfo {
+ get {
+ return ResourceManager.GetString("settingsUpdatesUpdateSharingInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Apply ähnelt.
+ ///
+ internal static string statusDoPSApply {
+ get {
+ return ResourceManager.GetString("statusDoPSApply", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Processing ähnelt.
+ ///
+ internal static string statusDoPSProcessing {
+ get {
+ return ResourceManager.GetString("statusDoPSProcessing", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Please wait ... ähnelt.
+ ///
+ internal static string statusDoWait {
+ get {
+ return ResourceManager.GetString("statusDoWait", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Not applied ähnelt.
+ ///
+ internal static string statusFailedApply {
+ get {
+ return ResourceManager.GetString("statusFailedApply", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Not configured ähnelt.
+ ///
+ internal static string statusFailedConfigure {
+ get {
+ return ResourceManager.GetString("statusFailedConfigure", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Analysis complete. ähnelt.
+ ///
+ internal static string statusFinishAnalyze {
+ get {
+ return ResourceManager.GetString("statusFinishAnalyze", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Applying complete. ähnelt.
+ ///
+ internal static string statusFinishApply {
+ get {
+ return ResourceManager.GetString("statusFinishApply", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Reverting complete. ähnelt.
+ ///
+ internal static string statusFinishUndo {
+ get {
+ return ResourceManager.GetString("statusFinishUndo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Applied ähnelt.
+ ///
+ internal static string statusSuccessApply {
+ get {
+ return ResourceManager.GetString("statusSuccessApply", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Configured ähnelt.
+ ///
+ internal static string statusSuccessConfigure {
+ get {
+ return ResourceManager.GetString("statusSuccessConfigure", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Do you really want to revert all selected settings to Windows 10 default state? ähnelt.
+ ///
+ internal static string statusUndoSettings {
+ get {
+ return ResourceManager.GetString("statusUndoSettings", resourceCulture);
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Welcome to the Modern Policy Editor, which allows you to apply group policies and custom settings in the form of PowerShell scripts and templates (bundled scripts).
+ ///
+ ///Select a script to view it's description.
+ ///
+ ///To check the code for vulnerabilities click on "View code".
+ ///
+ ///To obtain new objects (templates, scripts etc.) visit the Marketplace in the upper right menu. Privatezilla uses the Marketplace of the app "SharpApp". Since this app is from the same developer and the scripting is based upon Powershell [Rest der Zeichenfolge wurde abgeschnitten]"; ähnelt.
+ ///
+ internal static string TxtPSInfo {
+ get {
+ return ResourceManager.GetString("TxtPSInfo", resourceCulture);
+ }
+ }
+ }
+}
diff --git a/src/Privatezilla/Privatezilla/Properties/Resources.es.resx b/src/Privatezilla/Privatezilla/Properties/Resources.es.resx
new file mode 100644
index 0000000..fd67bfa
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Properties/Resources.es.resx
@@ -0,0 +1,635 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Aplicar seleccionados
+ GUI
+
+
+ Analizar
+ GUI
+
+
+ Aplicar seleccionados
+ GUI
+
+
+ Revertir seleccionados
+ GUI
+
+
+ Buscar actualizaciones
+ Main menu
+
+
+ Ver código
+ GUI
+
+
+ Ajustes
+
+
+ Estado
+
+
+ Obtener paquete de la comunidad
+ Main menu
+
+
+ Guía corta
+ Main menu
+
+
+ Información sobre la configuración: \r\nMueva el cursor sobre un ajuste para ver una breve explicación.
+ \r\nAnalizar (botón): determina qué ajustes están habilitados y configurados en su sistema o no. ¡Los cambios en el sistema no se han hecho todavía!
+ \r\nAplicar seleccionados (botón): esto habilitará todos los ajustes seleccionados.
+ \r\nRevertir seleccionados (botón): esto restaurará la configuración predeterminada de Windows 10.
+ \r\nConfigurado (estado): esto indica que su privacidad está protegida.
+ \r\nNo configurado (estado): esto indica que la configuración de Windows 10 sigue en su lugar.
+ Main menu
+
+
+ Información
+ Main menu
+
+
+ La aplicación de código abierto para la configuración de la privacidad en Windows 10.
+
+Esto no está relacionado de ninguna manera con Microsoft y es un proyecto completamente independiente.
+
+Toda la información y los créditos sobre este proyecto están en
+\tgithub.com/builtbybel/privatezilla
+
+También puedes seguirme en
+\ttwitter.com/builtbybel
+
+☆━━━━━━━━━━━━━━━☆
+Créditos de traducción a: Peter A. Cuevas H. (petercuevas.6@gmail.com)
+☆━━━━━━━━━━━━━━━☆
+
+(C#) 2020, Builtbybel
+ infoApp
+
+
+ Scripts
+ GUI
+
+
+ Aplicar el script de PowerShell
+ GUI
+
+
+ Configuraciones
+ GUI
+
+
+ Presione Analizar para comprobar los ajustes configurados.
+ GUI
+
+
+ Estás ejecutando Privatezilla en un sistema más antiguo que Windows 10. Privatezilla está limitado a Windows 10 SOLAMENTE.
+
+
+ Por favor, cambie a la vista de código.
+
+
+ Por favor, seleccione un script.
+
+
+ se ha ejecutado con éxito
+
+
+ Atrás
+
+
+ Importar script
+ Scripting menu
+
+
+ ¿Qué hace esta plantilla/script?\r\n
+
+
+ Visitar el Mercado
+ Scripting menu
+
+
+ Guardar el script actual como un nuevo script predefinido
+ Scripting menu
+
+
+ Ver código
+
+
+ Estás usando una versión no oficial de Privatezilla.
+
+
+ Hay una nueva versión disponible #
+
+
+ \r\n¿Quieres abrir la página de @github/releases?
+
+
+ \r\nEstás usando la versión #
+
+
+ Actualmente no hay actualizaciones disponibles.
+
+
+ Permisos de las aplicaciones
+
+
+ Software innecesario
+
+
+ Desinflar Windows 10
+
+
+ Cortana
+
+
+ Windows Defender
+
+
+ Microsoft Edge
+
+
+ Gaming
+
+
+ Privacidad
+
+
+ Seguridad
+
+
+ Actualizaciones
+
+
+ Deshabilitar el acceso de las aplicaciones a la información de la cuenta
+
+
+ Deshabilitar las notificaciones de las aplicaciones
+
+
+ El Centro de Acción en Windows 10 recopila y muestra notificaciones y alertas de las aplicaciones tradicionales de Windows y notificaciones del sistema, junto con las generadas por las aplicaciones modernas.\nLas notificaciones se agrupan en el Centro de actividades por aplicación y hora.\nEsta configuración deshabilitará todas las notificaciones de las aplicaciones y otros remitentes en la configuración.
+
+
+ Deshabilitar las aplicaciones que se ejecutan en segundo plano
+
+
+ Las aplicaciones de Windows 10 ya no tienen permiso para ejecutarse en segundo plano, por lo que no pueden actualizar sus mosaicos en vivo, buscar nuevos datos y recibir notificaciones.
+
+
+ Deshabilitar el acceso de las aplicaciones al calendario
+
+
+ Deshabilitar el acceso de las aplicaciones a llamar
+
+
+ Deshabilitar el acceso de las aplicaciones al historial de llamadas
+
+
+ Deshabilitar el acceso de las aplicaciones a la cámara
+
+
+ Deshabilitar el acceso de las aplicaciones a los datos celulares
+
+
+ Algunos dispositivos de Windows 10 tienen una tarjeta SIM y/o eSIM que le permite conectarse a una red de datos celular (también conocida como LTE o Banda Ancha), para que pueda conectarse en línea en más lugares utilizando una señal celular.\nSi no quieres que ninguna aplicación pueda usar datos celulares, puedes deshabilitarla con esta configuración.
+
+
+ Deshabilitar el acceso de las aplicaciones a los contactos
+
+
+ Deshabilitar el acceso de las aplicaciones a los diagnósticos
+
+
+ Deshabilitar el acceso de las aplicaciones a los documentos
+
+
+ Deshabilitar el acceso de las aplicaciones al correo electrónico
+
+
+ Deshabilitar el acceso de las aplicaciones al seguimiento de los ojos
+
+
+ Deshabilitar el acceso de las aplicaciones a la interacción basada en la observación de los ojos
+
+
+ Deshabilitar el acceso de las aplicaciones al sistema de archivos
+
+
+ Esta configuración deshabilitará el acceso de la aplicación al sistema de archivos. Es posible que algunas aplicaciones tengan limitadas sus funciones o que ya no funcionen.
+
+
+ Deshabilitar el acceso de las aplicaciones a los mensajes
+
+
+ Deshabilitar el acceso de las aplicaciones al micrófono
+
+
+ Deshabilitar el acceso de las aplicaciones al movimiento
+
+
+ Deshabilitar el acceso de las aplicaciones a las notificaciones
+
+
+ Deshabilitar el acceso de las aplicaciones a otros dispositivos
+
+
+ Deshabilitar el acceso de las aplicaciones a las imágenes
+
+
+ Deshabilitar el acceso de las aplicaciones a los radios
+
+
+ Deshabilitar el acceso de las aplicaciones a las tareas
+
+
+ Deshabilitar el seguimiento de los comienzos de las aplicaciones
+
+
+ Esto te permite acceder rápidamente a tu lista de aplicaciones más usadas tanto en el menú de inicio como cuando buscas en tu dispositivo.
+
+
+ Deshabilitar el acceso de las aplicaciones a los videos
+
+
+ Eliminar todas las aplicaciones integradas
+
+
+ Esto eliminará todas las aplicaciones integradas excepto Microsoft Store.
+
+
+ Eliminar todas las aplicaciones integradas excepto las predeterminadas
+
+
+ Esto eliminará todas las aplicaciones incorporadas, excepto las siguientes:\nMicrosoft Store\nInstalador de aplicaciones\nCalendario\nCorreo\nCalculadora\nCámara\nSkype\nGroove Music\nMapas\nPaint 3D\nTu teléfono\nFotos\nSticky Notes\nWeather\nXbox
+
+
+ Deshabilitar Bing en la búsqueda de Windows
+
+
+ Windows 10, por defecto, envía todo lo que buscas en el menú de inicio a sus servidores para darte resultados de las búsquedas en Bing.
+
+
+ Deshabilitar Cortana
+
+
+ Cortana es el asistente virtual de Microsoft que viene integrado en Windows 10.\nEsta configuración deshabilitará a Cortana permanentemente e impedirá que registre y almacene sus hábitos de búsqueda y su historial.
+
+
+ Desinstalar Cortana
+
+
+ Esto desinstalará la nueva aplicación de Cortana en Windows 10, versión 2004.
+
+
+ Deshabilitar SmartScreen para las aplicaciones de la Tienda
+
+
+ El filtro SmartScreen de Windows Defender ayuda a proteger tu dispositivo comprobando el contenido web (URL) que utilizan las aplicaciones de Microsoft Store.
+
+
+ Deshabilitar la función de autocompletar para las tarjetas de crédito
+
+
+ La función de autocompletar de Microsoft Edge permite a los usuarios completar automáticamente la información de la tarjeta de crédito en formularios web utilizando la información almacenada previamente.
+
+
+ Evita que Edge se ejecute en segundo plano
+
+
+ En la nueva versión Chromium de Microsoft Edge, las extensiones y otros servicios pueden mantener el navegador funcionando en segundo plano incluso después de haberlo cerrado.
+
+
+ Bloquear la instalación del nuevo Microsoft Edge
+
+
+ Esto bloqueará la instalación forzosa de la actualización de Windows 10 del nuevo navegador web Microsoft Edge basado en Chromium si no está ya instalado en el dispositivo.
+
+
+ Deshabilitar la sincronización de datos
+
+
+ Esta configuración deshabilitará la sincronización de los datos mediante los servicios de sincronización de Microsoft.
+
+
+ Deshabilitar las funciones de la barra del juego
+
+
+ Esta configuración deshabilitará la grabación y la transmisión de los juegos en Windows.
+
+
+ Esto apagará las experiencias a medida con consejos y recomendaciones relevantes usando sus datos de diagnóstico. Mucha gente llamaría a esto telemetría, o incluso espionaje.
+
+
+ Bloquear las aplicaciones sugeridas en el Inicio
+
+
+ Esto bloqueará las aplicaciones sugeridas que aparecen ocasionalmente en el Menú de Inicio.
+
+
+ Evitar el uso de datos de diagnóstico
+
+
+ Esto apagará las experiencias a medida con consejos y recomendaciones relevantes usando sus datos de diagnóstico. Mucha gente llamaría a esto telemetría, o incluso espionaje.
+
+
+ Deshabilitar la identificación de la publicidad para los anuncios relevantes
+
+
+ Windows 10 viene integrado con la publicidad. Microsoft asigna un identificador único para rastrear tu actividad en la Microsoft Store y en las aplicaciones de UWP para dirigirte con anuncios relevantes.
+
+
+ Deshabilitar la biometría de Windows Hello
+
+
+ La función biométrica de Windows Hello le permite iniciar sesión en sus dispositivos, aplicaciones, servicios en línea y redes usando su cara, iris o huella digital.
+
+
+ Deshabilitar el Programa de Experiencia del Cliente
+
+
+ El Programa de Mejora de la Experiencia del Cliente (CEIP) es una característica que viene activada de forma predeterminada en Windows 10, que recopila y envía secretamente información de uso de hardware y software a Microsoft.
+
+
+ Deshabilitar la compatibilidad de telemetría
+
+
+ Este proceso consiste en recopilar periódicamente una variedad de datos técnicos sobre su computadora y su rendimiento, y enviarlos a Microsoft para su Programa de Mejora de la Experiencia del Cliente de Windows.
+
+
+ No mostrar notificaciones de retroalimentación
+
+
+ Windows 10 puede también aparecer de vez en cuando y pedir una retroalimentación.
+
+
+ Deshabilitar el Programa de Experiencia de Ayuda
+
+
+ El Programa para la Mejora de la Experiencia de Ayuda (HEIP) recopila y envía a Microsoft información sobre cómo utilizar la Ayuda de Windows. Esto puede revelar los problemas que tiene con su equipo.
+
+
+ Deshabilitar el seguimiento de la ubicación
+
+
+ Dondequiera que vayas, Windows 10 sabe que estás ahí. Cuando el Rastreo de ubicación está activado, Windows y sus aplicaciones pueden detectar la ubicación actual de su computadora o dispositivo.
+
+
+ Deshabilitar la configuración experimental
+
+
+ En ciertas versiones de Windows 10, los usuarios podían dejar que Microsoft experimentara con el sistema para estudiar las preferencias de los usuarios o el comportamiento de los dispositivos. Esto permite a Microsoft "realizar experimentos" con la configuración de su PC y debería ser deshabilitado con esta configuración.
+
+
+ Deshabilitar la telemetría
+
+
+ Esto evitará que Windows recopile información de uso y establezca los datos de diagnóstico en Básico, que es el nivel más bajo disponible para todas las versiones de consumo de Windows 10.\nLos servicios diagtrack y dmwappushservice también serán deshabilitados.\nNota: ¡los datos de diagnóstico deben ser configurados como Completos para obtener una vista previa del Programa Interno de Windows!
+
+
+ Deshabilitar la función de Línea de tiempo
+
+
+ Esto recopila el historial de las actividades que ha realizado, incluyendo los archivos que ha abierto y las páginas web que ha visto en Edge.\nSi no le interesa usar la Línea de tiempo, o simplemente no quiere que Windows 10 recopile sus actividades e información confidencial, puede deshabilitar completamente la Línea de tiempo con esta configuración.\nNota: se requiere un reinicio del sistema para que los cambios surtan efecto.
+
+
+ Deshabilitar los consejos de Windows
+
+
+ Ya no verás los consejos de Windows, por ejemplo, Spotlight y Características del Consumidor, Notificaciones de Retroalimentación, etc.
+
+
+ Deshabilitar los anuncios y enlaces en la pantalla de bloqueo
+
+
+ Esta configuración configurará las opciones de fondo de la pantalla de bloqueo en una imagen y deshabilitará los consejos, datos curiosos y trucos de Microsoft.
+
+
+ Deshabilitar Wi-Fi Sense
+
+
+ Debería al menos impedir que su PC envíe su contraseña de Wi-Fi.
+
+
+ Deshabilitar Obtener aún más de Windows
+
+
+ Las versiones recientes de Windows 10 muestran ocasionalmente una fastidiosa ventana con la leyenda "Obtenga aún más de Windows" cuando inicia sesión en su cuenta de usuario. Si le resulta molesto, puede desactivarlo con esta configuración.
+
+
+ Evitar el uso de datos de escritura
+
+
+ Si no quieres que Windows conozca y registre todas las palabras exclusivas que usas, como nombres y jerga profesional, sólo tienes que activar este ajuste.
+
+
+ Bloquear la instalación automática de aplicaciones
+
+
+ Cuando inicie sesión en un nuevo perfil o dispositivo de Windows 10 por primera vez, es posible que note varias aplicaciones y juegos de terceros que aparecen de forma destacada en el menú Inicio.\nEsta configuración impedirá la instalación automática de las aplicaciones sugeridas de Windows 10.
+
+
+ Desactivar el Recolector de inventario
+
+
+ El Recolector de inventario hace un inventario de las aplicaciones, almacena los dispositivos y los controladores en el sistema y envía la información a Microsoft. Esta información se utiliza para ayudar a diagnosticar problemas de compatibilidad.\nNota: esta configuración no tiene efecto si el Programa de mejora de la experiencia del cliente está desactivado. El Recolector de inventarios estará apagado.
+
+
+ Bloquear el contenido sugerido en la aplicación de Ajustes
+
+
+ Para ayudar a los nuevos usuarios de Windows 10 a aprender las nuevas características de Windows 10, Microsoft ha comenzado a mostrar el contenido sugerido a través de un enorme banner en la aplicación de Configuración de Windows 10.
+
+
+ Deshabilitar el botón de revelar la contraseña
+
+
+ El botón de revelación de contraseña puede utilizarse para mostrar una contraseña introducida y debería deshabilitarse con este ajuste.
+
+
+ Deshabilitar DRM en el Reproductor Multimedia de Windows
+
+
+ Si la Administración de Derechos Digitales de Windows Media no puede acceder a Internet (o a la intranet) para la adquisición de licencias y actualizaciones de seguridad, puede impedirlo con esta configuración.
+
+
+ Bloquear las principales actualizaciones de Windows
+
+
+ Este ajuste llamado "TargetReleaseVersionInfo" evita que se instalen las actualizaciones de las características de Windows 10 hasta que la versión especificada llegue al final del soporte.\nSe especificará la versión de Windows 10 actualmente utilizada como la versión de lanzamiento de destino de Windows 10 en la que desea que esté el sistema (sólo admite las versiones Pro y Enterprise).
+
+
+ Deshabilitar las actualizaciones forzadas de Windows
+
+
+ Esto notificará cuando las actualizaciones estén disponibles, y tú decidirás cuándo instalarlas.
+
+
+ Deshabilitar el uso compartido de actualizaciones de Windows
+
+
+ Windows 10 permite descargar actualizaciones de varias fuentes para acelerar el proceso de actualización del sistema operativo. Esto deshabilitará el compartir tus archivos por otros y exponer tu dirección IP a computadoras al azar.
+
+
+ Aplicar
+
+
+ Procesando
+
+
+ ¿Realmente quieres revertir todos los ajustes seleccionados al estado por defecto de Windows 10?
+
+
+ Por favor, espere...
+
+
+ No aplicado
+
+
+ No configurado
+
+
+ Análisis terminado.
+
+
+ Aplicación completada.
+
+
+ Reversión completada.
+
+
+ Aplicado
+
+
+ Configurado
+
+
+ Bienvenido al Editor de políticas modernas, que le permite aplicar políticas de grupo y configuraciones personalizadas en forma de scripts y plantillas de PowerShell (scripts empaquetados).
+
+Seleccione un script para ver su descripción.
+
+Para comprobar el código en busca de vulnerabilidades, haga clic en "Ver código".
+
+Para obtener nuevos objetos (plantillas, scripts, etc.) visite el Mercado en el menú superior derecho. Privatezilla utiliza el Mercado de la aplicación "SharpApp". Dado que esta aplicación es del mismo desarrollador y los scripts se basan en Powershell, también son compatibles entre sí.
+ GUI
+
+
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Properties/Resources.resx b/src/Privatezilla/Privatezilla/Properties/Resources.resx
new file mode 100644
index 0000000..5ba5644
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Properties/Resources.resx
@@ -0,0 +1,743 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Apply selected
+ GUI
+
+
+ Analyze
+ GUI
+
+
+ Apply selected
+ GUI
+
+
+ Revert selected
+ GUI
+
+
+ Check for updates
+ Main menu
+
+
+ View Code
+ GUI
+
+
+ Setting
+ TreeView
+
+
+ State
+ TreeView
+
+
+ Get community package
+ Main menu
+
+
+ Short Guide
+ Main menu
+
+
+ Info about a setting: \r\nMove the cursor over a setting to view a brief explanation
+ \r\nAnalyze (Button): Determines which settings are enabled and configured on your system or not. NO system changes are done yet!
+ \r\nApply selected (Button): This will enable all selected settings.
+ \r\nRevert selected (Button): This will restore the default Windows 10 settings.
+ \r\nConfigured (State): This indicates your privacy is protected.
+ \r\nNot Configured (State): This indicates that the Windows 10 settings are in place.
+ Main menu
+
+
+ Info
+ Main menu
+
+
+
+The open source Windows 10 privacy settings app.
+
+This is in no way related to Microsoft and a completely independent project.
+
+All infos and credits about this project on
+\tgithub.com/builtbybel/privatezilla
+
+You can also follow me on
+\ttwitter.com/builtbybel
+
+(C#) 2020, Builtbybel
+ About the app
+Add translation credits here!
+
+
+ Scripts
+ GUI
+
+
+ Apply PowerShell Script
+ GUI
+
+
+ Settings
+ GUI
+
+
+ Press Analyze to check for configured settings.
+ GUI
+
+
+ You are running Privatezilla on a system older than Windows 10. Privatezilla is limited to Windows 10 ONLY.
+
+
+ Please switch to code view.
+ Scripts (optional)
+
+
+ Please select a script.
+ Scripts (optional)
+
+
+ has been successfully executed
+ Scripts (optional)
+
+
+ Back
+ GUI
+
+
+ Import script
+ Scripting menu
+
+
+ What does this template/script do?\r\n
+ Scripting menu
+
+
+ Visit Marketplace
+ Scripting menu
+
+
+ Save current script as new preset script
+ Scripting menu
+
+
+ View code
+ GUI
+
+
+ You are using an unoffical version of Privatezilla.
+
+
+ There is a new version available #
+
+
+ \r\nDo you want to open the @github/releases page?
+
+
+ \r\nYour are using version #
+
+
+ There are currently no updates available.
+
+
+ App permissions
+
+
+ Bloatware
+
+
+ Debloat Windows 10
+
+
+ Cortana
+
+
+ Windows Defender
+
+
+ Microsoft Edge
+
+
+ Gaming
+
+
+ Privacy
+
+
+ Security
+
+
+ Updates
+
+
+ Disable app access to account info
+ Settings > Apps
+
+
+ Disable app notifications
+ Settings > Apps
+
+
+ The Action Center in Windows 10 collects and shows notifications and alerts from traditional Windows applications and system notifications, alongside those generated from modern apps.\nNotifications are then grouped in the Action Center by app and time.\nThis setting will disable all notifications from apps and other senders in settings.
+ Settings > Apps
+
+
+ Disable apps running in background
+ Settings > Apps
+
+
+ Windows 10 apps have no more permission to run in the background so they can't update their live tiles, fetch new data, and receive notifications.
+ Settings > Apps
+
+
+ Disable app access to calendar
+ Settings > Apps
+
+
+ Disable app access to call
+ Settings > Apps
+
+
+ Disable app access to call history
+ Settings > Apps
+
+
+ Disable app access to camera
+ Settings > Apps
+
+
+ Disable app access to cellular data
+ Settings > Apps
+
+
+ Some Windows 10 devices have a SIM card and/or eSIM in them that lets you connect to a cellular data network (aka: LTE or Broadband), so you can get online in more places by using a cellular signal.\nIf you do not want any apps to be allowed to use cellular data, you can disable it with this setting.
+ Settings > Apps
+
+
+ Disable app access to contacts
+ Settings > Apps
+
+
+ Disable app access to diagnostics
+ Settings > Apps
+
+
+ Disable app access to documents
+ Settings > Apps
+
+
+ Disable app access to email
+ Settings > Apps
+
+
+ Disable app access to eye tracking
+ Settings > Apps
+
+
+ Disable app access to eye-gaze-based interaction
+ Settings > Apps
+
+
+ Disable app access to file system
+ Settings > Apps
+
+
+ This setting will disable app access to file system. Some apps may be restricted in their function or may no longer work at all.
+ Settings > Apps
+
+
+ Disable app access to messaging
+ Settings > Apps
+
+
+ Disable app access to microphone
+ Settings > Apps
+
+
+ Disable app access to motion
+ Settings > Apps
+
+
+ Disable app access to notifications
+ Settings > Apps
+
+
+ Disable app access to other devices
+ Settings > Apps
+
+
+ Disable app access to pictures
+ Settings > Apps
+
+
+ Disable app access to radios
+ Settings > Apps
+
+
+ Disable app access to tasks
+ Settings > Apps
+
+
+ Disable tracking of app starts
+ Settings > Apps
+
+
+ This allows you to quickly have access to your list of Most used apps both in the Start menu and when you search your device."
+ Settings > Apps
+
+
+ Disable app access to videos
+ Settings > Apps
+
+
+ Remove all built-in apps
+ Settings > Bloatware
+
+
+ This will remove all built-in apps except Microsoft Store.
+ Settings > Bloatware
+
+
+ Remove all built-in apps except defaults
+ Settings > Bloatware
+
+
+ This will remove all built-in apps except the following:\nMicrosoft Store\nApp Installer\nCalendar\nMail\nCalculator\nCamera\nSkype\nGroove Music\nMaps\nPaint 3D\nYour Phone\nPhotos\nSticky Notes\nWeather\nXbox
+ Settings > Bloatware
+
+
+ Disable Bing in Windows Search
+ Settings > Cortana
+
+
+ Windows 10, by default, sends everything you search for in the Start Menu to their servers to give you results from Bing search.
+ Settings > Cortana
+
+
+ Disable Cortana
+ Settings > Cortana
+
+
+ Cortana is Microsoft's virtual assistant that comes integrated into Windows 10.\nThis setting will disable Cortana permanently and prevent it from recording and storing your search habits and history.
+ Settings > Cortana
+
+
+ Uninstall Cortana
+ Settings > Cortana
+
+
+ This will uninstall the new Cortana app on Windows 10, version 2004.
+ Settings > Cortana
+
+
+ Disable SmartScreen for Store Apps
+ Settings > Defender
+
+
+ Windows Defender SmartScreen Filter helps protect your device by checking web content (URLs) that Microsoft Store apps use.
+ Settings > Defender
+
+
+ Disable AutoFill for credit cards
+ Settings > Edge
+
+
+ Microsoft Edge's AutoFill feature lets users auto complete credit card information in web forms using previously stored information.
+ Settings > Edge
+
+
+ Prevent Edge running in background
+ Settings > Edge
+
+
+ On the new Chromium version of Microsoft Edge, extensions and other services can keep the browser running in the background even after it's closed.
+ Settings > Edge
+
+
+ Block Installation of New Microsoft Edge
+ Settings > Edge
+
+
+ This will block Windows 10 Update Force Installing of the new Chromium-based Microsoft Edge web browser if it's not installed already on the device.
+ Settings > Edge
+
+
+ Disable synchronization of data
+ Settings > Edge
+
+
+ This setting will disable synchronization of data using Microsoft sync services.
+ Settings > Edge
+
+
+ Disable Game Bar features
+ Settings > Gaming
+
+
+ This setting will disable the Windows Game Recording and Broadcasting.
+ Settings > Gaming
+
+
+ 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.
+ Settings > Gaming
+
+
+ Block suggested apps in Start
+ Settings > Privacy
+
+
+ This will block the Suggested Apps that occasionally appear on the Start menu.
+ Settings > Privacy
+
+
+ Prevent using diagnostic data
+ Settings > Privacy
+
+
+ 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.
+ Settings > Privacy
+
+
+ Disable Advertising ID for Relevant Ads
+ Settings > Privacy
+
+
+ Windows 10 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.
+ Settings > Privacy
+
+
+ Disable Windows Hello Biometrics
+ Settings > Privacy
+
+
+ Windows Hello biometrics lets you sign in to your devices, apps, online services, and networks using your face, iris, or fingerprint.
+ Settings > Privacy
+
+
+ Disable Customer Experience Program
+ Settings > Privacy
+
+
+ The Customer Experience Improvement Program (CEIP) is a feature that comes enabled by default on Windows 10, and it secretly collects and submits hardware and software usage information to Microsoft.
+ Settings > Privacy
+
+
+ Disable Compatibility Telemetry
+ Settings > Privacy
+
+
+ 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.
+ Settings > Privacy
+
+
+ Do not show feedback notifications
+ Settings > Privacy
+
+
+ Windows 10 may also pop up from time to time and ask for feedback.
+ Settings > Privacy
+
+
+ Disable Help Experience Program
+ Settings > Privacy
+
+
+ The Help Experience Improvement Program (HEIP) collects and send to Microsoft information about how you use Windows Help. This might reveal what problems you are having with your computer.
+ Settings > Privacy
+
+
+ Disable Location tracking
+ Settings > Privacy
+
+
+ Wherever you go, Windows 10 knows you're there. When Location Tracking is turned on, Windows and its apps are allowed to detect the current location of your computer or device.
+ Settings > Privacy
+
+
+ Disable Settings Experimentation
+ Settings > Privacy
+
+
+ In certain builds of Windows 10, users could let Microsoft experiment with the system to study user preferences or device behavior. This allows Microsoft to “conduct experiments” with the settings on your PC and should be disabled with this setting.
+ Settings > Privacy
+
+
+ Disable Telemetry
+ Settings > Privacy
+
+
+ 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 10.\nThe services diagtrack & dmwappushservice will also be disabled.\nNOTE: Diagnostic Data must be set to Full to get preview builds from Windows-Insider-Program!
+ Settings > Privacy
+
+
+ Disable Timeline feature
+ Settings > Privacy
+
+
+ This collects a history of activities you've performed, including files you've opened and web pages you've viewed in Edge.\nIf Timeline isn’t for you, or you simply don’t want Windows 10 collecting your sensitive activities and information, you can disable Timeline completely with this setting.\nNote: A system reboot is required for the changes to take effect.
+ Settings > Privacy
+
+
+ Disable Windows Tips
+ Settings > Privacy
+
+
+ You will no longer see Windows Tips, e.g. Spotlight and Consumer Features, Feedback Notifications etc.
+
+
+ Disable Ads and Links on Lock Screen
+ Settings > Privacy
+
+
+ This setting will set your lock screen background options to a picture and turn off tips, fun facts and tricks from Microsoft.
+ Settings > Privacy
+
+
+ Disable Wi-Fi Sense
+ Settings > Privacy
+
+
+ You should at least stop your PC from sending your Wi-Fi password.
+ Settings > Privacy
+
+
+ Disable Get Even More Out of Windows
+ Settings > Privacy
+
+
+ Recent Windows 10 versions occasionally display a nag screen "Get Even More Out of Windows" when you sign-in to your user account. If you find it annoying, you can disable it with this setting.
+ Settings > Privacy
+
+
+ Prevent using handwriting data
+ Settings > Privacy
+
+
+ If you don’t want Windows to know and record all unique words that you use, like names and professional jargon, just enable this setting.
+ Settings > Privacy
+
+
+ Block automatic Installation of apps
+ Settings > Privacy
+
+
+ When you sign-in to a new Windows 10 profile or device for the first time, chance is that you notice several third-party applications and games listed prominently in the Start menu.\nThis setting will block automatic Installation of suggested Windows 10 apps.
+ Settings > Privacy
+
+
+ Disable Inventory Collector
+ Settings > Privacy
+
+
+ The Inventory Collector inventories applications files devices and drivers on the system and sends the information to Microsoft. This information is used to help diagnose compatibility problems.\nNote: This setting setting has no effect if the Customer Experience Improvement Program is turned off. The Inventory Collector will be off.
+ Settings > Privacy
+
+
+ Block suggested content in Settings app
+ Settings > Privacy
+
+
+ To help new Windows 10 users to learn new features of Windows 10, Microsoft has started showing suggested content via a huge banner in Windows 10 Setting Apps.
+ Settings > Privacy
+
+
+ Disable password reveal button
+ Settings > Security
+
+
+ The password reveal button can be used to display an entered password and should be disabled with this setting.
+ Settings > Security
+
+
+ Disable DRM in Windows Media Player
+ Settings > Security
+
+
+ If the Windows Media Digital Rights Management should not get access to the Internet (or intranet) for license acquisition and security upgrades, you can prevent it with this setting.
+ Settings > Security
+
+
+ Block major Windows updates
+ Settings > Updates
+
+
+ This setting called "TargetReleaseVersionInfo" prevents Windows 10 feature updates from being installed until the specified version reaches the end of support.\nIt will specify your currently used Windows 10 version as the target release version of Windows 10 that you wish the system to be on (supports only Pro and enterprise versions).
+ Settings > Updates
+
+
+ Disable forced Windows updates
+ Settings > Updates
+
+
+ This will notify when updates are available, and you decide when to install them.
+ Settings > Updates
+
+
+ Disable Windows updates sharing
+ Settings > Updates
+
+
+ Windows 10 lets you download updates from several sources to speed up the process of updating the operating system. This will disable sharing your files by others and exposing your IP address to random computers.
+ Settings > Updates
+
+
+ Apply
+
+
+ Processing
+
+
+ Please wait ...
+
+
+ Not applied
+
+
+ Not configured
+
+
+ Analysis complete.
+
+
+ Applying complete.
+
+
+ Reverting complete.
+
+
+ Applied
+
+
+ Configured
+
+
+ Do you really want to revert all selected settings to Windows 10 default state?
+
+
+ Welcome to the Modern Policy Editor, which allows you to apply group policies and custom settings in the form of PowerShell scripts and templates (bundled scripts).
+
+Select a script to view it's description.
+
+To check the code for vulnerabilities click on "View code".
+
+To obtain new objects (templates, scripts etc.) visit the Marketplace in the upper right menu. Privatezilla uses the Marketplace of the app "SharpApp". Since this app is from the same developer and the scripting is based upon Powershell, they are also compatible with each other.
+ GUI
+
+
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Properties/Resources.ru.resx b/src/Privatezilla/Privatezilla/Properties/Resources.ru.resx
new file mode 100644
index 0000000..fca1053
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Properties/Resources.ru.resx
@@ -0,0 +1,633 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Применить выбранное
+ GUI
+
+
+ Анализировать
+ GUI
+
+
+ Применить выбранное
+ GUI
+
+
+ Восстановить выбранное
+ GUI
+
+
+ Проверить обновления
+ Main menu
+
+
+ Просмотреть код
+ GUI
+
+
+ Настройки
+
+
+ Состояние
+
+
+ Получить пакет сообщества
+ Main menu
+
+
+ Помощь
+ Main menu
+
+
+ Информация о настройке: \r\nНаведите курсор, чтобы просмотреть краткую информацию.
+ \r\nАнализировать (Кнопка): определяет, какие параметры включены и настроены в вашей системе. Никаких системных изменений пока не сделано!
+ \r\nПрименить выбранное (Кнопка): активирует все выбранные вами настройки.
+ \r\nВосстановить выбранное (Кнопка): это восстановит настройки Windows 10 по умолчанию.
+ \r\nНастроено (Состояние): указывает, что ваша конфиденциальность защищена.
+ \r\nНе настроено (Состояние): это означает, что настройки Windows 10 не изменены.
+ Main menu
+
+
+ Инфо
+ Main menu
+
+
+ Приложение для настройки конфиденциальности Windows 10 с открытым исходным кодом.
+
+Проект никак не связан с Microsoft и является полностью независимым.
+
+Вся информация и кредиты об этом проекте на
+\tgithub.com/builtbybel/privatezilla
+
+Вы также можете подписаться на меня
+\ttwitter.com/builtbybel
+
+Перевод: Almanex
+
+(C #) 2020, Builtbybel
+ infoApp
+
+
+ Сценарий
+ GUI
+
+
+ Применить сценарий PowerShell
+ GUI
+
+
+ Параметр
+ GUI
+
+
+ Нажмите Анализировать, чтобы проверить настройку параметров.
+ GUI
+
+
+ Используйте Privatezilla только в ОС Windows 10. Privatezilla ограничена ТОЛЬКО Windows 10.
+
+
+ Пожалуйста, переключитесь в режим просмотра кода.
+
+
+ Пожалуйста, выберите сценарий.
+
+
+ был успешно выполнен
+
+
+ Назад
+
+
+ Импорт сценария
+ Scripting menu
+
+
+ Что делает этот шаблон/скрипт?\r\n
+
+
+ Посетить Marketplace
+ Scripting menu
+
+
+ Сохранить текущий сценарий как новый предустановленный сценарий
+ Scripting menu
+
+
+ Просмотреть код
+
+
+ Вы используете неофициальную версию Privatezilla.
+
+
+ Доступна новая версия #
+
+
+ \r\nХотите открыть страницу @github/releases page?
+
+
+ \r\nВы используете версию #
+
+
+ В настоящее время нет доступных обновлений.
+
+
+ Разрешения приложения
+
+
+ Предустановленные приложения
+
+
+ Сценарии блокировки функций Windows 10
+
+
+ Кортана
+
+
+ Защитник Windows
+
+
+ Microsoft Edge
+
+
+ Игры
+
+
+ Конфиденциальность
+
+
+ Безопасность
+
+
+ Обновления
+
+
+ Отключить доступ приложения к информации об аккаунте
+
+
+ Отключить уведомления приложений
+
+
+ Центр действий в Windows 10 собирает и отображает уведомления и предупреждения от традиционных приложений Windows и системных уведомлений, наряду с уведомлениями, созданными современными приложениями.\nЗатем уведомления группируются в Центре действий\nЭтот параметр отключит все уведомления от приложений и другх отправителей в параметрах.
+
+
+ Отключить приложения, работающие в фоновом режиме
+
+
+ У приложений Windows 10 больше нет разрешения на работу в фоновом режиме, поэтому они не могут обновлять живые плитки, получать новые данные и показывать уведомления.
+
+
+ Отключить доступ приложения к календарю
+
+
+ Отключить доступ к приложению для звонка
+
+
+ Отключить доступ приложения к истории звонков
+
+
+ Отключить доступ приложения к камере
+
+
+ Отключить доступ приложений к сотовым данным
+
+
+ В некоторых устройствах с Windows 10 есть SIM-карта и / или eSIM, которые позволяют подключаться к сотовой сети передачи данных (также известной как LTE или широкополосная сеть), чтобы вы могли подключить Интернет в большенстве мест, используя сотовый сигнал.\nЕсли вы не хотите, чтобы любым приложениям было разрешено использовать сотовые данные, вы можете отключить его с помощью этого параметра.
+
+
+ Отключить доступ приложения к контактам
+
+
+ Отключить доступ приложения к диагностике
+
+
+ Отключить доступ приложения к документам
+
+
+ Отключить доступ приложения к электронной почте
+
+
+ Отключить доступ приложений к отслеживанию глаз
+
+
+ Отключить доступ приложений к взаимодействию с глазами
+
+
+ Отключить доступ приложений к файловой системе
+
+
+ Этот параметр отключит доступ приложений к файловой системе. Некоторые приложения могут быть ограничены в своих функциях или не работать.
+
+
+ Отключить доступ приложений к обмену сообщениями
+
+
+ Отключить доступ приложений к микрофону
+
+
+ Отключить доступ приложений к жестам
+
+
+ Отключить доступ приложений к уведомлениям
+
+
+ Отключить доступ приложений к другим устройствам
+
+
+ Отключить доступ приложений к изображениям
+
+
+ Отключить доступ приложений к радио
+
+
+ Отключить доступ приложения к задачам
+
+
+ Отключить отслеживание запусков приложений
+
+
+ Позволяет быстро получить доступ к списку наиболее часто используемых приложений как в меню «Пуск», так и при поиске на устройстве.
+
+
+ Отключить доступ приложений к видео
+
+
+ Удалить все встроенные приложения
+
+
+ Это удалит все встроенные приложения, кроме Microsoft Store.
+
+
+ Удалить все встроенные приложения, кроме:
+
+
+ Это приведет к удалению всех встроенных приложений, кроме следующих:\nMicrosoft Store\nApp Installer\nCalendar\nMail\nCalculator\nCamera\nSkype\nGroove Music\nMaps\nPaint 3D\nYour Phone\nPhotos\nSticky Notes\nWeather\nXbox
+
+
+ Отключить поиск Bing в Windows
+
+
+ Windows 10 по умолчанию отправляет все, что вы ищете в меню «Пуск», на свои серверы, чтобы предоставить вам результаты поиска Bing.
+
+
+ Отключить Кортану
+
+
+ Кортана - это виртуальный помощник Microsoft, который интегрирован в Windows 10.\nЭтот параметр навсегда отключит Кортану и не позволит ей записывать и сохранять ваши действия и историю.
+
+
+ Удалить Кортану
+
+
+ Это приведет к удалению нового приложения Cortana в Windows 10 версии 2004.
+
+
+ Отключить SmartScreen для приложений из магазина
+
+
+ Фильтр SmartScreen Защитника Windows помогает защитить ваше устройство, проверяя веб-контент (URL-адреса), используемый приложениями Microsoft Store.
+
+
+ Отключить автозаполнение для кредитных карт
+
+
+ Функция автозаполнения Microsoft Edge позволяет пользователям автоматически заполнять данные кредитной карты в веб-формах, используя ранее сохраненную информацию.
+
+
+ Запретить запуск Edge в фоновом режиме
+
+
+ В новой версии Microsoft Edge Chromium расширения и другие службы могут поддерживать работу браузера в фоновом режиме даже после его закрытия.
+
+
+ Заблокировать установку нового Microsoft Edge
+
+
+ Это заблокирует принудительную установку нового веб-браузера Microsoft Edge на основе Chromium, если он еще не установлен на устройстве.
+
+
+ Отключить синхронизацию данных
+
+
+ Этот параметр отключит синхронизацию данных с помощью служб синхронизации Microsoft.
+
+
+ Отключить функции игровой панели
+
+
+ Этот параметр отключит запись и трансляцию игр Windows.
+
+
+ Это отключит индивидуальный опыт с соответствующими советами и рекомендациями которые используют ваши диагностические данные. Многие назвали бы это телеметрией или даже шпионажем.
+
+
+ Заблокировать предлагаемые приложения на начальном экране
+
+
+ Это заблокирует рекомендуемые приложения, которые иногда появляются в меню «Пуск».
+
+
+ Запретить использование диагностических данных
+
+
+ Это отключит индивидуальный опыт с соответствующими советами и рекомендациями с использованием ваших диагностических данных. Многие назвали бы это телеметрией или даже шпионажем.
+
+
+ Отключить рекламный идентификатор для показа релевантной рекламы
+
+
+ В Windows 10 интегрирована реклама. Microsoft назначает вам уникальный идентификатор для отслеживания вашей активности в Microsoft Store и в приложениях UWP, чтобы показывать вам релевантную рекламу.
+
+
+ Отключить биометрию Windows Hello
+
+
+ Биометрические данные Windows Hello позволяют вам входить в свои устройства, приложения, онлайн-сервисы и сети, используя свое лицо, радужную оболочку глаза или отпечаток пальца.
+
+
+ Отключить программу улучшения качества программного обеспечения
+
+
+ Программа улучшения качества программного обеспечения (CEIP) - это функция, которая по умолчанию включена в Windows 10 и тайно собирает и отправляет в Microsoft информацию об использовании оборудования и программного обеспечения.
+
+
+ Отключить телеметрию совместимости
+
+
+ Этот процесс периодически собирает различные технические данные о вашем компьютере и его производительности и отправляет их в Microsoft для участия в программе улучшения качества программного обеспечения Windows.
+
+
+ Не показывать уведомления обратной связи
+
+
+ Windows 10 также может время от времени запрашивать отзыв.
+
+
+ Отключить программу справки
+
+
+ Программа улучшения качества справки (HEIP) собирает и отправляет в Microsoft информацию о том, как вы используете справку Windows. Это может показать, какие проблемы у вас возникают с вашим компьютером.
+
+
+ Отключить отслеживание местоположения
+
+
+ Куда бы вы ни пошли, Windows 10 знает, что вы там. Когда отслеживание местоположения включено, Windows и приложениям разрешено определять текущее местоположение вашего компьютера или устройства.
+
+
+ Отключить эксперименты с настройками
+
+
+ В некоторых сборках Windows 10 пользователи могли позволить Microsoft поэкспериментировать с системой для изучения пользовательских предпочтений или поведения устройства. Это позволяет Microsoft «проводить эксперименты» с настройками вашего ПК, и этот параметр следует отключить.
+
+
+ Отключить телеметрию
+
+
+ Это помешает Windows собирать информацию об использовании и устанавливать для диагностических данных значение «Базовый», что является самым низким уровнем, доступным для всех версий Windows 10.\nСлужбы diagtrack и dmwappushservice также будут отключены.\nПРИМЕЧАНИЕ: чтобы получать предварительные сборки Windows-Insider-Program для диагностических данных необходимо установить значение «Полная»!
+
+
+ Отключить функцию временной шкалы
+
+
+ Собирает историю выполненных вами действий, включая файлы, которые вы открывали, и веб-страницы, которые вы просматривали в Edge.\nЕсли Timeline не нужна или вы просто не хотите, чтобы Windows 10 собирала конфиденциальные данные, вы можете полностью отключить временную шкалу с помощью этого параметра.\nПримечание: для того, чтобы изменения вступили в силу, требуется перезагрузка системы.
+
+
+ Отключить Советы Windows
+
+
+ Вы больше не увидите Советы Windows, Windows Интересное Пользовательские функции, уведомления об обратной связи и т. Д.
+
+
+ Отключить рекламу и ссылки на экране блокировки
+
+
+ Этот параметр установит для фона экрана блокировки изображение и отключит советы, забавные факты от Microsoft.
+
+
+ Отключить Wi-Fi Sense
+
+
+ Вы должны по крайней мере остановить свой компьютер от отправки пароля Wi-Fi.
+
+
+ Отключить Получите еще больше от Windows
+
+
+ В последних версиях Windows 10 при входе в учетную запись пользователя иногда отображается предупреждающий экран «Получите еще больше от Windows». Если вас это раздражает, вы можете отключить его с помощью этого параметра.
+
+
+ Запретить использование данных рукописного ввода
+
+
+ Если вы не хотите, чтобы Windows знала и записывала все уникальные слова, которые вы используете, например имена и профессиональный жаргон, просто включите этот параметр.
+
+
+ Блокировать автоматическую установку приложений
+
+
+ Когда вы входите в новый профиль Windows 10 или устройство в первый раз, есть вероятность, что вы заметите несколько сторонних приложений и игр, которые отображаются на видном месте в меню «Пуск».\nЭтот параметр заблокирует автоматическую установку предлагаемых приложений для Windows 10.
+
+
+ Отключить сбор диагностических данных
+
+
+ Cборoщик инвентаря и диагностических данных выполняет инвентаризацию приложений, файлов устройств и драйверов в системе и отправляет информацию в Microsoft. Эта информация используется для диагностики проблем совместимости.\nПримечание: этот параметр не действует, если программа улучшения качества программного обеспечения отключена. Сборщик инвентаря будет отключен.
+
+
+ Заблокировать предлагаемый контент в приложении "Параметры"
+
+
+ Чтобы помочь новым пользователям Windows 10 изучить новые функции Windows 10, Microsoft начала показывать рекомендуемый контент с помощью огромного баннера в Параметрах Windows 10.
+
+
+ Отключить кнопку просмотра пароля
+
+
+ Кнопка Посмотреть пароль может использоваться для отображения введенного пароля и должна быть отключена с помощью этой настройки.
+
+
+ Отключить DRM в проигрывателе Windows Media
+
+
+ Если служба управления цифровыми правами Windows Media не должна получать доступ к Интернету (или интрасети) для приобретения лицензий и обновлений безопасности, вы можете предотвратить это с помощью этого параметра.
+
+
+ Блокировать основные обновления Windows
+
+
+ Параметр «TargetReleaseVersionInfo» предотвращает установку обновлений компонентов Windows 10 до тех пор, пока указанная версия не достигнет конца поддержки.\nОн будет указывать используемую в настоящее время версию Windows 10 в качестве целевой версии выпуска Windows 10, на которой вы хотите остатся. (поддерживает только версии Pro и Enterprise).
+
+
+ Отключить принудительные обновления Windows
+
+
+ Будет уведомлять, когда доступны обновления, и вы решаете, когда их устанавливать.
+
+
+ Отключить общий доступ к обновлениям Windows
+
+
+ Windows 10 позволяет загружать обновления из нескольких источников, чтобы ускорить процесс обновления операционной системы. Это отключит совместное использование ваших файлов другими пользователями и доступ к вашему IP-адресу случайным компьютерам.
+
+
+ Применить
+
+
+ Обработка
+
+
+ Пожалуйста, подождите ...
+
+
+ Не применено
+
+
+ Не настроено
+
+
+ Анализ завершен.
+
+
+ Применение завершено.
+
+
+ Восстановление завершено.
+
+
+ Применено
+
+
+ Настроен
+
+
+ Вы действительно хотите вернуть все выбранные настройки Windows 10 в состояние по умолчанию?
+
+
+ Добро пожаловать в редактор современной политики, который позволяет применять групповые политики и настраиваемые параметры в форме сценариев и шаблонов PowerShell (связанных сценариев).
+
+Выберите сценарий, чтобы просмотреть его описание.
+
+Чтобы проверить код на наличие уязвимостей, нажмите «Просмотреть код».
+
+Чтобы получить новые объекты (шаблоны, скрипты и т. Д.), Посетите Marketplace в правом верхнем меню. Privatezilla использует Marketplace приложения SharpApp. Поскольку это приложение создано одним разработчиком, а сценарии основаны на Powershell, они также совместимы друг с другом.
+ GUI
+
+
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Properties/Resources.zh.resx b/src/Privatezilla/Privatezilla/Properties/Resources.zh.resx
new file mode 100644
index 0000000..8506fd5
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Properties/Resources.zh.resx
@@ -0,0 +1,635 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 应用选中项
+ GUI
+
+
+ 分析
+ GUI
+
+
+ 应用选中项
+ GUI
+
+
+ 还原选中项
+ GUI
+
+
+ 检查更新
+ Main menu
+
+
+ 查看代码
+ GUI
+
+
+ 设置
+
+
+ 状态
+
+
+ 获取社区脚本包
+ Main menu
+
+
+ 简要指南
+ Main menu
+
+
+ 有关设置的信息: \r\n将光标移到设置项上以查看简要说明
+ \r\n分析(按钮):确定您的系统是否启用和配置了哪些设置,注意只做分析并不会对系统进行更改!
+ \r\n应用选中项(按钮):这将启用所有选定的设置
+ \r\n还原选中项(按钮):这将还原默认的 Windows 10 设置
+ \r\n已配置(状态):这表明您的隐私已受到保护
+ \r\n未配置(状态):这表示 Windows 10 设置未做更改
+ Main menu
+
+
+ 信息
+ Main menu
+
+
+ 开源的 Windows 10 隐私设置工具
+
+这是一个完全独立与微软毫不相干的项目
+
+此项目的所有信息和信用在
+\tgithub.om/buildbybel/privatezilla
+
+☆━━━━━━━━━━━━━━━☆
+翻译人员: 作者: 涛锅 邮箱: duzhe163908@gmail.com 简体中文
+☆━━━━━━━━━━━━━━━☆
+
+您也可以在推特上关注我
+\ttwitter.com/buildbybel
+
+(C#) 2020, Builtbybel
+ infoApp
+
+
+ 脚本
+ GUI
+
+
+ 应用 PowerShell 脚本
+ GUI
+
+
+ 设置
+ GUI
+
+
+ 点击分析按钮检查已配置的设置
+ GUI
+
+
+ 您在低于 Windows 10 的系统上运行 Privatezilla, Privatezilla 仅限 Win10
+
+
+ 请切换至代码视图
+
+
+ 请选择一个脚本
+
+
+ 已成功执行
+
+
+ 返回
+
+
+ 导入脚本
+ Scripting menu
+
+
+ 此模板/脚本有什么作用?\r\n
+
+
+ 访问应用市场
+ Scripting menu
+
+
+ 保存当前脚本为新的预设脚本
+ Scripting menu
+
+
+ 查看代码
+
+
+ 您当前使用的是非官方版的 Privatezilla
+
+
+ 发现新版本 #
+
+
+ \r\n您想打开 @github/released 页面吗?
+
+
+ \r\n您正在使用版本 #
+
+
+ 当前没有新版本
+
+
+ 软件权限
+
+
+ Bloatware
+
+
+ Debloat Windows 10
+
+
+ 微软小娜
+
+
+ Windows Defender
+
+
+ Microsoft Edge
+
+
+ 游戏
+
+
+ 隐私
+
+
+ 安全
+
+
+ 更新
+
+
+ 禁用应用访问帐户信息
+
+
+ 禁用应用通知
+
+
+ Windows 10 操作中心会收集并显示传统Windows应用程序和系统通知中的通知和警报,当然也包括现代应用程序生成的。\n然后按应用程序和时间在操作中心中对通知进行分组。\n此设置将禁用来自应用和其他发件人的所有通知
+
+
+ 禁用应用后台运行
+
+
+ Windows 10 应用程序将没有权限在后台运行,这样它们就无法更新其活动磁铁、获取新的数据以及接收通知
+
+
+ 禁用应用访问日历
+
+
+ 禁用应用访问电话呼叫
+
+
+ 禁用应用访问通话记录
+
+
+ 禁用应用访问相机
+
+
+ 禁用应用访问蜂窝移动数据
+
+
+ 有些 Windows 10 设备有 SIM/eSIM 卡,可以连接到蜂窝移动数据网络 (亦称: LTE 或 宽带),这样您可以使用移动信号在更多地方上网。\n如果您不想允许任何应用使用移动数据,您可以通过此设置来禁用
+
+
+ 禁用应用访问联系人
+
+
+ 禁用应用访问诊断信息
+
+
+ 禁用应用访问文档
+
+
+ 禁用应用访问电子邮件
+
+
+ 禁用应用访问眼部跟踪
+
+
+ 禁用应用访问基于眼部的互动信息
+
+
+ 禁用应用访问文件系统
+
+
+ 此设置将禁用应用对文件系统的访问。某些应用可能会在功能上受限,甚至可能会停止工作
+
+
+ 禁用应用访问消息
+
+
+ 禁用应用访问麦克风
+
+
+ 禁用应用访问运动
+
+
+ 禁用应用访问通知
+
+
+ 禁用应用访问其他设备
+
+
+ 禁用应用访问图片
+
+
+ 禁用应用访问无线收发器
+
+
+ 禁用应用访问任务
+
+
+ 禁用跟踪应用启动
+
+
+ 这使您能够快速访问您最常使用的应用列表 (开始菜单和搜索)
+
+
+ 禁用应用访问视频
+
+
+ 移除所有内置应用
+
+
+ 这将移除除微软商店以外的所有内置应用
+
+
+ 移除除预设以外的所有内置应用程序
+
+
+ 这将移除(除以下应用外)所有内置应用程序:\nMicrosoft Store\nApp Installer\nCalendar\nMail\nCalculator\nCamera\nSkype\nGroove Music\nMaps\nPaint 3D\nYour Phone\nPhotos\nSticky Notes\nWeather\nXbox
+
+
+ 在 Windows 搜索中禁用 Bing
+
+
+ 默认情况下 Windows 10 会将您在开始菜单中搜索的所有内容发送到他们的服务器,然后以此为您 提供 Bing 搜索的结果
+
+
+ 禁用微软小娜
+
+
+ Cortana 是集成到 Windows 10 的微软虚拟助手,\n此设置将永久禁用 Cortana, 并阻止其记录和存储您的搜索习惯与历史记录
+
+
+ 卸载微软小娜
+
+
+ 这将在 Windows 10 2004版本上卸载新版微软小娜
+
+
+ 为商店应用禁用 SmartScreen
+
+
+ Windows Defender SmartScreen 过滤器通过检查微软商店应用使用的 Web 内容 (链接),来帮助保护您的设备
+
+
+ 禁用信用卡自动填充
+
+
+ Microsoft Edge 的自动填充功能能使用户使用先前存储的信息自动填写 Web 表单中的信用卡信息
+
+
+ 阻止 Edge 在后台运行
+
+
+ 在新版 Chromium Microsoft Edge,即时关闭浏览器,扩展和其他服务仍然可以继续在后台运行
+
+
+ 屏蔽新版 Edge 安装
+
+
+ 这将阻止 Windows 10 更新强制安装基于 Chromium的新版 Edge,如果它尚未安装在设备上
+
+
+ 禁用同步数据
+
+
+ 此设置将禁用使用 Microsoft 同步服务进行的数据同步
+
+
+ 禁用游戏栏功能
+
+
+ 此设置将禁用 Windows 游戏录制和广播
+
+
+ 这将关闭通过使用诊断数提供具有相关提示和建议的量身定制的体验。很多人称这是遥测,甚至是间谍行为
+
+
+ 禁用开始菜单的推荐应用
+
+
+ 这将阻止偶尔出现在开始菜单上的推荐应用
+
+
+ 阻止使用诊断数据
+
+
+ 这将关闭通过使用诊断数提供具有相关提示和建议的量身定制的体验。很多人称这是遥测,甚至是间谍行为
+
+
+ 禁用相关广告的广告 ID
+
+
+ Windows 10 初装集成广告。微软分配了一个独特的标识符来跟踪您在微软商店和 UWP 应用程序中的活动,从而为您提供相关广告
+
+
+ 禁用 Windows Hello 生物识别
+
+
+ Windows Hello 生物识别技术使您可以使用脸部、虹膜或指纹登录设备、应用、在线服务和网络
+
+
+ 禁用客户体验计划
+
+
+ 客户体验改善计划 (CEIP) 是Windows 10上默认开启的功能,它会秘密收集并提交硬件和软件使用信息给微软
+
+
+ 禁用兼容性遥测
+
+
+ 此进程将定期收集有关您的计算机及其性能的各种技术数据,并将其发送给微软,用于 Windows 客户体验改善计划
+
+
+ 不要显示反馈通知
+
+
+ Windows 10 可能会时不时弹出消息,要求您提供反馈
+
+
+ 禁用帮助体验计划
+
+
+ 帮助体验改善计划 (HEIP) 收集有关您如何使用 Windows 帮助的信息并将其发送给微软,这可能会显露您的计算机存在什么问题
+
+
+ 禁用位置跟踪
+
+
+ 无论您在哪,Windows 10 都会知道。启用位置跟踪后,Windows及其应用程序可以检测计算机或设备的当前位置
+
+
+ 禁用设置测试
+
+
+ 在 Windows 10 某些版本中,用户可以让微软对系统进行实验,以研究用户偏好或设备行为。这使得微软可以使用PC上的设置“进行实验”,因此应禁用此设置
+
+
+ 禁用遥测
+
+
+ 这将阻止 Windows 收集使用信息并将收集诊断数据设置为"基本",这是所有 Windows 10 版本可用的最低级别。\n也将禁用 diagtrack & dmwappushservice 服务。\n注意:诊断数据必须设置为"完整",才能从 Windows 预览体验计划获取预览版本!
+
+
+ 禁用时间轴功能
+
+
+ 这会收集您执行的活动历史记录,包括您打开的文件和在 Edge 浏览过的网页。\n如果您不使用时间轴,或者您就是不想让微软收集您的敏感活动和信息,则可以使用此设置完全禁用时间轴。\n注意:需要重启系统才能使更改生效
+
+
+ 禁用 Windows 提示
+
+
+ 您将不再看到 Windows 提示,例如 亮点功能和消费者功能,反馈通知等
+
+
+ 禁用锁屏广告和链接
+
+
+ 此设置会将您的锁定屏幕背景选项设置为图片,并关闭 Microsoft 的提示,有趣的新闻内容和使用技巧信息
+
+
+ 禁用 Wi-Fi Sense
+
+
+ 您至少应该停止您的电脑发送您的Wi-Fi密码
+
+
+ 禁用"从Windows中获得更多"
+
+
+ 当您登录到您的帐户时,最新的 Windows 10 版本有时会显示一个烦人的屏幕 "从Windows中获得更多"。 如果您觉得它很烦,可以通过此设置将其禁用
+
+
+ 禁止使用手写数据
+
+
+ 如果您不想让 Windows 知道并记录您使用的所有独特字词,比如名称和专业术语,请启用此设置
+
+
+ 阻止应用自动安装
+
+
+ 当您首次登录到一个新的 Windows 10 配置或设备时,可能会注意到在“开始”菜单中突出列出了多个第三方应用程序和游戏。\n此设置将阻止自动安装推荐的 Windows 10 应用程序
+
+
+ 禁用库存采集器
+
+
+ 库存采集器库存系统上的设备和驱动器的应用程序文件,并将信息发送给微软。此信息用于诊断兼容性问题。\n注意:如果关闭了"客户体验改善计划",则此设置将无效。库存采集器将关闭
+
+
+ 屏蔽"设置"应用中的建议内容
+
+
+ 为帮助新的 Windows 10 用户学习 Windows 10 的新功能,微软已开始通过 Windows 10 设置应用程序中的大横幅显示建议的内容
+
+
+ 禁用密码显示按钮
+
+
+ 密码显示按钮可用于显示输入的密码,为安全起见应使用此设置禁用该按钮
+
+
+ 禁用 Windows Media Player 数字版权管理(DRM)
+
+
+ 如果Windows Media数字版权管理不能访问互联网 (或内联网) 进行许可证获取和安全升级,则可以使用此设置阻止它
+
+
+ 屏蔽主要的 Windows 更新
+
+
+ 此设置称为 "TargetReleaseVersionInfo",可以阻止安装 Windows 10 功能更新,直到当前的版本达到不再支持为止。\n它将指定(伪装)当前使用的 Windows 10 版本为您希望的目标发行版。(仅支持"Pro"和"企业"版本)
+
+
+ 禁用 Windows 强制更新
+
+
+ 这将在更新可用时通知,并由您决定何时安装这些更新
+
+
+ 禁用 Windows 更新共享
+
+
+ Windows 10 允许您从多个源下载更新以加快系统更新过程。此设置将禁止与其他人共享您的文件,避免将您的 IP 地址暴露给随机计算机
+
+
+ 应用
+
+
+ 处理中
+
+
+ 您真的想要将所有选定的设置还原到 Windows 10 默认状态吗?
+
+
+ 请稍候...
+
+
+ 未应用
+
+
+ 未配置
+
+
+ 分析完成
+
+
+ 应用已完成
+
+
+ 还原已完成
+
+
+ 已应用
+
+
+ 已配置
+
+
+ 欢迎使用现代政策编辑器,它将允许您以 PowerShell 脚本和模板(捆绑脚本)的形式应用组策略和自定义设置
+
+选中脚本可查看其描述
+
+若要检查代码安全性,请点击 "查看代码"
+
+想要获取新对象(模板、脚本等),请访问右上角菜单中的应用市场。Privatezilla 使用与 "SharpApp" 相同的应用市场,因为它们来自同一个开发者,而且脚本是基于 Powershell 的,它们相互兼容
+ GUI
+
+
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Properties/Settings.Designer.cs b/src/Privatezilla/Privatezilla/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..8f4d75f
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Properties/Settings.Designer.cs
@@ -0,0 +1,26 @@
+//------------------------------------------------------------------------------
+//
+// Dieser Code wurde von einem Tool generiert.
+// Laufzeitversion:4.0.30319.42000
+//
+// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
+// der Code erneut generiert wird.
+//
+//------------------------------------------------------------------------------
+
+namespace Privatezilla.Properties {
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.7.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default {
+ get {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/src/Privatezilla/Privatezilla/Properties/Settings.settings b/src/Privatezilla/Privatezilla/Properties/Settings.settings
new file mode 100644
index 0000000..abf36c5
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/src/Privatezilla/Privatezilla/Settings/Apps/AccountInfo.cs b/src/Privatezilla/Privatezilla/Settings/Apps/AccountInfo.cs
new file mode 100644
index 0000000..420de5f
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Apps/AccountInfo.cs
@@ -0,0 +1,54 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Apps
+{
+ internal class AccountInfo : SettingBase
+ {
+ private const string AppKey = @"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\userAccountInformation";
+ private const string DesiredValue ="Deny";
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsAppsAccountInfo;
+ }
+
+ public override string Info()
+ {
+ return "";
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.StringEquals(AppKey, "Value", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", DesiredValue, RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", "Allow", RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Apps/AppNotifications.cs b/src/Privatezilla/Privatezilla/Settings/Apps/AppNotifications.cs
new file mode 100644
index 0000000..46b4285
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Apps/AppNotifications.cs
@@ -0,0 +1,54 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Apps
+{
+ internal class AppNotifications : SettingBase
+ {
+ private const string AppKey = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\PushNotifications";
+ private const int DesiredValue = 0;
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsAppsAppNotifications;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsAppsAppNotificationsInfo.Replace("\\n", "\n");
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.IntEquals(AppKey, "ToastEnabled", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "ToastEnabled", DesiredValue, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "ToastEnabled", "1", RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Apps/BackgroundApps.cs b/src/Privatezilla/Privatezilla/Settings/Apps/BackgroundApps.cs
new file mode 100644
index 0000000..a36ea2a
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Apps/BackgroundApps.cs
@@ -0,0 +1,54 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Apps
+{
+ internal class BackgroundApps: SettingBase
+ {
+ private const string AppKey = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\BackgroundAccessApplications";
+ private const int DesiredValue =1;
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsAppsBackgroundApps;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsAppsBackgroundAppsInfo;
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.IntEquals(AppKey, "GlobalUserDisabled", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "GlobalUserDisabled", DesiredValue, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "GlobalUserDisabled", 0, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Apps/Calendar.cs b/src/Privatezilla/Privatezilla/Settings/Apps/Calendar.cs
new file mode 100644
index 0000000..3e4bdbc
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Apps/Calendar.cs
@@ -0,0 +1,54 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Apps
+{
+ internal class Calendar : SettingBase
+ {
+ private const string AppKey = @"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\appointments";
+ private const string DesiredValue ="Deny";
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsAppsCalendar;
+ }
+
+ public override string Info()
+ {
+ return "";
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.StringEquals(AppKey, "Value", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", DesiredValue, RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", "Allow", RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Apps/Call.cs b/src/Privatezilla/Privatezilla/Settings/Apps/Call.cs
new file mode 100644
index 0000000..caca4e2
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Apps/Call.cs
@@ -0,0 +1,54 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Apps
+{
+ internal class Call: SettingBase
+ {
+ private const string AppKey = @"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\phoneCall";
+ private const string DesiredValue ="Deny";
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsAppsCall;
+ }
+
+ public override string Info()
+ {
+ return "";
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.StringEquals(AppKey, "Value", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", DesiredValue, RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", "Allow", RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Apps/CallHistory.cs b/src/Privatezilla/Privatezilla/Settings/Apps/CallHistory.cs
new file mode 100644
index 0000000..8a81ea2
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Apps/CallHistory.cs
@@ -0,0 +1,54 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Apps
+{
+ internal class CallHistory: SettingBase
+ {
+ private const string AppKey = @"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\phoneCallHistory";
+ private const string DesiredValue ="Deny";
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsAppsCallHistory;
+ }
+
+ public override string Info()
+ {
+ return "";
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.StringEquals(AppKey, "Value", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", DesiredValue, RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", "Allow", RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Apps/Camera.cs b/src/Privatezilla/Privatezilla/Settings/Apps/Camera.cs
new file mode 100644
index 0000000..24bfd53
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Apps/Camera.cs
@@ -0,0 +1,54 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Apps
+{
+ internal class Camera: SettingBase
+ {
+ private const string AppKey = @"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\webcam";
+ private const string DesiredValue ="Deny";
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsAppsCamera;
+ }
+
+ public override string Info()
+ {
+ return "";
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.StringEquals(AppKey, "Value", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", DesiredValue, RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", "Allow", RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Apps/CellularData.cs b/src/Privatezilla/Privatezilla/Settings/Apps/CellularData.cs
new file mode 100644
index 0000000..45b643c
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Apps/CellularData.cs
@@ -0,0 +1,54 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Apps
+{
+ internal class CellularData : SettingBase
+ {
+ private const string AppKey = @"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\cellularData";
+ private const string DesiredValue = "Deny";
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsAppsCellularData;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsAppsCellularDataInfo.Replace("\\n", "\n");
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.StringEquals(AppKey, "Value", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", DesiredValue, RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", "Allow", RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Apps/Contacts.cs b/src/Privatezilla/Privatezilla/Settings/Apps/Contacts.cs
new file mode 100644
index 0000000..a566ea8
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Apps/Contacts.cs
@@ -0,0 +1,54 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Apps
+{
+ internal class Contacts : SettingBase
+ {
+ private const string AppKey = @"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\contacts";
+ private const string DesiredValue ="Deny";
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsAppsContacts;
+ }
+
+ public override string Info()
+ {
+ return "";
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.StringEquals(AppKey, "Value", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", DesiredValue, RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", "Allow", RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Apps/DiagnosticInformation.cs b/src/Privatezilla/Privatezilla/Settings/Apps/DiagnosticInformation.cs
new file mode 100644
index 0000000..641a706
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Apps/DiagnosticInformation.cs
@@ -0,0 +1,54 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Apps
+{
+ internal class DiagnosticInformation: SettingBase
+ {
+ private const string AppKey = @"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\appDiagnostics";
+ private const string DesiredValue ="Deny";
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsAppsDiagnosticInformation;
+ }
+
+ public override string Info()
+ {
+ return "";
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.StringEquals(AppKey, "Value", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", DesiredValue, RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", "Allow", RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Apps/Documents.cs b/src/Privatezilla/Privatezilla/Settings/Apps/Documents.cs
new file mode 100644
index 0000000..0e811d5
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Apps/Documents.cs
@@ -0,0 +1,54 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Apps
+{
+ internal class Documents: SettingBase
+ {
+ private const string AppKey = @"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\documentsLibrary";
+ private const string DesiredValue ="Deny";
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsAppsDocuments;
+ }
+
+ public override string Info()
+ {
+ return "";
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.StringEquals(AppKey, "Value", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", DesiredValue, RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", "Allow", RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Apps/Email.cs b/src/Privatezilla/Privatezilla/Settings/Apps/Email.cs
new file mode 100644
index 0000000..c7b36c5
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Apps/Email.cs
@@ -0,0 +1,54 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Apps
+{
+ internal class Email : SettingBase
+ {
+ private const string AppKey = @"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\email";
+ private const string DesiredValue ="Deny";
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsAppsEmail;
+ }
+
+ public override string Info()
+ {
+ return "";
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.StringEquals(AppKey, "Value", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", DesiredValue, RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", "Allow", RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Apps/EyeGaze.cs b/src/Privatezilla/Privatezilla/Settings/Apps/EyeGaze.cs
new file mode 100644
index 0000000..555fc3d
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Apps/EyeGaze.cs
@@ -0,0 +1,54 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Apps
+{
+ internal class EyeGaze : SettingBase
+ {
+ private const string AppKey = @"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\gazeInput";
+ private const string DesiredValue = "Deny";
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsAppsEyeGaze;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsAppsEyeGazeInfo;
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.StringEquals(AppKey, "Value", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", DesiredValue, RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", "Allow", RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Apps/FileSystem.cs b/src/Privatezilla/Privatezilla/Settings/Apps/FileSystem.cs
new file mode 100644
index 0000000..c8734c9
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Apps/FileSystem.cs
@@ -0,0 +1,54 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Apps
+{
+ internal class FileSystem: SettingBase
+ {
+ private const string AppKey = @"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\broadFileSystemAccess";
+ private const string DesiredValue ="Deny";
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsAppsFileSystem;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsAppsFileSystemInfo;
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.StringEquals(AppKey, "Value", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", DesiredValue, RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", "Allow", RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Apps/Messaging.cs b/src/Privatezilla/Privatezilla/Settings/Apps/Messaging.cs
new file mode 100644
index 0000000..0cf8deb
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Apps/Messaging.cs
@@ -0,0 +1,54 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Apps
+{
+ internal class Messaging: SettingBase
+ {
+ private const string AppKey = @"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\chat";
+ private const string DesiredValue ="Deny";
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsAppsMessaging;
+ }
+
+ public override string Info()
+ {
+ return "";
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.StringEquals(AppKey, "Value", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", DesiredValue, RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", "Allow", RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Apps/Microphone.cs b/src/Privatezilla/Privatezilla/Settings/Apps/Microphone.cs
new file mode 100644
index 0000000..40738d8
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Apps/Microphone.cs
@@ -0,0 +1,54 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Apps
+{
+ internal class Microphone: SettingBase
+ {
+ private const string AppKey = @"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\microphone";
+ private const string DesiredValue ="Deny";
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsAppsMicrophone;
+ }
+
+ public override string Info()
+ {
+ return "";
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.StringEquals(AppKey, "Value", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", DesiredValue, RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", "Allow", RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Apps/Motion.cs b/src/Privatezilla/Privatezilla/Settings/Apps/Motion.cs
new file mode 100644
index 0000000..93db26d
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Apps/Motion.cs
@@ -0,0 +1,54 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Apps
+{
+ internal class Motion: SettingBase
+ {
+ private const string AppKey = @"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\activity";
+ private const string DesiredValue ="Deny";
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsAppsMotion;
+ }
+
+ public override string Info()
+ {
+ return "";
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.StringEquals(AppKey, "Value", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", DesiredValue, RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", "Allow", RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Apps/Notifications.cs b/src/Privatezilla/Privatezilla/Settings/Apps/Notifications.cs
new file mode 100644
index 0000000..bbfb9fd
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Apps/Notifications.cs
@@ -0,0 +1,54 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Apps
+{
+ internal class Notifications: SettingBase
+ {
+ private const string AppKey = @"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\userNotificationListener";
+ private const string DesiredValue ="Deny";
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsAppsNotification;
+ }
+
+ public override string Info()
+ {
+ return "";
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.StringEquals(AppKey, "Value", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", DesiredValue, RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", "Allow", RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Apps/OtherDevices.cs b/src/Privatezilla/Privatezilla/Settings/Apps/OtherDevices.cs
new file mode 100644
index 0000000..7331a59
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Apps/OtherDevices.cs
@@ -0,0 +1,57 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Apps
+{
+ internal class OtherDevices: SettingBase
+ {
+ private const string AppKey = @"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\bluetooth";
+ private const string AppKey2 = @"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\bluetoothSync";
+ private const string DesiredValue ="Deny";
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsAppsOtherDevices;
+ }
+
+ public override string Info()
+ {
+ return "";
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.StringEquals(AppKey, "Value", DesiredValue) &&
+ RegistryHelper.StringEquals(AppKey2, "Value", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", DesiredValue, RegistryValueKind.String);
+ Registry.SetValue(AppKey2, "Value", DesiredValue, RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", "Allow", RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Apps/Pictures.cs b/src/Privatezilla/Privatezilla/Settings/Apps/Pictures.cs
new file mode 100644
index 0000000..93fed7b
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Apps/Pictures.cs
@@ -0,0 +1,54 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Apps
+{
+ internal class Pictures: SettingBase
+ {
+ private const string AppKey = @"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\picturesLibrary";
+ private const string DesiredValue ="Deny";
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsAppsPictures;
+ }
+
+ public override string Info()
+ {
+ return "";
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.StringEquals(AppKey, "Value", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", DesiredValue, RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", "Allow", RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Apps/Radios.cs b/src/Privatezilla/Privatezilla/Settings/Apps/Radios.cs
new file mode 100644
index 0000000..975f855
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Apps/Radios.cs
@@ -0,0 +1,54 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Apps
+{
+ internal class Radios: SettingBase
+ {
+ private const string AppKey = @"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\radios";
+ private const string DesiredValue ="Deny";
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsAppsRadios;
+ }
+
+ public override string Info()
+ {
+ return "";
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.StringEquals(AppKey, "Value", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", DesiredValue, RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", "Allow", RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Apps/Tasks.cs b/src/Privatezilla/Privatezilla/Settings/Apps/Tasks.cs
new file mode 100644
index 0000000..c5b3de5
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Apps/Tasks.cs
@@ -0,0 +1,54 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Apps
+{
+ internal class Tasks: SettingBase
+ {
+ private const string AppKey = @"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\userDataTasks";
+ private const string DesiredValue ="Deny";
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsAppsTasks;
+ }
+
+ public override string Info()
+ {
+ return "";
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.StringEquals(AppKey, "Value", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", DesiredValue, RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", "Allow", RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Apps/TrackingApps.cs b/src/Privatezilla/Privatezilla/Settings/Apps/TrackingApps.cs
new file mode 100644
index 0000000..86a13a9
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Apps/TrackingApps.cs
@@ -0,0 +1,54 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Apps
+{
+ internal class TrackingApps: SettingBase
+ {
+ private const string AppKey = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced";
+ private const int DesiredValue = 0;
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsAppsTrackingApps;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsAppsTrackingAppsInfo;
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.IntEquals(AppKey, "Start_TrackProgs", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Start_TrackProgs", DesiredValue, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Start_TrackProgs", 1, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Apps/Videos.cs b/src/Privatezilla/Privatezilla/Settings/Apps/Videos.cs
new file mode 100644
index 0000000..7f6adfd
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Apps/Videos.cs
@@ -0,0 +1,54 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Apps
+{
+ internal class Videos: SettingBase
+ {
+ private const string AppKey = @"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\videosLibrary";
+ private const string DesiredValue ="Deny";
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsAppsVideos;
+ }
+
+ public override string Info()
+ {
+ return "";
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.StringEquals(AppKey, "Value", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", DesiredValue, RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AppKey, "Value", "Allow", RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Bloatware/RemoveUWPAll.cs b/src/Privatezilla/Privatezilla/Settings/Bloatware/RemoveUWPAll.cs
new file mode 100644
index 0000000..48afc1a
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Bloatware/RemoveUWPAll.cs
@@ -0,0 +1,72 @@
+using System;
+using System.Management.Automation;
+using System.IO;
+
+namespace Privatezilla.Setting.Bloatware
+{
+ internal class RemoveUWPAll : SettingBase
+ {
+ public override string ID()
+ {
+ return Properties.Resources.settingsBloatwareRemoveUWPAll;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsBloatwareRemoveUWPAllInfo;
+ }
+
+ public override bool CheckSetting()
+ {
+ // NOTE! OPTIMIZE
+ // Check if app Windows.Photos exists and return true as not configured
+ var appPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Packages", "Microsoft.Windows.Photos_8wekyb3d8bbwe");
+
+ if (Directory.Exists(appPath))
+ {
+ return true;
+ }
+
+
+ return false;
+ }
+
+ public override bool DoSetting()
+ {
+ using (PowerShell script = PowerShell.Create())
+ {
+ 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();
+ }
+ catch
+ { }
+ }
+
+ return true;
+ }
+
+ public override bool UndoSetting()
+ {
+ using (PowerShell script = PowerShell.Create())
+ {
+ script.AddScript("Get-AppxPackage -AllUsers| Foreach {Add-AppxPackage -DisableDevelopmentMode -Register “$($_.InstallLocation)\\AppXManifest.xml”}");
+
+
+ try
+ {
+ script.Invoke();
+ return true;
+ }
+ catch
+ {}
+
+ return false;
+ }
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Bloatware/RemoveUWPDefaults.cs b/src/Privatezilla/Privatezilla/Settings/Bloatware/RemoveUWPDefaults.cs
new file mode 100644
index 0000000..d1ea89e
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Bloatware/RemoveUWPDefaults.cs
@@ -0,0 +1,71 @@
+using System;
+using System.Management.Automation;
+using System.IO;
+
+namespace Privatezilla.Setting.Bloatware
+{
+ internal class RemoveUWPDefaults : SettingBase
+ {
+ public override string ID()
+ {
+ return Properties.Resources.settingsBloatwareRemoveUWPDefaults;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsBloatwareRemoveUWPDefaultsInfo.Replace("\\n", "\n");
+ }
+
+ public override bool CheckSetting()
+ {
+ // NOTE! OPTIMIZE
+ // Check if app Windows.Photos exists and return false as configured
+ var appPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Packages", "Microsoft.Windows.Photos_8wekyb3d8bbwe");
+
+ if (Directory.Exists(appPath))
+ {
+ return false;
+ }
+
+
+ return true;
+ }
+
+ public override bool DoSetting()
+ {
+ using (PowerShell script = PowerShell.Create())
+ {
+ script.AddScript("Get-appxprovisionedpackage –online | where-object {$_.packagename –notlike “*store*” -and $_.packagename –notlike “*appinstaller*” -and $_.packagename –notlike “*calculator*” -and $_.packagename –notlike “*photos*” -and $_.packagename –notlike “*sticky*” -and $_.packagename –notlike “*skypeapp*” -and $_.packagename –notlike “*alarms*” -and $_.packagename –notlike “*maps*” -and $_.packagename –notlike “*camera*” -and $_.packagename –notlike “*xbox*” -and $_.packagename –notlike “*communicationssapps*” -and $_.packagename –notlike “*zunemusic*” -and $_.packagename –notlike “*mspaint*” -and $_.packagename –notlike “*yourphone*” -and $_.packagename –notlike “*bingweather*”} | Remove-AppxProvisionedPackage –online");
+ script.AddScript("Get-AppxPackage | where-object {$_.name –notlike “*store*” -and $_.name –notlike “*appinstaller*” -and $_.name –notlike “*calculator*” -and $_.name –notlike “*photos*” -and $_.name –notlike “*sticky*” -and $_.name –notlike “*skypeapp*” -and $_.name –notlike“*alarms*” -and $_.name –notlike “*maps*” -and $_.name –notlike “*camera*” -and $_.name –notlike “*xbox*” -and $_.name –notlike “*communicationssapps*” -and $_.name –notlike “*zunemusic*” -and $_.name –notlike “*mspaint*” -and $_.name –notlike “*yourphone*” -and $_.name –notlike “*bingweather*”} | Remove-AppxPackage");
+
+ try
+ {
+ script.Invoke();
+ }
+ catch
+ { }
+ }
+
+ return true;
+ }
+
+ public override bool UndoSetting()
+ {
+ using (PowerShell script = PowerShell.Create())
+ {
+ script.AddScript("Get-AppxPackage -AllUsers| Foreach {Add-AppxPackage -DisableDevelopmentMode -Register “$($_.InstallLocation)\\AppXManifest.xml”}");
+
+ try
+ {
+ script.Invoke();
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Cortana/DisableBing.cs b/src/Privatezilla/Privatezilla/Settings/Cortana/DisableBing.cs
new file mode 100644
index 0000000..a6706f4
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Cortana/DisableBing.cs
@@ -0,0 +1,64 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Cortana
+{
+ internal class DisableBing : SettingBase
+ {
+ private const string BingKey = @"HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Windows Search";
+ private const string Bing2004Key = @"HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Explorer"; // Disable Websearch on Windows 10, version >=2004
+ private const int DesiredValue = 0;
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsCortanaDisableBing;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsCortanaDisableBingInfo;
+ }
+
+ public override bool CheckSetting()
+
+ {
+ string releaseid = Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "ReleaseId", "").ToString();
+
+ if (releaseid != "2004")
+ return !(RegistryHelper.IntEquals(BingKey, "BingSearchEnabled", DesiredValue));
+
+ else
+ return !(RegistryHelper.IntEquals(Bing2004Key, "DisableSearchBoxSuggestions", 1));
+
+ }
+
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(BingKey, "BingSearchEnabled", DesiredValue, RegistryValueKind.DWord);
+ Registry.SetValue(Bing2004Key, "DisableSearchBoxSuggestions", 1, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(BingKey, "BingSearchEnabled", 1, RegistryValueKind.DWord);
+ Registry.SetValue(Bing2004Key, "DisableSearchBoxSuggestions", 0, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Cortana/DisableCortana.cs b/src/Privatezilla/Privatezilla/Settings/Cortana/DisableCortana.cs
new file mode 100644
index 0000000..d3229cd
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Cortana/DisableCortana.cs
@@ -0,0 +1,54 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Cortana
+{
+ internal class DisableCortana : SettingBase
+ {
+ private const string CortanaKey = @"HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Windows Search";
+ private const int DesiredValue = 0;
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsCortanaDisableCortana;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsCortanaDisableCortanaInfo.Replace("\\n", "\n");
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.IntEquals(CortanaKey, "AllowCortana", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(CortanaKey, "AllowCortana", DesiredValue, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(CortanaKey, "AllowCortana", 1, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Cortana/UninstallCortana.cs b/src/Privatezilla/Privatezilla/Settings/Cortana/UninstallCortana.cs
new file mode 100644
index 0000000..293e1b0
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Cortana/UninstallCortana.cs
@@ -0,0 +1,70 @@
+using System;
+using System.Management.Automation;
+using System.IO;
+
+namespace Privatezilla.Setting.Cortana
+{
+ internal class UninstallCortana : SettingBase
+ {
+ public override string ID()
+ {
+ return Properties.Resources.settingsCortanaUninstallCortana;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsCortanaUninstallCortanaInfo;
+ }
+
+ public override bool CheckSetting()
+ {
+ // Cortana Package ID on Windows 10, version 2004 is *Microsoft.549981C3F5F10*
+ var appPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Packages", "Microsoft.549981C3F5F10");
+
+ if (Directory.Exists(appPath))
+ {
+ return true;
+ }
+
+
+ return false;
+ }
+
+ public override bool DoSetting()
+ {
+ using (PowerShell script = PowerShell.Create())
+ {
+ script.AddScript("Get-appxpackage *Microsoft.549981C3F5F10* | Remove-AppxPackage");
+
+ try
+ {
+ script.Invoke();
+ }
+ catch
+ { }
+ }
+
+ return true;
+ }
+
+ public override bool UndoSetting()
+ {
+ using (PowerShell script = PowerShell.Create())
+ {
+ script.AddScript("Get-AppXPackage -Name Microsoft.Windows.Cortana | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register \"$($_.InstallLocation)AppXManifest.xml}\"");
+
+ try
+ {
+ script.Invoke();
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Defender/DisableSmartScreenStore.cs b/src/Privatezilla/Privatezilla/Settings/Defender/DisableSmartScreenStore.cs
new file mode 100644
index 0000000..314bcee
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Defender/DisableSmartScreenStore.cs
@@ -0,0 +1,57 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Defender
+{
+ internal class DisableSmartScreenStore: SettingBase
+ {
+ private const string DefenderKey = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\AppHost";
+ private const int DesiredValue = 0;
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsDefenderDisableSmartScreenStore;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsDefenderDisableSmartScreenStoreInfo;
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.IntEquals(DefenderKey, "EnableWebContentEvaluation", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(DefenderKey, "EnableWebContentEvaluation", DesiredValue, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+
+ var RegKey = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\AppHost", true);
+ RegKey.DeleteValue("EnableWebContentEvaluation");
+
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Edge/AutoFillCredits.cs b/src/Privatezilla/Privatezilla/Settings/Edge/AutoFillCredits.cs
new file mode 100644
index 0000000..ebcd1a3
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Edge/AutoFillCredits.cs
@@ -0,0 +1,54 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Edge
+{
+ internal class DisableAutoFillCredits : SettingBase
+ {
+ private const string EdgeKey = @"HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Edge";
+ private const int DesiredValue = 0;
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsEdeAutoFillCredit;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsEdeAutoFillCreditInfo;
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.IntEquals(EdgeKey, "AutofillCreditCardEnabled", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(EdgeKey, "AutofillCreditCardEnabled", DesiredValue, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(EdgeKey, "AutofillCreditCardEnabled", 1, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Edge/BlockEdgeRollout.cs b/src/Privatezilla/Privatezilla/Settings/Edge/BlockEdgeRollout.cs
new file mode 100644
index 0000000..33e7e8d
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Edge/BlockEdgeRollout.cs
@@ -0,0 +1,54 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Edge
+{
+ internal class BlockEdgeRollout : SettingBase
+ {
+ private const string EdgeKey = @"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\EdgeUpdate";
+ private const int DesiredValue = 1;
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsEdgeBlockEdgeRollout;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsEdgeBlockEdgeRolloutInfo;
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.IntEquals(EdgeKey, "DoNotUpdateToEdgeWithChromium", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(EdgeKey, "DoNotUpdateToEdgeWithChromium", DesiredValue, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(EdgeKey, "DoNotUpdateToEdgeWithChromium", 0, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Edge/DisableSync.cs b/src/Privatezilla/Privatezilla/Settings/Edge/DisableSync.cs
new file mode 100644
index 0000000..4431793
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Edge/DisableSync.cs
@@ -0,0 +1,54 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Edge
+{
+ internal class DisableSync : SettingBase
+ {
+ private const string EdgeKey = @"HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Edge";
+ private const int DesiredValue = 1;
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsEdgeDisableSync;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsEdgeDisableSyncInfo;
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.IntEquals(EdgeKey, "SyncDisabled", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(EdgeKey, "SyncDisabled", DesiredValue, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(EdgeKey, "SyncDisabled", 0, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Edge/EdgeBackground.cs b/src/Privatezilla/Privatezilla/Settings/Edge/EdgeBackground.cs
new file mode 100644
index 0000000..94ca553
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Edge/EdgeBackground.cs
@@ -0,0 +1,54 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Edge
+{
+ internal class EdgeBackground : SettingBase
+ {
+ private const string EdgeKey = @"HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Edge";
+ private const int DesiredValue = 0;
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsEdgeBackground;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsEdgeBackgroundInfo;
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.IntEquals(EdgeKey, "BackgroundModeEnabled", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(EdgeKey, "BackgroundModeEnabled", DesiredValue, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(EdgeKey, "BackgroundModeEnabled", 1, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Gaming/GameBar.cs b/src/Privatezilla/Privatezilla/Settings/Gaming/GameBar.cs
new file mode 100644
index 0000000..5f7c001
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Gaming/GameBar.cs
@@ -0,0 +1,54 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Gaming
+{
+ internal class DisableGameBar : SettingBase
+ {
+ private const string GameBarKey = @"HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\GameDVR";
+ private const int DesiredValue = 0;
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsGamingGameBar;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsGamingGameBarInfo;
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.IntEquals(GameBarKey, "AllowGameDVR", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(GameBarKey, "AllowGameDVR", DesiredValue, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(GameBarKey, "AllowGameDVR", 1, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Privacy/DiagnosticData.cs b/src/Privatezilla/Privatezilla/Settings/Privacy/DiagnosticData.cs
new file mode 100644
index 0000000..8040227
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Privacy/DiagnosticData.cs
@@ -0,0 +1,55 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Privacy
+{
+ internal class DiagnosticData : SettingBase
+ {
+ private const string DiagnosticKey = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Privacy";
+ private const int DesiredValue = 0;
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsPrivacyDiagnosticData;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsPrivacyDiagnosticDataInfo;
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.IntEquals(DiagnosticKey, "TailoredExperiencesWithDiagnosticDataEnabled", DesiredValue)
+ );
+
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(DiagnosticKey, "TailoredExperiencesWithDiagnosticDataEnabled", DesiredValue, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(DiagnosticKey, "TailoredExperiencesWithDiagnosticDataEnabled", 1, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Privacy/DisableAds.cs b/src/Privatezilla/Privatezilla/Settings/Privacy/DisableAds.cs
new file mode 100644
index 0000000..1031703
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Privacy/DisableAds.cs
@@ -0,0 +1,54 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Privacy
+{
+ internal class DisableAds : SettingBase
+ {
+ private const string AdsKey = @"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\AdvertisingInfo";
+ private const int DesiredValue = 0;
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsPrivacyDisableAds;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsPrivacyDisableAdsInfo;
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.IntEquals(AdsKey, "Enabled", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AdsKey, "Enabled", DesiredValue, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AdsKey, "Enabled", 1, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Privacy/DisableBiometrics.cs b/src/Privatezilla/Privatezilla/Settings/Privacy/DisableBiometrics.cs
new file mode 100644
index 0000000..dfb206c
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Privacy/DisableBiometrics.cs
@@ -0,0 +1,55 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Privacy
+{
+ internal class DisableBiometrics : SettingBase
+ {
+ private const string BiometricsKey = @"HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Biometrics";
+ private const int DesiredValue = 0;
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsPrivacyDisableBiometrics;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsPrivacyDisableBiometricsInfo;
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.IntEquals(BiometricsKey, "Enabled", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(BiometricsKey, "Enabled", DesiredValue, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(BiometricsKey, "Enabled", 1, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Privacy/DisableCEIP.cs b/src/Privatezilla/Privatezilla/Settings/Privacy/DisableCEIP.cs
new file mode 100644
index 0000000..b876b50
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Privacy/DisableCEIP.cs
@@ -0,0 +1,54 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Privacy
+{
+ internal class DisableCEIP : SettingBase
+ {
+ private const string CEIPKey = @"HKEY_LOCAL_MACHINE\Software\Microsoft\SQMClient\Windows";
+ private const int DesiredValue = 0;
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsPrivacyDisableCEIP;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsPrivacyDisableCEIPInfo;
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.IntEquals(CEIPKey, "CEIPEnable", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(CEIPKey, "CEIPEnable", DesiredValue, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(CEIPKey, "CEIPEnable", 1, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Privacy/DisableCompTelemetry.cs b/src/Privatezilla/Privatezilla/Settings/Privacy/DisableCompTelemetry.cs
new file mode 100644
index 0000000..b7dd769
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Privacy/DisableCompTelemetry.cs
@@ -0,0 +1,58 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Privacy
+{
+ internal class DisableCompTelemetry : SettingBase
+ {
+ private const string TelemetryKey = @"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 Properties.Resources.settingsPrivacyDisableCompTelemetry;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsPrivacyDisableCompTelemetryInfo;
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.StringEquals(TelemetryKey, "Debugger", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(TelemetryKey, "Debugger", DesiredValue, RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+
+ var RegKey = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\CompatTelRunner.exe", true);
+ RegKey.DeleteValue("Debugger");
+
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Privacy/DisableFeedback.cs b/src/Privatezilla/Privatezilla/Settings/Privacy/DisableFeedback.cs
new file mode 100644
index 0000000..0551cee
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Privacy/DisableFeedback.cs
@@ -0,0 +1,60 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Privacy
+{
+ internal class DisableFeedback: SettingBase
+ {
+ 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 Properties.Resources.settingsPrivacyDisableFeedback;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsPrivacyDisableFeedbackInfo;
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.IntEquals(PeriodInNanoSeconds, "PeriodInNanoSeconds", DesiredValue) &&
+ RegistryHelper.IntEquals(NumberOfSIUFInPeriod, "NumberOfSIUFInPeriod", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(PeriodInNanoSeconds, "PeriodInNanoSeconds", DesiredValue, RegistryValueKind.DWord);
+ Registry.SetValue(NumberOfSIUFInPeriod, "NumberOfSIUFInPeriod", DesiredValue, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+ public override bool UndoSetting()
+ {
+ try
+ {
+ var RegKey = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Siuf\Rules", true);
+ RegKey.DeleteValue("NumberOfSIUFInPeriod");
+ RegKey.DeleteValue("PeriodInNanoSeconds");
+ return true;
+
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Privacy/DisableHEIP.cs b/src/Privatezilla/Privatezilla/Settings/Privacy/DisableHEIP.cs
new file mode 100644
index 0000000..80ef9da
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Privacy/DisableHEIP.cs
@@ -0,0 +1,54 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Privacy
+{
+ internal class DisableHEIP: SettingBase
+ {
+ private const string HEIPKey = @"HKEY_CURRENT_USER\Software\Microsoft\Assistance\Client\1.0\Settings";
+ private const int DesiredValue = 0;
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsPrivacyDisableHEIP;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsPrivacyDisableHEIPInfo;
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.IntEquals(HEIPKey, "ImplicitFeedback", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(HEIPKey, "ImplicitFeedback", DesiredValue, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(HEIPKey, "ImplicitFeedback", 1, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Privacy/DisableLocation.cs b/src/Privatezilla/Privatezilla/Settings/Privacy/DisableLocation.cs
new file mode 100644
index 0000000..8956932
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Privacy/DisableLocation.cs
@@ -0,0 +1,53 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Privacy
+{
+ internal class DisableLocation : SettingBase
+ {
+ private const string LocationKey = @"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location";
+ private const string DesiredValue = @"Deny";
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsPrivacyDisableLocation;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsPrivacyDisableLocationInfo;
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.StringEquals(LocationKey, "Value", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(LocationKey, "Value", DesiredValue, RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(LocationKey, "Value", "Allow", RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Privacy/DisableMSExperiments.cs b/src/Privatezilla/Privatezilla/Settings/Privacy/DisableMSExperiments.cs
new file mode 100644
index 0000000..f6c5a91
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Privacy/DisableMSExperiments.cs
@@ -0,0 +1,55 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Privacy
+{
+ internal class DisableMSExperiments: SettingBase
+ {
+ private const string ExperimentationKey = @"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\current\device\System";
+ private const int DesiredValue = 0;
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsPrivacyDisableMSExperiments;
+
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsPrivacyDisableMSExperimentsInfo;
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.IntEquals(ExperimentationKey, "AllowExperimentation", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(ExperimentationKey, "AllowExperimentation", DesiredValue, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(ExperimentationKey, "AllowExperimentation", 1, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Privacy/DisableTelemetry.cs b/src/Privatezilla/Privatezilla/Settings/Privacy/DisableTelemetry.cs
new file mode 100644
index 0000000..1328148
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Privacy/DisableTelemetry.cs
@@ -0,0 +1,62 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Privacy
+{
+ internal class DisableTelemetry : SettingBase
+ {
+ private const string TelemetryKey = @"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 Properties.Resources.settingsPrivacyDisableTelemetry;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsPrivacyDisableTelemetryInfo.Replace("\\n", "\n");
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.IntEquals(TelemetryKey, "AllowTelemetry", DesiredValue) &&
+ RegistryHelper.IntEquals(DiagTrack, "Start", 4) &&
+ RegistryHelper.IntEquals(dmwappushservice, "Start", 4)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(TelemetryKey, "AllowTelemetry", DesiredValue, RegistryValueKind.DWord);
+ Registry.SetValue(DiagTrack, "Start", 4, RegistryValueKind.DWord);
+ Registry.SetValue(dmwappushservice, "Start", 4, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(TelemetryKey, "AllowTelemetry", 3, RegistryValueKind.DWord);
+ Registry.SetValue(DiagTrack, "Start", 2, RegistryValueKind.DWord);
+ Registry.SetValue(dmwappushservice, "Start", 2, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Privacy/DisableTimeline.cs b/src/Privatezilla/Privatezilla/Settings/Privacy/DisableTimeline.cs
new file mode 100644
index 0000000..2514902
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Privacy/DisableTimeline.cs
@@ -0,0 +1,60 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Privacy
+{
+ internal class DisableTimeline : SettingBase
+ {
+ private const string EnableActivityFeed = @"HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\System";
+ private const string PublishUserActivities = @"HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\System";
+ private const int DesiredValue = 0;
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsPrivacyDisableTimeline;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsPrivacyDisableTimelineInfo.Replace("\\n", "\n");
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.IntEquals(EnableActivityFeed, "EnableActivityFeed", DesiredValue) &&
+ RegistryHelper.IntEquals(PublishUserActivities, "PublishUserActivities", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(EnableActivityFeed, "EnableActivityFeed", DesiredValue, RegistryValueKind.DWord);
+ Registry.SetValue(PublishUserActivities, "PublishUserActivities", DesiredValue, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ var RegKey = Registry.LocalMachine.OpenSubKey(@"Software\Policies\Microsoft\Windows\System", true);
+ RegKey.DeleteValue("EnableActivityFeed");
+ RegKey.DeleteValue("PublishUserActivities");
+
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Privacy/DisableTips.cs b/src/Privatezilla/Privatezilla/Settings/Privacy/DisableTips.cs
new file mode 100644
index 0000000..340be7b
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Privacy/DisableTips.cs
@@ -0,0 +1,67 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Privacy
+{
+ internal class DisableTips: SettingBase
+ {
+ private const string DisableSoftLanding = @"HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\CloudContent";
+ private const string DisableWindowsSpotlightFeatures = @"HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\CloudContent";
+ private const string DisableWindowsConsumerFeatures = @"HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\CloudContent";
+ private const string DoNotShowFeedbackNotifications = @"HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\DataCollection";
+ private const int DesiredValue = 1;
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsPrivacyDisableTips;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsPrivacyDisableTipsInfo;
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.IntEquals(DisableSoftLanding, "DisableSoftLanding", DesiredValue) &&
+ RegistryHelper.IntEquals(DisableWindowsSpotlightFeatures, "DisableWindowsSpotlightFeatures", DesiredValue) &&
+ RegistryHelper.IntEquals(DisableWindowsConsumerFeatures, "DisableWindowsConsumerFeatures", DesiredValue) &&
+ RegistryHelper.IntEquals(DoNotShowFeedbackNotifications, "DoNotShowFeedbackNotifications", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(DisableSoftLanding, "DisableSoftLanding", DesiredValue, RegistryValueKind.DWord);
+ Registry.SetValue(DisableWindowsSpotlightFeatures, "DisableWindowsSpotlightFeatures", DesiredValue, RegistryValueKind.DWord);
+ Registry.SetValue(DisableWindowsConsumerFeatures, "DisableWindowsConsumerFeatures", DesiredValue, RegistryValueKind.DWord);
+ Registry.SetValue(DoNotShowFeedbackNotifications, "DoNotShowFeedbackNotifications", DesiredValue, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(DisableSoftLanding, "DisableSoftLanding", 0, RegistryValueKind.DWord);
+ Registry.SetValue(DisableWindowsSpotlightFeatures, "DisableWindowsSpotlightFeatures", 0, RegistryValueKind.DWord);
+ Registry.SetValue(DisableWindowsConsumerFeatures, "DisableWindowsConsumerFeatures", 0, RegistryValueKind.DWord);
+ Registry.SetValue(DoNotShowFeedbackNotifications, "DoNotShowFeedbackNotifications", 0, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Privacy/DisableTipsLockScreen.cs b/src/Privatezilla/Privatezilla/Settings/Privacy/DisableTipsLockScreen.cs
new file mode 100644
index 0000000..3426e78
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Privacy/DisableTipsLockScreen.cs
@@ -0,0 +1,64 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Privacy
+{
+ internal class DisableTipsLockScreen : SettingBase
+ {
+ private const string SpotlightKey = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager";
+ private const string LockScreenKey = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager";
+ private const string TipsTricksSuggestions = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager";
+ private const int DesiredValue = 0;
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsPrivacyDisableTipsLockScreen;
+
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsPrivacyDisableTipsLockScreenInfo;
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.IntEquals(SpotlightKey, "RotatingLockScreenEnabled", DesiredValue) &&
+ RegistryHelper.IntEquals(LockScreenKey, "RotatingLockScreenOverlayEnabled", DesiredValue) &&
+ RegistryHelper.IntEquals(TipsTricksSuggestions, "SubscribedContent-338389Enabled", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(SpotlightKey, "RotatingLockScreenEnabled", DesiredValue, RegistryValueKind.DWord);
+ Registry.SetValue(LockScreenKey, "RotatingLockScreenOverlayEnabled", DesiredValue, RegistryValueKind.DWord);
+ Registry.SetValue(TipsTricksSuggestions, "SubscribedContent-338389Enabled", DesiredValue, RegistryValueKind.DWord);
+ return true;
+
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(SpotlightKey, "RotatingLockScreenEnabled", 1, RegistryValueKind.DWord);
+ Registry.SetValue(LockScreenKey, "RotatingLockScreenOverlayEnabled", 1, RegistryValueKind.DWord);
+ Registry.SetValue(TipsTricksSuggestions, "SubscribedContent-338389Enabled", 1, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Privacy/DisableWiFi.cs b/src/Privatezilla/Privatezilla/Settings/Privacy/DisableWiFi.cs
new file mode 100644
index 0000000..da24b6f
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Privacy/DisableWiFi.cs
@@ -0,0 +1,55 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Privacy
+{
+ internal class DisableWiFi : SettingBase
+ {
+ private const string WiFiKey = @"HKEY_LOCAL_MACHINE\Software\Microsoft\WcmSvc\wifinetworkmanager\config";
+ private const int DesiredValue = 0;
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsPrivacyDisableWiFi;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsPrivacyDisableWiFiInfo;
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.IntEquals(WiFiKey, "AutoConnectAllowedOEM", DesiredValue)
+
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(WiFiKey, "AutoConnectAllowedOEM", DesiredValue, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(WiFiKey, "AutoConnectAllowedOEM", 1, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Privacy/GetMoreOutOfWindows.cs b/src/Privatezilla/Privatezilla/Settings/Privacy/GetMoreOutOfWindows.cs
new file mode 100644
index 0000000..67284fa
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Privacy/GetMoreOutOfWindows.cs
@@ -0,0 +1,55 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Privacy
+{
+ internal class GetMoreOutOfWindows: SettingBase
+ {
+ private const string GetKey = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\UserProfileEngagement";
+ private const int DesiredValue = 0;
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsPrivacyGetMoreOutOfWindows;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsPrivacyGetMoreOutOfWindowsInfo.Replace("\\n", "\n");
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.IntEquals(GetKey, "ScoobeSystemSettingEnabled", DesiredValue)
+
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(GetKey, "ScoobeSystemSettingEnabled", DesiredValue, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(GetKey, "ScoobeSystemSettingEnabled", 1, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Privacy/HandwritingData.cs b/src/Privatezilla/Privatezilla/Settings/Privacy/HandwritingData.cs
new file mode 100644
index 0000000..ef13d88
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Privacy/HandwritingData.cs
@@ -0,0 +1,71 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Privacy
+{
+ internal class HandwritingData : SettingBase
+ {
+ private const string AllowInputPersonalization = @"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\InputPersonalization";
+ private const string RestrictImplicitInkCollection = @"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\InputPersonalization";
+ private const string RestrictImplicitTextCollection = @"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\InputPersonalization";
+ private const string PreventHandwritingErrorReports = @"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\HandwritingErrorReports";
+ private const string PreventHandwritingDataSharing = @"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\TabletPC";
+ private const int DesiredValue = 1;
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsPrivacyHandwritingData;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsPrivacyHandwritingDataInfo;
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.IntEquals(AllowInputPersonalization, "AllowInputPersonalization", 0) &&
+ RegistryHelper.IntEquals(RestrictImplicitInkCollection, "RestrictImplicitInkCollection", DesiredValue) &&
+ RegistryHelper.IntEquals(RestrictImplicitTextCollection, "RestrictImplicitTextCollection", DesiredValue) &&
+ RegistryHelper.IntEquals(PreventHandwritingErrorReports, "PreventHandwritingErrorReports", DesiredValue) &&
+ RegistryHelper.IntEquals(PreventHandwritingDataSharing, "PreventHandwritingDataSharing", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AllowInputPersonalization, "AllowInputPersonalization", 0, RegistryValueKind.DWord);
+ Registry.SetValue(RestrictImplicitInkCollection, "RestrictImplicitInkCollection", DesiredValue, RegistryValueKind.DWord);
+ Registry.SetValue(RestrictImplicitTextCollection, "RestrictImplicitTextCollection", DesiredValue, RegistryValueKind.DWord);
+ Registry.SetValue(PreventHandwritingErrorReports, "PreventHandwritingErrorReports", DesiredValue, RegistryValueKind.DWord);
+ Registry.SetValue(PreventHandwritingDataSharing, "PreventHandwritingDataSharing", DesiredValue, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(AllowInputPersonalization, "AllowInputPersonalization", 1, RegistryValueKind.DWord);
+ Registry.SetValue(RestrictImplicitInkCollection, "RestrictImplicitInkCollection", 0, RegistryValueKind.DWord);
+ Registry.SetValue(RestrictImplicitTextCollection, "RestrictImplicitTextCollection", 0, RegistryValueKind.DWord);
+ Registry.SetValue(PreventHandwritingErrorReports, "PreventHandwritingErrorReports", 0, RegistryValueKind.DWord);
+ Registry.SetValue(PreventHandwritingDataSharing, "PreventHandwritingDataSharing", 0, RegistryValueKind.DWord); ;
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Privacy/InstalledApps.cs b/src/Privatezilla/Privatezilla/Settings/Privacy/InstalledApps.cs
new file mode 100644
index 0000000..a1bfa14
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Privacy/InstalledApps.cs
@@ -0,0 +1,56 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Privacy
+{
+ internal class InstalledApps : SettingBase
+ {
+ private const string InstalledKey = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager";
+ private const int DesiredValue = 0;
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsPrivacyInstalledApps;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsPrivacyInstalledAppsInfo.Replace("\\n", "\n");
+ }
+
+ public override bool CheckSetting()
+ {
+
+ return !(
+ RegistryHelper.IntEquals(InstalledKey, "SilentInstalledAppsEnabled", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(InstalledKey, "SilentInstalledAppsEnabled", DesiredValue, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(InstalledKey, "SilentInstalledAppsEnabled", 1, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Privacy/InventoryCollector.cs b/src/Privatezilla/Privatezilla/Settings/Privacy/InventoryCollector.cs
new file mode 100644
index 0000000..4400133
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Privacy/InventoryCollector.cs
@@ -0,0 +1,58 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Privacy
+{
+ internal class InventoryCollector : SettingBase
+ {
+ private const string InventoryKey = @"HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\AppCompat";
+ private const string AppTelemetryKey = @"HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\AppCompat";
+ private const int DesiredValue = 1;
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsPrivacyInventoryCollector;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsPrivacyInventoryCollectorInfo.Replace("\\n", "\n");
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.IntEquals(InventoryKey, "DisableInventory", DesiredValue) &&
+ RegistryHelper.IntEquals(AppTelemetryKey, "AITEnable", 0)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(InventoryKey, "DisableInventory", DesiredValue, RegistryValueKind.DWord);
+ Registry.SetValue(AppTelemetryKey, "AITEnable", 0, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(InventoryKey, "DisableInventory", 0, RegistryValueKind.DWord);
+ Registry.SetValue(AppTelemetryKey, "AITEnable", 1, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Privacy/SuggestedApps.cs b/src/Privatezilla/Privatezilla/Settings/Privacy/SuggestedApps.cs
new file mode 100644
index 0000000..73985ea
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Privacy/SuggestedApps.cs
@@ -0,0 +1,54 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Privacy
+{
+ internal class SuggestedApps : SettingBase
+ {
+ private const string SuggestedKey = @"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager";
+ private const int DesiredValue = 0;
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsPrivacyBlockSuggestedApps;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsPrivacyBlockSuggestedAppsInfo;
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.IntEquals(SuggestedKey, "SubscribedContent-338388Enabled", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(SuggestedKey, "SubscribedContent-338388Enabled", DesiredValue, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(SuggestedKey, "SubscribedContent-338388Enabled", 1 , RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Privacy/SuggestedContent.cs b/src/Privatezilla/Privatezilla/Settings/Privacy/SuggestedContent.cs
new file mode 100644
index 0000000..151fcbb
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Privacy/SuggestedContent.cs
@@ -0,0 +1,64 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Privacy
+{
+ internal class SuggestedContent : SettingBase
+ {
+ private const string SubscribedContent338393 = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager";
+ private const string SubscribedContent353694 = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager";
+ private const string SubscribedContent353696 = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager";
+ private const int DesiredValue = 0;
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsPrivacySuggestedContent;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsPrivacySuggestedContentInfo;
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.IntEquals(SubscribedContent338393, "SubscribedContent-338393Enabled", DesiredValue) &&
+ RegistryHelper.IntEquals(SubscribedContent353694, "SubscribedContent-353694Enabled", DesiredValue) &&
+ RegistryHelper.IntEquals(SubscribedContent353696, "SubscribedContent-353696Enabled", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(SubscribedContent338393, "SubscribedContent-338393Enabled", DesiredValue, RegistryValueKind.DWord);
+ Registry.SetValue(SubscribedContent353694, "SubscribedContent-353694Enabled", DesiredValue, RegistryValueKind.DWord);
+ Registry.SetValue(SubscribedContent353696, "SubscribedContent-353696Enabled", DesiredValue, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(SubscribedContent338393, "SubscribedContent-338393Enabled", 1, RegistryValueKind.DWord);
+ Registry.SetValue(SubscribedContent353694, "SubscribedContent-353694Enabled", 1, RegistryValueKind.DWord);
+ Registry.SetValue(SubscribedContent353696, "SubscribedContent-353696Enabled", 1, RegistryValueKind.DWord);
+
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Security/DisablePassword.cs b/src/Privatezilla/Privatezilla/Settings/Security/DisablePassword.cs
new file mode 100644
index 0000000..56996b7
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Security/DisablePassword.cs
@@ -0,0 +1,55 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Security
+{
+ internal class DisablePassword : SettingBase
+ {
+ private const string PasswordKey = @"HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\CredUI";
+ private const int DesiredValue = 1;
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsSecurityDisablePassword;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsSecurityDisablePasswordInfo;
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.IntEquals(PasswordKey, "DisablePasswordReveal", DesiredValue)
+ );
+
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(PasswordKey, "DisablePasswordReveal", DesiredValue, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(PasswordKey, "DisablePasswordReveal", 0, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Security/WindowsDRM.cs b/src/Privatezilla/Privatezilla/Settings/Security/WindowsDRM.cs
new file mode 100644
index 0000000..f1a8837
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Security/WindowsDRM.cs
@@ -0,0 +1,55 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Security
+{
+ internal class WindowsDRM : SettingBase
+ {
+ private const string DRMKey = @"HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\WMDRM";
+ private const int DesiredValue = 1;
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsSecurityWindowsDRM;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsSecurityWindowsDRMInfo;
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.IntEquals(DRMKey, "DisableOnline", DesiredValue)
+ );
+
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(DRMKey, "DisableOnline", DesiredValue, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(DRMKey, "DisableOnline", 0, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Updates/BlockMajorUpdates.cs b/src/Privatezilla/Privatezilla/Settings/Updates/BlockMajorUpdates.cs
new file mode 100644
index 0000000..063fa98
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Updates/BlockMajorUpdates.cs
@@ -0,0 +1,59 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Updates
+{
+ internal class BlockMajorUpdates : SettingBase
+ {
+ private const string TargetReleaseVersion = @"HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate";
+ private const string TargetReleaseVersionInfo = @"HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate";
+ private const int DesiredValue = 1;
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsUpdatesBlockMajorUpdates;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsUpdatesBlockMajorUpdatesInfo.Replace("\\n", "\n");
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.IntEquals(TargetReleaseVersion, "TargetReleaseVersion", DesiredValue) &&
+ RegistryHelper.StringEquals(TargetReleaseVersionInfo, "TargetReleaseVersionInfo", WindowsHelper.GetOS())
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(TargetReleaseVersion, "TargetReleaseVersion", DesiredValue, RegistryValueKind.DWord);
+ Registry.SetValue(TargetReleaseVersionInfo, "TargetReleaseVersionInfo", WindowsHelper.GetOS(), RegistryValueKind.String);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ var RegKey = Registry.LocalMachine.OpenSubKey(@"Software\Policies\Microsoft\Windows\WindowsUpdate", true);
+ RegKey.DeleteValue("TargetReleaseVersion");
+ RegKey.DeleteValue("TargetReleaseVersionInfo");
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Updates/DisableUpdates.cs b/src/Privatezilla/Privatezilla/Settings/Updates/DisableUpdates.cs
new file mode 100644
index 0000000..5358ce2
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Updates/DisableUpdates.cs
@@ -0,0 +1,68 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Updates
+{
+ internal class DisableUpdates : SettingBase
+ {
+ private const string NoAutoUpdate = @"HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate\AU";
+ private const string AUOptions = @"HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate\AU";
+ private const string ScheduledInstallDay = @"HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate\AU";
+ private const string ScheduledInstallTime = @"HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate\AU";
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsUpdatesDisableUpdates;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsUpdatesDisableUpdatesInfo;
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.IntEquals(NoAutoUpdate, "NoAutoUpdate",0) &&
+ RegistryHelper.IntEquals(AUOptions, "AUOptions", 2) &&
+ RegistryHelper.IntEquals(ScheduledInstallDay, "ScheduledInstallDay", 0) &&
+ RegistryHelper.IntEquals(ScheduledInstallTime, "ScheduledInstallTime", 3)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(NoAutoUpdate, "NoAutoUpdate", 0, RegistryValueKind.DWord);
+ Registry.SetValue(AUOptions, "AUOptions", 2, RegistryValueKind.DWord);
+ Registry.SetValue(ScheduledInstallDay, "ScheduledInstallDay", 0, RegistryValueKind.DWord);
+ Registry.SetValue(ScheduledInstallTime, "ScheduledInstallTime", 3, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ Registry.SetValue(NoAutoUpdate, "NoAutoUpdate", 1, RegistryValueKind.DWord);
+
+ var RegKey = Registry.LocalMachine.OpenSubKey(@"Software\Policies\Microsoft\Windows\WindowsUpdate\AU", true);
+ RegKey.DeleteValue("AUOptions");
+ RegKey.DeleteValue("ScheduledInstallDay");
+ RegKey.DeleteValue("ScheduledInstallTime");
+
+ return true;
+ }
+ catch
+ {}
+
+ return false;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/Settings/Updates/UpdatesSharing.cs b/src/Privatezilla/Privatezilla/Settings/Updates/UpdatesSharing.cs
new file mode 100644
index 0000000..a4c892e
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/Settings/Updates/UpdatesSharing.cs
@@ -0,0 +1,56 @@
+using Microsoft.Win32;
+
+namespace Privatezilla.Setting.Updates
+{
+ internal class DisableUpdatesSharing : SettingBase
+ {
+ private const string SharingKey = @"HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\DeliveryOptimization";
+ private const int DesiredValue = 0;
+
+ public override string ID()
+ {
+ return Properties.Resources.settingsUpdatesUpdateSharing;
+ }
+
+ public override string Info()
+ {
+ return Properties.Resources.settingsUpdatesUpdateSharingInfo;
+ }
+
+ public override bool CheckSetting()
+ {
+ return !(
+ RegistryHelper.IntEquals(SharingKey, "DODownloadMode", DesiredValue)
+ );
+ }
+
+ public override bool DoSetting()
+ {
+ try
+ {
+ Registry.SetValue(SharingKey, "DODownloadMode", DesiredValue, RegistryValueKind.DWord);
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ public override bool UndoSetting()
+ {
+ try
+ {
+ var RegKey = Registry.LocalMachine.OpenSubKey(@"Software\Policies\Microsoft\Windows\DeliveryOptimization", true);
+ RegKey.DeleteValue("DODownloadMode");
+
+ return true;
+ }
+ catch
+ { }
+
+ return false;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/src/Privatezilla/Privatezilla/app.manifest b/src/Privatezilla/Privatezilla/app.manifest
new file mode 100644
index 0000000..ea37ac5
--- /dev/null
+++ b/src/Privatezilla/Privatezilla/app.manifest
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+