Personalizza barra multifunzione in MS Word 2010 con l'automazione in C #
-
11-10-2019 - |
Domanda
Sto cercando di automatizzare MS Word dal mio C # app e avere un problema modificando l'interfaccia utente del nastro. Tutti i campioni sono riuscito a trovare utilizzano un'interfaccia IRibbonExtensibility che è disponibile da solo componenti aggiuntivi. E 'possibile fare questo utilizzando l'automazione?
Soluzione 2
Quello che ho fatto è stato quello di costruire piccole ATL Addin che implementa 2 Interfacce: IDTExtensibility2 e IRibbonExtensibility L'XML di personalizzazione viene semplicemente caricato da un file.
all'interno del codice C # la codifica è molto semplice:
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;
Altri suggerimenti
utilizzando l'interfaccia IRibbonExtensibility che è disponibile da componenti aggiuntivi solo
il che significa che non funzionerà tramite l'automazione, l'interfaccia non è esposto nella libreria tipo out-of-process. Dovrete usare VSTO di scrivere un componente aggiuntivo, utilizzare il C # + Office + Word 2007 Add-in modello di progetto per iniziare.