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
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
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
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?
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
Das Activate Event ist's auch nicht. Ebenso wenig wie ViewSwitch, FolderSwitch und SelectionChange, was man ja an den Namen auch erkennt.
😦
Habe es gefunden!!!
Ich muß ActiveExplorer().CommandBars.OnUpdate benutzen...
Gruß,
T-Man
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
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.
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...
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
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?
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?
Das hier sollte Dir weiterhelfen:
http://msdn.microsoft.com/en-us/library/bb206753.aspx
Erst mal Danke für den Link.
Aber leider bringt es mir nichts, denn ich habe kein Outlook 2007 sondern 2003.
Oh, sorry. Dann passt dieser Link hier vermutlich besser: http://www.outlookcode.com/codedetail.aspx?id=314
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.
Ich bin am überlegen, ob ich nicht einfach alle Events abfange und dann überprüfe….
Hallo Viper2009,
jetzt weiss ich auch nicht mehr weiter. Hast Du mal direkt auf http://www.outlook-code.com gesucht?
Hi, ja das habe ich. Ist jetzt aber auch nicht mehr schlimm.
Das könnte helfen: http://www.f-secure-estore.de/mspress-edvbv/chapter.asp?cnt=getchapter&id=ms-5412.pdf
Gruss Matthias