En utilisant VSTO, comment puis-je recevoir une notification des modifications apportées au jeu de couleurs MS Office?VSTO - Événement 'Color Scheme' de MS Office modifié
Répondre
Il faut espérer quelque chose de mieux existe avec Office 2010. Voici ce que j'utilisé pour Office 2007 et Word (Ce n'est pas une notification de quelque façon, juste quelque chose à vérifier):
const string OfficeCommonKey =
@"Software\Microsoft\Office\12.0\Common";
const string OfficeThemeValueName = "Theme";
const int ThemeBlue = 1;
const int ThemeSilver = 2;
const int ThemeBlack = 3;
using (RegistryKey key = Registry.CurrentUser.OpenSubKey(OfficeCommonKey, false))
{
int theme = (int)key.GetValue(OfficeThemeValueName,1);
switch (theme)
{
case ThemeBlue:
//...
break;
case ThemeSilver:
//...
break;
case ThemeBlack:
//...
break;
default:
//...
break;
}
}
je code similaire à ce que Mike Regan a fourni. Une chose supplémentaire que je fais est d'exécuter un thread séparé qui continue de vérifier cette entrée de registre chaque seconde. Chaque fois que la valeur du Registre change, je déclenche un événement personnalisé. Le reste du code dans mon complément gère l'événement et modifie les éléments d'interface utilisateur correspondant au nouveau thème dans ce gestionnaire d'événements.
Notez que (bien sûr) cela a été changé dans Office 2013. Les constantes suivantes devraient être utilisées à la place:
const string OfficeCommonKey =
@"Software\Microsoft\Office\15.0\Common";
const string OfficeThemeValueName = "UI Theme";
const int ThemeWhite = 0;
const int ThemeLightGray = 1;
const int ThemeDarkGray = 2;
Notez que si le thème n'a jamais été défini, la touche « UI Theme » won n'existe pas. Je crois que c'est par défaut à "0" (thème blanc), cependant.
- 1. Global Color Scheme/Skin
- 2. MS Office Ajouter
- 3. ms extensions de fichier office
- 4. Le moteur d'exécution VSTO est-il installé avec l'installation de MS Office?
- 5. Office 2007/2003 Requête de conception d'add-ons partagées VSTO
- 6. Je vérifie Ms Office version
- 7. Fermer MS Office C# Console
- 8. Objet de forme personnalisée dans MS Office
- 9. Génération de vignettes MS Office sous Linux
- 10. Problème: VS2005 ne fonctionne pas avec VSTO pour Office 2007
- 11. Les compléments VSTO développés pour Office 2007 fonctionnent-ils dans Office 2010?
- 12. Application WinForm et références MS Office
- 13. Contenu généré par l'utilisateur (MS-Office) - comment?
- 14. Modifier l'icône du bouton MS Office
- 15. Ouvrir le fichier MS Office avec AppleScript
- 16. Annulation d'un événement WPF TextBox modifié
- 17. Événement modifié par le texte Gridview
- 18. Événement Windows Phone 7 TopProperty modifié
- 19. Les hyperliens MS Office changent de page de codes?
- 20. Intégration de VSTO Outlook - Événement d'arrêt Outlook pour la synchronisation
- 21. Insérer un événement de ligne dans Excel VSTO?
- 22. Événement TextChanged dans MS Access
- 23. plt-scheme: catching mouse click événement sur toile
- 24. Quelle est l'utilisation de Lockbackreg.msi lié à MS Office?
- 25. VSTO: événement pour les modifications de contenu/texte de Word Doc?
- 26. Comment puis-je améliorer les performances de démarrage à froid d'un complément VSTO2SE MS Office?
- 27. VSTO: Impossible de créer des classeurs
- 28. Objets incorporés dans des documents MS Office utilisant Python?
- 29. Compilation d'applications à l'aide d'assemblys MS Office Interop
- 30. comment vérifier MS Office version installée sur les machines