diff --git a/src/Privatezilla/Locales/Locale.Designer.cs b/src/Privatezilla/Locales/Locale.Designer.cs index 1ae14993..5020fd0e 100644 --- a/src/Privatezilla/Locales/Locale.Designer.cs +++ b/src/Privatezilla/Locales/Locale.Designer.cs @@ -19,7 +19,7 @@ namespace Privatezilla.Locales { // -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", "15.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Locale { @@ -1335,6 +1335,24 @@ internal class Locale { } } + /// + /// Sucht eine lokalisierte Zeichenfolge, die Disable safeguards for Feature Updates ähnelt. + /// + internal static string settingsUpdatesDisableSafeguards { + get { + return ResourceManager.GetString("settingsUpdatesDisableSafeguards", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Zeichenfolge, die Microsoft uses diagnostic data to determine whether devices that use Windows Update are ready for a feature update in order to ensure a smooth experience.\nWhen Microsoft determines a device is not ready to update due to a known issue, a safeguard hold (also known as a compatibility hold or update block) is generated to delay the device's upgrade and protect the end-user experience.\nThis setting will opt out of safeguard protections allowing you to bypass any feature upgrade blocks. ähnelt. + /// + internal static string settingsUpdatesDisableSafeguardsInfo { + get { + return ResourceManager.GetString("settingsUpdatesDisableSafeguardsInfo", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Zeichenfolge, die Disable forced Windows updates ähnelt. /// diff --git a/src/Privatezilla/Locales/Locale.resx b/src/Privatezilla/Locales/Locale.resx index a95bb452..02b00ffa 100644 --- a/src/Privatezilla/Locales/Locale.resx +++ b/src/Privatezilla/Locales/Locale.resx @@ -677,6 +677,12 @@ Add translation credits here! 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 safeguards for Feature Updates + + + Microsoft uses diagnostic data to determine whether devices that use Windows Update are ready for a feature update in order to ensure a smooth experience.\nWhen Microsoft determines a device is not ready to update due to a known issue, a safeguard hold (also known as a compatibility hold or update block) is generated to delay the device's upgrade and protect the end-user experience.\nThis setting will opt out of safeguard protections allowing you to bypass any feature upgrade blocks. + Disable forced Windows updates Settings > Updates diff --git a/src/Privatezilla/MainWindow.cs b/src/Privatezilla/MainWindow.cs index 59024bcb..db0be4fa 100644 --- a/src/Privatezilla/MainWindow.cs +++ b/src/Privatezilla/MainWindow.cs @@ -201,6 +201,7 @@ public void InitializeSettings() new SettingNode(new Setting.Updates.DisableUpdates()), new SettingNode(new Setting.Updates.DisableUpdatesSharing()), new SettingNode(new Setting.Updates.BlockMajorUpdates()), + new SettingNode(new Setting.Updates.DisableSafeguards()), }); // Settings > Gaming diff --git a/src/Privatezilla/Privatezilla.csproj b/src/Privatezilla/Privatezilla.csproj index 33cc5380..f64aede2 100644 --- a/src/Privatezilla/Privatezilla.csproj +++ b/src/Privatezilla/Privatezilla.csproj @@ -145,6 +145,7 @@ + diff --git a/src/Privatezilla/Properties/AssemblyInfo.cs b/src/Privatezilla/Properties/AssemblyInfo.cs index 97b84beb..46dcab9e 100644 --- a/src/Privatezilla/Properties/AssemblyInfo.cs +++ b/src/Privatezilla/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ // 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.41.10")] -[assembly: AssemblyFileVersion("0.41.10")] +[assembly: AssemblyVersion("0.42.0")] +[assembly: AssemblyFileVersion("0.42.0")] diff --git a/src/Privatezilla/Settings/Cortana/DisableCortana.cs b/src/Privatezilla/Settings/Cortana/DisableCortana.cs index 3b4d63f2..254f1a00 100644 --- a/src/Privatezilla/Settings/Cortana/DisableCortana.cs +++ b/src/Privatezilla/Settings/Cortana/DisableCortana.cs @@ -6,6 +6,7 @@ namespace Privatezilla.Setting.Cortana internal class DisableCortana : SettingBase { private const string CortanaKey = @"HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Windows Search"; + private const string CortanaIconKey = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"; private const int DesiredValue = 0; public override string ID() @@ -21,7 +22,8 @@ public override string Info() public override bool CheckSetting() { return !( - RegistryHelper.IntEquals(CortanaKey, "AllowCortana", DesiredValue) + RegistryHelper.IntEquals(CortanaKey, "AllowCortana", DesiredValue) && + RegistryHelper.IntEquals(CortanaIconKey, "ShowCortanaButton", DesiredValue) ); } @@ -30,6 +32,7 @@ public override bool DoSetting() try { Registry.SetValue(CortanaKey, "AllowCortana", DesiredValue, RegistryValueKind.DWord); + Registry.SetValue(CortanaIconKey, "ShowCortanaButton", DesiredValue, RegistryValueKind.DWord); return true; } catch @@ -43,6 +46,7 @@ public override bool UndoSetting() try { Registry.SetValue(CortanaKey, "AllowCortana", 1, RegistryValueKind.DWord); + Registry.SetValue(CortanaIconKey, "ShowCortanaButton", 1, RegistryValueKind.DWord); return true; } catch diff --git a/src/Privatezilla/Settings/Updates/DisableSafeguards.cs b/src/Privatezilla/Settings/Updates/DisableSafeguards.cs new file mode 100644 index 00000000..1fdb00d7 --- /dev/null +++ b/src/Privatezilla/Settings/Updates/DisableSafeguards.cs @@ -0,0 +1,57 @@ +using Microsoft.Win32; +using Privatezilla.Locales; + +namespace Privatezilla.Setting.Updates +{ + internal class DisableSafeguards : SettingBase + { + private const string SharingKey = @"HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate"; + private const int DesiredValue = 1; + + public override string ID() + { + return Locale.settingsUpdatesDisableSafeguards; + } + + public override string Info() + { + return Locale.settingsUpdatesDisableSafeguardsInfo.Replace("\\n", "\n"); + } + + public override bool CheckSetting() + { + return !( + RegistryHelper.IntEquals(SharingKey, "DisableWUfBSafeguards", DesiredValue) + ); + } + + public override bool DoSetting() + { + try + { + Registry.SetValue(SharingKey, "DisableWUfBSafeguards", DesiredValue, RegistryValueKind.DWord); + return true; + } + catch + { } + + return false; + } + + public override bool UndoSetting() + { + try + { + var RegKey = Registry.LocalMachine.OpenSubKey(@"Software\Policies\Microsoft\Windows\WindowsUpdate", true); + RegKey.DeleteValue("DisableWUfBSafeguards"); + + return true; + } + catch + { } + + return false; + } + + } +} \ No newline at end of file