Laden...

Outlook Kontext Menü erweitern

Erstellt von rockthecity vor 17 Jahren Letzter Beitrag vor 14 Jahren 16.588 Views
R
rockthecity Themenstarter:in
297 Beiträge seit 2005
vor 17 Jahren
Outlook Kontext Menü erweitern

Habe mir gerade die Faq angeschaut.
Habe dort jedoch nicht gefunden wonach ich suche oder habe falsch gesucht.

Ich würde gerne Outlook um einen KontextMenü Punkt erweitern.

Wenn ich in der Mailübersicht bin und mit der rechten Maustaste daraufklicke
habe ich ja verschiedene Aktionen "Anworten", "Weiterleiten" etc.

Weiss jemand wie ich diese um einen neuen Menüpunkt erweitern kann ?

Urlaubsorte suchen: http://www.tripedio.de

3.728 Beiträge seit 2005
vor 17 Jahren
Context Menu

Es ist kein Zweizeiler, aber es geht. Das Problem ist, dass Outlook das Kontextmenü beim klicken dynamisch generiert. Man muss also bestimmte Events des Explorers abfangen und dort seine eigenen Menüpunkte "reinschmuggeln".

Schau Dir folgende Links an:

http://support.microsoft.com/kb/294223/en-us
http://www.outlookcode.com/codedetail.aspx?id=314
http://www.pcreview.co.uk/forums/thread-1856020.php

T
210 Beiträge seit 2006
vor 17 Jahren
Wie komme ich an den Right-Click ran?

Um das Context-Menü zu verändern muß ich mich auf das Right-Click Event hängen und in dem Eventhandler dann das Menü beeinflussen. Das habe ich soweit verstanden 🙂
Leider ist das Beispiel in VB und das finde ich exrem schwer lesbar (Hab schon diverse Sprachen durch und alle waren wesentlich lesbarer...)

Mein Problem: Wie komme ich an das Right-Click Event?

ActiveExplorer() liefert ein Objekt, an daß ich einige Eventhandler ranhängen kann (FolderSwitch, SelectionChange, BeforeXXX etc.) aber keines sieht nach RightClick aus.

Vielen Dank schonmal in Voraus.

Gruß,
T-Man

3.728 Beiträge seit 2005
vor 17 Jahren
Office und VBA

Momentan kommt man um VB noch nicht herum, wenn es um Office Programmierung geht.

Damit gehts vielleicht ein bisschen einfacher:
Wie kann ich VBA-Code in C# übersetzen?

T
210 Beiträge seit 2006
vor 17 Jahren

Wenn ich den Code richtig verstehe, ist es in VBA ausreichend den Explorer auf WithEvents zu casten und dann den Eventhandler zu schreiben. Eine Zuweisung ist nicht nötig. Beispiel:

Private WithEvents ActiveExplorerCBars As CommandBars

Private Sub ActiveExplorerCBars_OnUpdate()

...

End Sub

Das Beispiel hängt sich also an das OnUpdate Event.

Das scheint es so in .net nicht zu geben.

Das Objekt, das mir ActiveExplorer() zurückliefert bietet folgende Events:

    event ExplorerEvents_10_ActivateEventHandler Activate;  
    event ExplorerEvents_10_BeforeFolderSwitchEventHandler BeforeFolderSwitch;  
    event ExplorerEvents_10_BeforeItemCopyEventHandler BeforeItemCopy;  
    event ExplorerEvents_10_BeforeItemCutEventHandler BeforeItemCut;  
    event ExplorerEvents_10_BeforeItemPasteEventHandler BeforeItemPaste;  
    event ExplorerEvents_10_BeforeMaximizeEventHandler BeforeMaximize;  
    event ExplorerEvents_10_BeforeMinimizeEventHandler BeforeMinimize;  
    event ExplorerEvents_10_BeforeMoveEventHandler BeforeMove;  
    event ExplorerEvents_10_BeforeSizeEventHandler BeforeSize;  
    event ExplorerEvents_10_BeforeViewSwitchEventHandler BeforeViewSwitch;  
    event ExplorerEvents_10_CloseEventHandler Close;  
    event ExplorerEvents_10_DeactivateEventHandler Deactivate;  
    event ExplorerEvents_10_FolderSwitchEventHandler FolderSwitch;  
    event ExplorerEvents_10_SelectionChangeEventHandler SelectionChange;  
    event ExplorerEvents_10_ViewSwitchEventHandler ViewSwitch;  

Welches davon entspricht nun OnUpdate ?
Schätze mal Activate... (Gestern Abend war ich wohl zu müde um das zu erkenen)

Gruß,
T-Man

T
210 Beiträge seit 2006
vor 17 Jahren

Das Activate Event ist's auch nicht. Ebenso wenig wie ViewSwitch, FolderSwitch und SelectionChange, was man ja an den Namen auch erkennt.

😦

T
210 Beiträge seit 2006
vor 17 Jahren

Habe es gefunden!!!

Ich muß ActiveExplorer().CommandBars.OnUpdate benutzen...

Gruß,
T-Man

V
23 Beiträge seit 2009
vor 14 Jahren

Hi, jedes mal wenn ich ein Button im Context erstellen möchte, erhalte ich folgenden Fehler "Beim Aufruf einer COM-Komponente wurde ein HRESULT E_FAIL-Fehler zurückgegeben."
Entweder ist das Objekt noch nicht ganz geladen oder ich mache irgendwas falsch.

ps. Ist für Office Outlook 2003

MFG
Viper

3.728 Beiträge seit 2005
vor 14 Jahren
Codeschnipsel

Mit dieser Fehlermeldung kann ich nicht viel anfangen. Die besagt, dass etwas nicht hingehauen hat. Wenn Du den betroffenen Codeschnipsel postest, kann ich Dir vielleicht weiterhelfen.

Gehen tut das aber definitiv, ich habe es selber schon gemacht.

V
23 Beiträge seit 2009
vor 14 Jahren

Gut dann bin ich erleichtert.


void CommandBars_OnUpdate ()
{
    try
    {
        m_ContexMenu = Application.ActiveExplorer ().CommandBars["Context Menu"];

        if (m_ContexMenu != null)
        {
            if (m_ContexMenu.accChildCount > 9)
            {
                buttonContex = m_ContexMenu.Controls.Add (Office.MsoControlType.msoControlButton, missing, missing, missing, missing) as Office.CommandBarButton;
                buttonContex.Caption = "test";
            }
        }
    }
    catch (Exception ex)
    {
        //MessageBox.Show (ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
}


private void ThisAddIn_Startup (object sender, System.EventArgs e)
{
    m_Explorer = Application.ActiveExplorer ();
    m_CommandBars = m_Explorer.CommandBars;
    m_CommandBars.OnUpdate += new Microsoft.Office.Core._CommandBarsEvents_OnUpdateEventHandler (CommandBars_OnUpdate);
...
}

Ich erhalte den Exception ab m_ContexMenu.Controls.Add...

V
23 Beiträge seit 2009
vor 14 Jahren

Nach langer Recherche bin ich immer noch zu kein Resultat gekommen.
Wie heißt eigentlich das Context-Menü, im Outlook wenn man auf eine Email klickt gemeint ist das Von, An oder Cc?

Ich bitte um Hilfe.

MFG
Viper

V
23 Beiträge seit 2009
vor 14 Jahren

Das erste Problem habe ich gelöst und zwar wird der Fehler "Beim Aufruf einer COM-Komponente wurde ein HRESULT E_FAIL-Fehler zurückgegeben." durch ein Protection geschützt.... muss man erst mal drauf kommen.

Aber jetzt ist die Frage wie kann ich das Kontext von einer email verändern?

V
23 Beiträge seit 2009
vor 14 Jahren

Hallo, weiß jemand wie man das Kontext Menü von einer Email Adresse abfangen kann?
Das normale Context Menu vom UpdateCommandBar ist kein Problem aber wie fängt man die dynamischen Dinger ab?

3.728 Beiträge seit 2005
vor 14 Jahren
Outlook Kontextemnüs

Das hier sollte Dir weiterhelfen:
http://msdn.microsoft.com/en-us/library/bb206753.aspx

V
23 Beiträge seit 2009
vor 14 Jahren

Erst mal Danke für den Link.
Aber leider bringt es mir nichts, denn ich habe kein Outlook 2007 sondern 2003.

3.728 Beiträge seit 2005
vor 14 Jahren
Kontextmenü in Outlook 2003

Oh, sorry. Dann passt dieser Link hier vermutlich besser: http://www.outlookcode.com/codedetail.aspx?id=314

V
23 Beiträge seit 2009
vor 14 Jahren

Hi Danke für die schnelle Antwort, aber auch dieses passt nicht.
Ein normales Kontext Menu kann ich erstellen, aber ich bekomme einfach nicht das dynamische Kontext für die Emails. Und mit Emails meine ich das -> test@test.de.

V
23 Beiträge seit 2009
vor 14 Jahren

Ich bin am überlegen, ob ich nicht einfach alle Events abfange und dann überprüfe….

3.728 Beiträge seit 2005
vor 14 Jahren
Lösungssuche

Hallo Viper2009,

jetzt weiss ich auch nicht mehr weiter. Hast Du mal direkt auf http://www.outlook-code.com gesucht?

V
23 Beiträge seit 2009
vor 14 Jahren

Hi, ja das habe ich. Ist jetzt aber auch nicht mehr schlimm.

R
1 Beiträge seit 2009
vor 14 Jahren