Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e8731a87d4 | |||
| 53ca4611d1 | |||
| df13ddf6b1 | |||
| c08a625348 |
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
; Erfordert Inno Setup 6.x (https://jrsoftware.org/isinfo.php)
|
; Erfordert Inno Setup 6.x (https://jrsoftware.org/isinfo.php)
|
||||||
|
|
||||||
#define MyAppName "Starface Outlook Sync"
|
#define MyAppName "Starface Outlook Sync"
|
||||||
#define MyAppVersion "0.0.0.21"
|
#define MyAppVersion "0.0.0.23"
|
||||||
#define MyAppPublisher "HackerSoft - Hacker-Net Telekommunikation"
|
#define MyAppPublisher "HackerSoft - Hacker-Net Telekommunikation"
|
||||||
#define MyAppURL "https://www.hacker-net.de"
|
#define MyAppURL "https://www.hacker-net.de"
|
||||||
#define MyAppExeName "StarfaceOutlookSync.exe"
|
#define MyAppExeName "StarfaceOutlookSync.exe"
|
||||||
|
|||||||
@@ -41,42 +41,80 @@ namespace StarfaceOutlookSync.Models
|
|||||||
|
|
||||||
public void ApplyOutlookSecuritySetting()
|
public void ApplyOutlookSecuritySetting()
|
||||||
{
|
{
|
||||||
// Alle Office-Versionen abdecken (16.0 = 2016/2019/2021/2024/365, 15.0 = 2013)
|
|
||||||
var versions = new[] { "16.0", "15.0" };
|
var versions = new[] { "16.0", "15.0" };
|
||||||
|
|
||||||
|
var securityValues = new (string name, int value)[]
|
||||||
|
{
|
||||||
|
("ObjectModelGuard", 2),
|
||||||
|
("PromptOOMAddressBookAccess", 2),
|
||||||
|
("PromptOOMAddressInformationAccess", 2),
|
||||||
|
("PromptOOMSend", 2),
|
||||||
|
("PromptOOMSaveAs", 2),
|
||||||
|
("PromptOOMFormulaAccess", 2),
|
||||||
|
("PromptOOMCustomAction", 2),
|
||||||
|
("PromptSimpleMAPISend", 2),
|
||||||
|
("PromptSimpleMAPINameResolve", 2),
|
||||||
|
("PromptSimpleMAPIOpenMessage", 2),
|
||||||
|
("AdminSecurityMode", 3),
|
||||||
|
};
|
||||||
|
|
||||||
|
// In alle moeglichen Pfade schreiben (HKCU + HKLM, Policies + direkt)
|
||||||
|
var roots = new[] { Registry.CurrentUser, Registry.LocalMachine };
|
||||||
|
var prefixes = new[]
|
||||||
|
{
|
||||||
|
@"Software\Policies\Microsoft\Office",
|
||||||
|
@"Software\Microsoft\Office"
|
||||||
|
};
|
||||||
|
|
||||||
foreach (var ver in versions)
|
foreach (var ver in versions)
|
||||||
{
|
{
|
||||||
|
foreach (var root in roots)
|
||||||
|
{
|
||||||
|
foreach (var prefix in prefixes)
|
||||||
|
{
|
||||||
|
var regPath = $@"{prefix}\{ver}\Outlook\Security";
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var regPath = $@"Software\Policies\Microsoft\Office\{ver}\Outlook\Security";
|
|
||||||
|
|
||||||
if (AutoAcceptOutlookPrompt)
|
if (AutoAcceptOutlookPrompt)
|
||||||
{
|
{
|
||||||
var key = Registry.CurrentUser.CreateSubKey(regPath);
|
var key = root.CreateSubKey(regPath);
|
||||||
key.SetValue("ObjectModelGuard", 2, RegistryValueKind.DWord);
|
if (key != null)
|
||||||
key.SetValue("PromptOOMAddressBookAccess", 2, RegistryValueKind.DWord);
|
{
|
||||||
key.SetValue("PromptOOMAddressInformationAccess", 2, RegistryValueKind.DWord);
|
foreach (var (name, value) in securityValues)
|
||||||
key.SetValue("PromptOOMSend", 2, RegistryValueKind.DWord);
|
key.SetValue(name, value, 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();
|
key.Close();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
try { root.DeleteSubKey(regPath, false); } catch { }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch { } // Kein Fehler wenn Rechte fehlen - naechsten Pfad versuchen
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Prueft ob die Outlook-Sicherheitseinstellung per GPO blockiert wird.
|
||||||
|
/// </summary>
|
||||||
|
public static bool IsOutlookSecurityLockedByPolicy()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Registry.CurrentUser.DeleteSubKey(regPath, false);
|
// Wenn HKLM Policies gesetzt sind und wir dort nicht schreiben koennen
|
||||||
}
|
var key = Registry.LocalMachine.OpenSubKey(
|
||||||
catch { }
|
@"Software\Policies\Microsoft\Office\16.0\Outlook\Security", false);
|
||||||
|
if (key != null)
|
||||||
|
{
|
||||||
|
var val = key.GetValue("AdminSecurityMode");
|
||||||
|
key.Close();
|
||||||
|
if (val != null) return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
}
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,9 +7,9 @@
|
|||||||
<AssemblyTitle>Starface Outlook Sync</AssemblyTitle>
|
<AssemblyTitle>Starface Outlook Sync</AssemblyTitle>
|
||||||
<Company>HackerSoft - Hacker-Net Telekommunikation</Company>
|
<Company>HackerSoft - Hacker-Net Telekommunikation</Company>
|
||||||
<Product>Starface Outlook Sync</Product>
|
<Product>Starface Outlook Sync</Product>
|
||||||
<Version>0.0.0.21</Version>
|
<Version>0.0.0.23</Version>
|
||||||
<AssemblyVersion>0.0.0.21</AssemblyVersion>
|
<AssemblyVersion>0.0.0.23</AssemblyVersion>
|
||||||
<FileVersion>0.0.0.21</FileVersion>
|
<FileVersion>0.0.0.23</FileVersion>
|
||||||
<Description>Synchronisiert Outlook-Kontakte mit Starface Telefonanlage</Description>
|
<Description>Synchronisiert Outlook-Kontakte mit Starface Telefonanlage</Description>
|
||||||
<Copyright>Stefan Hacker - HackerSoft</Copyright>
|
<Copyright>Stefan Hacker - HackerSoft</Copyright>
|
||||||
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
|
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ namespace StarfaceOutlookSync.UI
|
|||||||
|
|
||||||
var lblVersion = new Label
|
var lblVersion = new Label
|
||||||
{
|
{
|
||||||
Text = "Version 0.0.0.21",
|
Text = "Version 0.0.0.23",
|
||||||
Left = 0, Top = 56, Width = 340, Height = 20,
|
Left = 0, Top = 56, Width = 340, Height = 20,
|
||||||
TextAlign = ContentAlignment.MiddleCenter,
|
TextAlign = ContentAlignment.MiddleCenter,
|
||||||
ForeColor = Color.Gray
|
ForeColor = Color.Gray
|
||||||
|
|||||||
@@ -47,11 +47,15 @@ namespace StarfaceOutlookSync.UI
|
|||||||
Checked = _settings.AutoAcceptOutlookPrompt
|
Checked = _settings.AutoAcceptOutlookPrompt
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var hintText = "Hinweis: Outlook muss nach Aenderung neu gestartet werden.";
|
||||||
|
if (UserSettings.IsOutlookSecurityLockedByPolicy())
|
||||||
|
hintText += "\nAuf Domaenen-PCs: App einmalig als Admin starten!";
|
||||||
|
|
||||||
var lblHint = new Label
|
var lblHint = new Label
|
||||||
{
|
{
|
||||||
Text = "Hinweis: Outlook muss nach Aenderung dieser Option\nneu gestartet werden.",
|
Text = hintText,
|
||||||
Left = 38, Top = 102, Width = 300, Height = 32,
|
Left = 38, Top = 102, Width = 310, Height = 36,
|
||||||
ForeColor = Color.Gray,
|
ForeColor = UserSettings.IsOutlookSecurityLockedByPolicy() ? Color.OrangeRed : Color.Gray,
|
||||||
Font = new Font("Segoe UI", 8)
|
Font = new Font("Segoe UI", 8)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user