From ca17e5d433404aebafb41a1859c6fa9026bff729 Mon Sep 17 00:00:00 2001 From: duffyduck Date: Fri, 3 Apr 2026 19:31:08 +0200 Subject: [PATCH] Set Outlook security registry keys for all Office versions Apply to both 16.0 (2016-2024/365) and 15.0 (2013) registry paths. Costs nothing and ensures it works regardless of which Office version is installed. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../Models/UserSettings.cs | 57 ++++++++++--------- 1 file changed, 30 insertions(+), 27 deletions(-) diff --git a/src/StarfaceOutlookSync/Models/UserSettings.cs b/src/StarfaceOutlookSync/Models/UserSettings.cs index c02d868b..125f9723 100644 --- a/src/StarfaceOutlookSync/Models/UserSettings.cs +++ b/src/StarfaceOutlookSync/Models/UserSettings.cs @@ -41,39 +41,42 @@ namespace StarfaceOutlookSync.Models public void ApplyOutlookSecuritySetting() { - try - { - var regPath = @"Software\Policies\Microsoft\Office\16.0\Outlook\Security"; + // Alle Office-Versionen abdecken (16.0 = 2016/2019/2021/2024/365, 15.0 = 2013) + var versions = new[] { "16.0", "15.0" }; - if (AutoAcceptOutlookPrompt) + foreach (var ver in versions) + { + try { - // Alle Outlook Object Model Guard Prompts unterdruecken - var key = Registry.CurrentUser.CreateSubKey(regPath); - key.SetValue("ObjectModelGuard", 2, RegistryValueKind.DWord); - key.SetValue("PromptOOMAddressBookAccess", 2, RegistryValueKind.DWord); - key.SetValue("PromptOOMAddressInformationAccess", 2, RegistryValueKind.DWord); - key.SetValue("PromptOOMSend", 2, RegistryValueKind.DWord); - key.SetValue("PromptOOMSaveAs", 2, RegistryValueKind.DWord); - key.SetValue("PromptOOMFormulaAccess", 2, RegistryValueKind.DWord); - key.SetValue("PromptOOMCustomAction", 2, RegistryValueKind.DWord); - key.SetValue("PromptSimpleMAPISend", 2, RegistryValueKind.DWord); - key.SetValue("PromptSimpleMAPINameResolve", 2, RegistryValueKind.DWord); - key.SetValue("PromptSimpleMAPIOpenMessage", 2, RegistryValueKind.DWord); - key.SetValue("AdminSecurityMode", 3, RegistryValueKind.DWord); - key.Close(); - } - else - { - // Zurueck auf Standard (Werte loeschen) - try + var regPath = $@"Software\Policies\Microsoft\Office\{ver}\Outlook\Security"; + + if (AutoAcceptOutlookPrompt) { - // Kompletten Security-Schluessel entfernen - Registry.CurrentUser.DeleteSubKey(regPath, false); + var key = Registry.CurrentUser.CreateSubKey(regPath); + key.SetValue("ObjectModelGuard", 2, RegistryValueKind.DWord); + key.SetValue("PromptOOMAddressBookAccess", 2, RegistryValueKind.DWord); + key.SetValue("PromptOOMAddressInformationAccess", 2, RegistryValueKind.DWord); + key.SetValue("PromptOOMSend", 2, RegistryValueKind.DWord); + key.SetValue("PromptOOMSaveAs", 2, RegistryValueKind.DWord); + key.SetValue("PromptOOMFormulaAccess", 2, RegistryValueKind.DWord); + key.SetValue("PromptOOMCustomAction", 2, RegistryValueKind.DWord); + key.SetValue("PromptSimpleMAPISend", 2, RegistryValueKind.DWord); + key.SetValue("PromptSimpleMAPINameResolve", 2, RegistryValueKind.DWord); + key.SetValue("PromptSimpleMAPIOpenMessage", 2, RegistryValueKind.DWord); + key.SetValue("AdminSecurityMode", 3, RegistryValueKind.DWord); + key.Close(); + } + else + { + try + { + Registry.CurrentUser.DeleteSubKey(regPath, false); + } + catch { } } - catch { } } + catch { } } - catch { } } } }