Pregunta

Estoy tratando de automatizar MS Word de mi aplicación de C # y tiene un problema de cambiar la interfaz de usuario de la cinta. Todas las muestras que pude encontrar están utilizando la interfaz IRibbonExtensibility que está disponible sólo complementos. ¿Es posible hacer esto utilizando la automatización?

¿Fue útil?

Solución 2

Lo que hice fue construir pequeña ATL complemento que implementa 2 interfaces: IDTExtensibility2 y IRibbonExtensibility La personalización XML es simplemente cargado desde un archivo.

Dentro del código C # La codificación es muy simple:

        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;           

Otros consejos

utilizando la interfaz IRibbonExtensibility que está disponible de Addins solamente

Lo que significa que no va a funcionar a través de automatización, la interfaz no está expuesta en la biblioteca de tipos fuera de proceso. Vas a tener que utilizar VSTO para escribir un complemento, utilice el C # + Office Word 2007 + complemento plantilla de proyecto para empezar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top