以编程方式启用excel加载项

时间:2017-06-29 08:17:56

标签: c#

有时我的excel Addin会被禁用,如果它最终被禁用的COM Addins我可以使用以下代码启用它。但是,如果它以禁用的项目结束,我无法使用此代码启用它。有没有办法可以启用禁用的项目。不知道我是否可以使用regedit做到这一点。

我收到了COM异常{"Operation aborted (Exception from HRESULT: 0x80004004 (E_ABORT))"}

    xl.Application myApp = new xl.Application();

    foreach (COMAddIn currentAddIn in myApp.COMAddIns)
    {
        if (currentAddIn.Description == "Create Excel AddIn" && !currentAddIn.Connect)
        {
            try
            {


                currentAddIn.Connect = true;
            }
            catch (Exception)
            {
                CommonMethods.ExceptionHandler("Create tab couldn't be enabled", new StackTrace(true).GetFrame(0).GetFileLineNumber(), new StackTrace(true).GetFrame(0).GetMethod());
            }


            break;
        }

    }


    return false;
}

2 个答案:

答案 0 :(得分:1)

这是最好,最有效的解决方案。

 RegistryKey myKey = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Office\Excel\Addins\Create.ExcelAddIn", true);
      if (myKey != null)
       {
           myKey.SetValue("LoadBehavior", "3", RegistryValueKind.DWord);
           myKey.Close();
       }

答案 1 :(得分:-1)

我知道完全禁用加载项的唯一方法是删除下面位置的注册表项,但在Excel打开时无法完成(将16.0更改为Office版本):

HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Word\Resiliency\DisabledItems\