Announcement

Collapse
No announcement yet.

Symbolleiste in Outlock einfügen u. a.

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Symbolleiste in Outlock einfügen u. a.

    Hallo,<br>
    ich möchte ein Tool schreiben, welches in Outlock eine neue Symbolleiste einfügt mit einem neuen Button und einem VBA-Makro, das ausgeführt wird, wenn der Anwender auf den Button klickt. Dieses Tool soll ausgeführt werden bei der Installation unserer Hauptapplikation, der Button und das Makro sollen anschließend bei jedem Start von Outlock da sein<br>
    Frage: Geht das überhaupt und wenn ja, wie?<br>
    Danke,<br>
    Patrick

  • #2
    Hallo,

    &gt;Geht das überhaupt?

    Ja.

    &gt;Wie?

    Indem man ein COM-Objekt als In-Process-Server (DLL) schreibt, dass das <b>IDTExtensibility</b>-Interface implementiert. Für Microsoft Word ist ein Beispiel dafür in meinem Buch <i>COM/DCOM COM+ mit Delphi</i> auf den Seiten 497 bis 505 zu finden. Dieses Interface wird von allen Microsoft Office-Anwendungen unterstützt, wobei ein Registry-Eintrag festlegt, welche AddIns von welcher Anwendung zu laden sind. Mein Beispiel nutzt einen Nachfolger von <i>TAutoObjectFactory</i>, um sich automatisch bei Microsoft Word zu registrieren. Allerdings kann dieser Registry-Zweig auch auf Outlook "umgebogen" werden)

    Comment


    • #3
      Hallo,<br>
      Danke, das hilft mir doch schon mal sehr weiter, allerdings taucht da für mich noch eine Frage auf...<br>
      Das VBA-Makro, welches ich hinterlegen möchte, erstellt aus einer ActiveX-Bibliothek ein COM-Object, und damit das funktioniert, muß die Bibliothek eingebunden werden. Das mache ich immer per Hand im VB-Editor der MS Office-Anwendungen, aber in diesem Fall müßte das ja automatisch geschehen, und ich habe nicht wirklich Ahnung, wie das gemacht wird...<br&gt

      Comment


      • #4
        <b>Evtl.</b> gibt es eine Möglichkeit, die Bibliothek im Makro-Code erst einzubinden. Wenn dass klappt, sollte Dein Problem behoben sein, da VBA ja "nur" ein Interpreter ist. Du müsstest das halt als ersten Code in Deinem Makro haben.<p>
        Schöne Grüße, Mario Noac
        Schöne Grüße, Mario

        Comment


        • #5
          Wenn ich wüßte, wie man per Makro-Code eine Bibliothek einbindet, könnte ich das mal ausprobieren, ja....<br&gt

          Comment


          • #6
            Das habe ich in der Hilfe von WordXP gefunden:<p>
            <i>AddFromFile-Methode (Beispiel)<br>
            In dem folgenden Beispiel wird die AddFromFile-Methode verwendet, um den Inhalt einer Datei in einen angegebenen Code-Bereich einzufügen.<p>
            Application.VBE.CodePanes(3).CodeModule.AddFromFil e "c:\Code Files\book2.frm"</i><p>
            Oder vielleicht so was in der Richtung:<br>
            <pre> Application.VBE.ActiveVBProject.References.AddFrom File</pre><p>
            Musst Du mal ein bischen spielen, vielleicht kommst Du damit ja zum Ziel.<p>
            Schöne Grüße, Mario Noac
            Schöne Grüße, Mario

            Comment


            • #7
              Hallo,<br>
              ...References.AddFromFile war genau das, was ich brauchte.<br>
              <b>Danke!</b><br>
              Vielleicht weißt du auch, wie ein Formular eingefügt werden kann?<br> Ich habe ursprünglich ein Formular erstellt und dann über den Menupunkt "Datei->Datei exportieren" das Formular in eine .frm-Datei gespeichert. Wenn ich diese Datei über ...Codemodule.AddFromFile einbinde, erhalte ich zwar den kompletten Quellcode, der zu diesem Formular gehört (also die Ereignisbehabndlung wie OnClick() und so), allerdings wird das Formular als Modul eingebunden, und nicht als Formular, weshalb der Aufruf von MyForm.Show fehlschlägt.<br>
              Der Anwender soll aber das Formular bekommen, wenn er auf den neuen Button klickt...<br>
              Danke im voraus<br>
              Patric

              Comment


              • #8
                Da kann ich Dir leider nicht direkt helfen.<p>
                Aber ich denke, Du versuchst den falschen Weg. Ich würde das Formular nicht exportieren sondern in einem eigenen Projekt (sprich dot oder doc) ablegen und die Datei mit einbinden. Dann sollte Dein Weg funktionieren. Du kannst natürlich auch mal in der Hilfe von Word schauen, ob es eine Importmöglichkeit für Formulare zur Laufzeit gibt. Nur alles, was Du importierst, musst Du am Ende auch wieder raushauen...<p>
                Schöne Grüße, Mario Noac
                Schöne Grüße, Mario

                Comment


                • #9
                  Also, man kann ein Formular direkt exportieren (wenn man über den Objekt-Explorer geht statt über's Dateimenu), dann kann man das Formular über VBComponents.Import zur Laufzeit importieren...<br>
                  Aber das ist jetzt gar nicht mein Problem zur Zeit<br>
                  Ich habe wie im Buch von Andreas Kosch beschrieben ein neues Com Add-In entwickelt (was ich testweise für Excel nutzen wollte, nicht für Word oder Outlock, aber das ist ja eigentlich egal), auf jeden Fall habe ich diesen In-Process-Server über "Start->ActiveX Server eintragen" eingetragen, dann wie im Buch beschrieben die Registry modifiziert (es gibt leider keinen Zweig HKEY_Current_User\Software\Microsoft\Office\Excel, deshalb habe ich das dann erstmal im Word-Zweig eingetragen), aber im Add-In-Manager von VBA taucht dieses Add-In nicht auf...<br>
                  Was muß ich da denn anders machen?<br>
                  Danke<br>
                  Patric

                  Comment

                  Working...
                  X