public static ActionResult UnRegisterOutlookAddin(Session session) { session.Log("Begin UnRegisterOutlookAddin"); try { OsBitness osBitness = GetOsBitness(); session.Log("OS bitness is : " + osBitness.ToString()); OfficeBitness officeBitness = GetOfficeBitness(osBitness); session.Log("Office bitness is : " + officeBitness.ToString()); OfficeRelease officeRelease = GetOfficeRelease(osBitness); session.Log("Office release is : " + officeRelease.ToString()); session.Log("Unregistering Outlook Addin…"); UnRegisterAddin(osBitness, officeBitness); session.Log("Unwhitelisting Addin…"); UnWhitelistAddin(osBitness, officeBitness, officeRelease); } catch (Exception ex) { session.Log("An error occurs while unregistering Outlook Addin : " + ex.Message); } return(ActionResult.Success); }
private static void UnWhitelistAddin(OsBitness osBitness, OfficeBitness officeBitness, OfficeRelease officeRelease) { try { RegistryKey HKLM = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, (officeBitness == OfficeBitness.Office32 ? RegistryView.Registry32 : RegistryView.Registry64)); RegistryKey officeKey = null; switch (officeRelease) { case OfficeRelease.Office2013: officeKey = HKLM.OpenSubKey(@"SOFTWARE\Microsoft\Office\15.0\Outlook\Resiliency\DoNotDisableAddinList", true); break; case OfficeRelease.Office2016: officeKey = HKLM.OpenSubKey(@"SOFTWARE\Microsoft\Office\16.0\Outlook\Resiliency\DoNotDisableAddinList", true); break; } if (officeKey != null) { officeKey.DeleteValue("SmartSingularity.PstBackupAddin", false); officeKey.Close(); } HKLM.Close(); } catch (Exception) { } }
private static void RegisterAddin(OsBitness osBitness, OfficeBitness officeBitness) { string manifestLocation = osBitness == OsBitness.OS64 ? @"file:///C:/Program Files (x86)/Pst Backup/SmartSingularity.PstBackupAddin.vsto|vstolocal" : @"file:///C:/Program Files/Pst Backup/SmartSingularity.PstBackupAddin.vsto|vstolocal"; RegistryKey HKLM = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, (officeBitness == OfficeBitness.Office32 ? RegistryView.Registry32 : RegistryView.Registry64)); RegistryKey officeKey = HKLM.CreateSubKey(@"SOFTWARE\Microsoft\Office\Outlook\Addins", true); RegistryKey addinKey = officeKey.CreateSubKey("SmartSingularity.PstBackupAddin", true); addinKey.SetValue("Description", (object)"Automatically backup your PST files at closing.", RegistryValueKind.String); addinKey.SetValue("FriendlyName", (object)"Pst Backup", RegistryValueKind.String); addinKey.SetValue("LoadBehavior", (object)3, RegistryValueKind.DWord); addinKey.SetValue("Manifest", (object)manifestLocation, RegistryValueKind.String); addinKey.Close(); officeKey.Close(); HKLM.Close(); }
private static void UnRegisterAddin(OsBitness osBitness, OfficeBitness officeBitness) { try { RegistryKey HKLM = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, (officeBitness == OfficeBitness.Office32 ? RegistryView.Registry32 : RegistryView.Registry64)); RegistryKey officeKey = HKLM.OpenSubKey(@"SOFTWARE\Microsoft\Office\Outlook\Addins", true); if (officeKey != null) { officeKey.DeleteSubKey("SmartSingularity.PstBackupAddin", true); officeKey.Close(); } HKLM.Close(); } catch (Exception) { } }
private static void WhitelistAddin(OsBitness osBitness, OfficeBitness officeBitness, OfficeRelease officeRelease) { RegistryKey HKLM = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, (officeBitness == OfficeBitness.Office32 ? RegistryView.Registry32 : RegistryView.Registry64)); RegistryKey officeKey = null; switch (officeRelease) { case OfficeRelease.Office2010: officeKey = HKLM.CreateSubKey(@"SOFTWARE\Microsoft\Office\14.0\Outlook\Resiliency\DoNotDisableAddinList", true); break; case OfficeRelease.Office2013: officeKey = HKLM.CreateSubKey(@"SOFTWARE\Microsoft\Office\15.0\Outlook\Resiliency\DoNotDisableAddinList", true); break; case OfficeRelease.Office2016: officeKey = HKLM.CreateSubKey(@"SOFTWARE\Microsoft\Office\16.0\Outlook\Resiliency\DoNotDisableAddinList", true); break; } officeKey.SetValue("SmartSingularity.PstBackupAddin", (object)1, RegistryValueKind.DWord); officeKey.Close(); HKLM.Close(); }