Announcement

Collapse
No announcement yet.

Outlook Plugin: Ribbon nicht sichtbar und Zugriff auf selektierte Mails?

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

  • Outlook Plugin: Ribbon nicht sichtbar und Zugriff auf selektierte Mails?

    Hallo,

    Ich wollte gerne ein kleines Outlook-Plugin schreiben, über das ich über eine Liste markierter E-Mails iteriere und dessen Informationen verarbeite.


    Problem #1
    Das erste Problem habe ich bereits bei der Erstellung des Ribbon.
    Ich habe mich dazu an diese Anleitung gehalten: https://youtu.be/3ucCxRrcgWA
    Ist zwar am beispiel von Word, aber ich denke, dass sollte adaptierbar sein.

    Jedenfalls wird mir das Ribbon gar nicht angezeigt.

    Kurze Erklärung zur Vorgehensweise:
    Ich habe mit Visual Studio 2010 ein neues C#-Projekt ( Office -> 2010 -> Outlook 2010-AddIn ) angelegt.
    Darin über Rechtsklick -> Hinzufügen -> Neues Element -> Office -> Menüband ( Visueller Designer ) hinzugefügt.
    Den Scope des Ribbon, Tabs und des Button habe ich als public definiert ( als Versuch, weil beim Standard "Integrated" auch nichts zu sehen war ).

    Das Ribbon wird aber wie gesagt nicht angezeigt?
    Über Optionen -> AddIns in Outlook finde ich mein AddIn angehakt in den COM-Elementen. "Laden beim Starten" ist auch gesetzt.


    Problem #2
    Die Iteration über die selektierten Mails habe ich mir bereits in verschiedenen Tutorials angesehen, was alles bei mir nicht wirklich funktioniert.
    Mein letzter Stand ( nur als Test ) sieht so aus:
    [highlight=c#]
    private void ThisAddIn_Startup(object sender, System.EventArgs e) {


    Outlook.Selection selItems = this.Application.ActiveExplorer().Selection;


    if ( selItems.Count > 0 ) {


    MessageBox.Show( selItems[0].SenderEmailAddress );


    }


    }
    [/highlight]

    Ich freue mich über Hilfe und Ratschläge!
    Danke
    PHP rocks!
    Eine Initiative der PHP Community

  • #2
    Das in Startup zu machen klingt irgendwie viel zu früh. Ich vermute mal das die Addins geladen werden bevor irgendwelche MessageStores geöffnet werden oder irgendein Explorer ausgewählt ist.
    Insofern schätze ich mal das ActiveExplorer() null liefert und dein Code knallt. Ein wenig Exceptionhandling/Logging ist immer hilfreich um sowas zu finde, hier insbesonders.

    Comment


    • #3
      Danke für den Hinweis, Ralf.
      Das betrifft Problem 2, nehme ich an?

      Ich hatte eh vor den Code auf einen Button im, Ribbon zu legen, dann sollten die entsprechenden Explorer auch Daten haben.
      Nur da kommt ja das erste Problem zu tragen, dass mein Ribbon-Button nicht angezeigt wird.

      Ich denke, das muss ich vorher lösen, bevor ich am zweiten weiter mache.
      Hast Du da evtl. noch ne Idee?
      PHP rocks!
      Eine Initiative der PHP Community

      Comment


      • #4
        Bezieht sich aufs 2.te Problem.
        Aber man könnte vermuten das Problem 2 die Ursache für Problem 1 ist. Es knallt beim Startup also geschieht das Registrieren des Ribbons nicht mehr.
        Möglicherweise ist aber aus irgendeinem Grund, man testet ja üblicherweise 'ne Menge rum beim programmieren, der Ribbon einfach ausgeblendet? Einfach mal im Contextmenu der Ribbons auf Einstellungen klicken und schauen ob deine einfach nur ausgeblendet ist.

        Comment


        • #5
          Originally posted by Ralf Jansen
          Aber man könnte vermuten das Problem 2 die Ursache für Problem 1 ist. Es knallt beim Startup also geschieht das Registrieren des Ribbons nicht mehr.
          Von der Seite habe ich das noch gar nicht betrachtet... Danke, das mag der Grund sein, teste ich nachher nochmal.
          Ausgeblendet denke ich nicht, kann das aber nicht beschwören, weil ich das Projekt in der Firma habe.

          Hier zu Hause bekomme ich einen System-Fehler beim Öffnen von Outlook:
          Code:
          System.ArgumentException: Der Wert liegt außerhalb des erwarteten Bereichs.
             at
          Microsoft.VisualStudio.Tools.Applications.Deployment.ClickOnceAddInDeploymentManager.GetManifests(TimeSpan timeout)
             at
          Microsoft.VisualStudio.Tools.Applications.Deployment.ClickOnceAddInDeploymentManager.InstallAddIn()
          Anwendungs-Cache habe ich geleert, keine Änderung.
          Ich denke mal das liegt an VisualStudio 2010 in Kombination mit Outlook 2013.

          Danke für die Ratschläge schon mal...
          Gruß Arne
          PHP rocks!
          Eine Initiative der PHP Community

          Comment


          • #6
            Hallo,

            Ich habe es jetzt auf beiden Systemen noch einmal mit komplett neuen und leeren Projekten getestet.
            Bei beiden kommt die Meldung aus #1.

            Ich habe keine Ahnung, warum das so ist...

            Gruß Arne
            PHP rocks!
            Eine Initiative der PHP Community

            Comment


            • #7
              Wie kommt denn da jetzt ClickOnce ins Spiel? Das ist dann ja eher ein Problem mit ClickOnce und deinem Deployment als mit dem Addin selbst.

              Comment


              • #8
                Das ist eine gute Frage, die ich leider nicht beantworten kann. Kann ich denn das ClickOnce irgendwie aus dem Deployment entfernen? Benötige ich das dafür?

                Wie gesagt, ich habe einfach ein neues Projekt als Outlook 2010-AddIn angelegt und ein Ribbon hinzugefügt.
                Den Code habe ich unangetastet gelassen und bekomme beim Starten über den Debugger, als auch über Outlook direkt den Fehler.

                Ich habe zu dem Fehler bisher nur gefunden, dass man den Anwendungs-Cache entfernen soll, aber das hilft bei mir nicht.

                Schade, vielleicht stolpert ja nochmal jemand über diesen Thread und weiß einen Rat.

                Danke aber für Deine Mühe.
                Gruß Arne
                PHP rocks!
                Eine Initiative der PHP Community

                Comment


                • #9
                  Bin leider kein großer Experte in dem Bereich. Macht dieses Tutorial dasselbe wie das was im Video passiert?

                  http://www.codeproject.com/Articles/...stom-Send-Butt

                  Manchmal vergessen die Ersteller solcher Tutorials einfach den ein oder anderen kleinen Schritt. Da hilft es sich mal ein anderes Tutorial anzuschauen. Vielleicht findest Du ja da was bei Dir anders ist

                  Comment


                  • #10
                    Hallo,

                    Danke für den Link, dort ist tatsächlich ein kleiner Unterschied.
                    Der Autor setzt den RibbonType auf Microsoft.Outlook.Explorer und den ControlIdType des Tab auf Custom.
                    Leider ändert das nichts, aber es zeigt, wie Du schon sagst, dass nicht überall die gleichen Einstellungen verwendet werden.

                    Ich denke es liegt irgendwie am ClickOnce, wie Ralf schon meinte.
                    Mir ist aufgefallen, als ich die VS 2015er Testversion installiert habe, dass dort das ClickOnce mitinstalliert wird.
                    Nachträglich habe ich keinen Weg gefunden, dies rückgängig zu machen.

                    Ich habe auch keine Ahnung, warum das in dem Projekt eingebunden wird?!

                    Danke trotzdem.
                    Gruß Arne
                    PHP rocks!
                    Eine Initiative der PHP Community

                    Comment


                    • #11
                      Du musst aber ClickOnce doch nicht unbedingt benutzen, oder? Die .dll Datei mit dem Outlook AddIn sollte doch trotzdem gebaut werden und auch im "bin" Verzeichnis liegen. Du kannst ja auch mal versuchen die Datei per Hand in Outlook zu registrieren so wie es in dem Tutorial oben gezeigt wird.

                      ClickOnce ist vermutlich von Microsoft so vorkonfiguriert dass es Dir die ganze Arbeit in der Registrz abnimmt. Brauchen sollte man das aber nicht unbedingt. In dem Tutorial wird das z.B. ueber InstallShield erledigt.

                      Comment


                      • #12
                        Nein, natürlich benötige ich das nicht.
                        Aber ich weiß auch nicht, wie ich das abschalte, denn ich sage ja auch nicht, dass ich es verwenden möchte und habe außerdem auch kleine Möglichkeit es aus dem Projekt zu entfernen.

                        Ich werde das mit der manuellen Registrierung nochmal testen, glaube aber nicht an Erfolg, denn beim Starten von Outlook versucht er ja auch nur die entsprechende .dll zu implementieren und aktivieren.
                        D.h. für mein Verständnis ist die .dll schon irgendwie "ClickOnce"-behaftet.

                        Aber danke für Deinen Hinweis, ich teste es nochmal manuell.

                        Gruß Arne


                        EDIT:
                        Ich habe das Thema hier auch nochmal zur Diskussion gegeben: http://www.php-rocks.de/thema/96-c-o...te-mails-.html
                        Sollte es dort noch zu einer Lösung kommen, werde ich die hier posten. Ich hoffe ihr seht darin kein CrossPost.

                        Danke
                        Arne
                        Zuletzt editiert von Arne Drews; 24.03.2016, 19:49.
                        PHP rocks!
                        Eine Initiative der PHP Community

                        Comment

                        Working...
                        X