Вопрос

Я пытаюсь автоматизировать MS Word из моего приложения C# и у меня возникает проблема с изменением пользовательского интерфейса ленты. Все образцы, которые я мог найти, используют интерфейс iribbonextensibility, который доступен только в Addins. Можно ли сделать это с помощью автоматизации?

Это было полезно?

Решение 2

Что я сделал, так это создал небольшую ATL Addin, который реализует 2 интерфейсы: iDtextensibility2 и iribbonextensibility. Настройка XML просто загружается из файла.

Внутри кода C# кодирование действительно простое:

        RegistryKey key = Registry.CurrentUser.CreateSubKey(@"Software\Microsoft\Office\Word\Addins\RibbonLoaderLib.RibbonLoader");
        key.SetValue("LoadBehavior",2,RegistryValueKind.DWord);
        key.SetValue("Description","Ribbon Loader Add-In",RegistryValueKind.String);
        key.SetValue("FriendlyName","Ribbon Loader Add-In",RegistryValueKind.String);
        wordApp_.COMAddIns.Item("RibbonLoaderLib.RibbonLoader").Connect = true;           

Другие советы

Использование интерфейса iribbonextensibity, которое доступно только в Addins

Это означает, что он не будет работать с помощью автоматизации, интерфейс не выявляется в библиотеке типа вне процесса. Вам придется использовать VSTO, чтобы написать дополнение, используйте шаблон проекта C# + Office + Word 2007, чтобы начать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top