VS 2008 und MindManager im Team
Mit dem neuen Microsoft Visual Studio 2008 wird das Erstellen und Verteilen von Microsoft Office Erweiterungen (Add-Ins) weiter vereinfacht. Aber nicht nur Office-Erweiterungen können einfach erstellt werden, sondern auch gemeinsam genutzte Add-Ins mit anderen Anwendungen wie z.B. MindManager. Leider findet man derzeit noch wenig Beispiele und Dokumentationen, wie MindManager Erweiterungen mit Visual Studio 2008 erstellt werden können. Daher habe ich nachfolgend meine Erfahrungen mit einem Beispielprojekt schrittweise dargestellt…
1. Erweitern des Visual Studio 2008 Add-In Assistenten um MindManager 7 Auswahloptionen
In einem ersten Schritt ist dem Add-In Manager von Visual Studio bekanntzugeben, dass er auch MindManager Erweiterungen erstellen kann. Hierzu kann die im Mindjet Entwicklerforum angebotene Regstrierungsdatei MindManager7AddInWizard heruntergeladen und in folgenden Bereichen angepasst werden. Dies ist für die deutsche Version von Visual Studio erforderlich.
Nachdem mit einem Editor die Datei wie oben dargestellt angepasst wurde, können durch einen Doppelklick die entsprechenden Einträge in die Registrierdatenbank übertragen werden. Zur Kontrolle kann in der Registrierdatenbank unter HKLM\SOFTWARE\MICROSOFT\SHARED TOOLS\ der entsprechende Eintrag geprüft werden.
2. Erstellen einer MindManager Add-In Standardvorlage
In Visual Studio wird dann ein neues Projekt angelegt und hierbei als Projekttyp ein Gemeinsames Add-In ausgewählt. Dies ist unter Andere Projekttypen und Erweiterungen zu finden.
Nun kann die Programmiersprache ausgewählt und die Anwendungsunterstützung auf MindManager gesetzt werden. Sollte der Eintrag MindManager nicht in den Dialogen erscheinen, so sind die erforderlichen Einträge in der Registrierdatenbank nicht korrekt übernommen worden.
3. Zuweisen der MindManager 7 Typ-Bibliothek als Verweis zum Projekt
Über die Menübefehle Projekt – Verweis hinzufügen ist im Bereich der COM-Objekte die MindManager Typ-Bibliothek dem Projekt zuzuweisen.
4. Notwendige Registrierdatenbank-Einträge anpassen
Damit das Add-In auch nach der Installation von MindManager gefunden wird und die Funktionen auch über eine einheitliche Klassen-ID aufgerufen werden können, sind folgende Einträge in der Registrierdatenbank im Projekt unter Visual Studio 2008 vorzunehmen. Hierzu ist im Projekt-Explorer mit der rechten Maustaste auf das zugehörige Setup-Projekt zu klicken und dort di Menübefehle Ansicht-Registrierung auszuwählen.
Unter dem Hauptschlüssel HKEY_CLASSES_ROOT ist ein neuer Schlüssel mit der Bezeichnung des Add-In Namens anzulegen (siehe Projektname, hier: MM7Toolbox). Für diesen neuen Schlüsselist ein neuer Zeichenfolgenwert mit der Bezeichnung “(Default)” und dem Wert “Projektname” (hier: MM7Toolbox) anzulegen.
Als weiteren Schlüssel ist unterhalb vom Projektnamen ein neuer Eintrag mit der Bezeichnung CLSID anzulegen. In diesem Bereich ist ein neuer Zeichenfolgewert mit der Bezeichnung “(Default)” und dem Wert der Globalen Attributs-ID anzulegen. Sie finden diese ID im Modul Connect.vb unter QuitAttributes. Diese kann als Wert in den Registrierdatenbanden übernommen werden.
5. Anwendungsspezifischer Code hinzufügen
Die Standardvorlage für ein MindManager Add-In unter Visual Studio 2008 ist nun fertiggestellt. Nun können die jeweiligen Funktionen und der anwendungsspezifische Code hinzugefügt werden, um z.B. Menübefehle mit besonderen Funktionsaufrufen zu ergänzen. Beispiele sind u.a. in der MindManager Entwicklerdokumentation zu finden oder in dem unten aufgeführten Beispielcode für den Datenaustausch mit Microsoft OneNote 2007. Hier können auch noch einmal die oben aufgeführten notwendigen Einstellungen nachvollzogen werden.
Der Beispielcode für Visual Studio 2008 ist hier zu finden:
Interessante Blogs zum Thema MindManager Entwicklung sind hier zu finden:
http://paranoidmike.blogspot.com
http://mindjetlabs.com/cs/blogs/organizational_irritant
Mindjet Developer Informationen














Markisen
27.02.2008
Sehr schöner Beitrag. Detailiert erklärt und gut geschrieben!
Vielen Dank!