Ich versuche, MS Word von meiner C# -App zu automatisieren und ein Problem beim Ändern der Multifunktionsleiste UI. Alle Samples, die ich finden konnte, verwenden die IRibbonExtensibility-Schnittstelle, die nur von Addins verfügbar ist. Ist es möglich, dies mit Automatisierung zu tun?Anpassen Multifunktionsleiste in MS Word 2010 mit Automatisierung in C#
1
A
Antwort
0
Was ich tat, war klein ATL Addin zu bauen, die 2 Schnittstellen implementiert: IDTExtensibility2 und IRibbonExtensibility Die XML-Anpassung einfach aus der Datei geladen wird.
Innerhalb des C# -Code ist die Codierung wirklich einfach:
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;
2
mit IRibbonExtensibility-Schnittstelle, die von Add-In verfügbar ist nur
was bedeutet, dass es nicht durch Automation funktionieren wird, wird die Schnittstelle nicht in der Out-of-Process-Typbibliothek ausgesetzt. Sie müssen VSTO verwenden, um ein Add-In zu schreiben, verwenden Sie die C# + Office + Word 2007-Add-In-Projektvorlage, um zu beginnen.