| Autor |
Beitrag |
jjturbo
      
Beiträge: 516
Win2000 prof., WinXP prof.
D4 Stand., D5 Prof, D7 Prof, D2007 Prof.
|
Verfasst: Di 27.07.04 10:52
Moin moin,
weiß jemand, ob man das Kontextmenu, daß sich beim Klicken mit rechten Maustaste auf eine Email im Posteingang öffnet, modifizieren kann?
Ich hätte dort gerne einen Eintrag, mit dem ich die Daten einer Email in meine Applikation übernehmen kann.
Dank Euch,
jjturbo
_________________ Windows XP: Für die einen nur ein Betriebssystem - für die anderen der längste Virus der Welt...
|
|
hallo
      
Beiträge: 450
WIN XP, SuSE 9.3
D3 Prof, D6 Pers, 2005 Pers
|
Verfasst: Di 27.07.04 13:39
Ich würde zuerst mal die Registry durchkramen, und dann mal in so *.ini Files und so schauen.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 27.07.04 15:21
Ich vermute eher, dass das Menü in der Ressource von Outlook steckt und somit das Modifizieren nicht gerade einfach sein wird.
|
|
jjturbo 
      
Beiträge: 516
Win2000 prof., WinXP prof.
D4 Stand., D5 Prof, D7 Prof, D2007 Prof.
|
Verfasst: Mo 02.08.04 09:53
Bisher ziehe ich die gwünschte Email einfach per Drag&Drop in meine Applikation. Das unschöne dabei: Man muß sich die Fenster immer passend hinschieben, d.h. erst mal mein Programm in den Vordergrund, dann Outlook in den Vordergrung...
Schöner wäre halt: Rechte Maustaste, Emaildaten übernehmen...
Hat irgendjemand eine Idee, woe man das eleganter lösen könnte?
Gruß, jjturbo
_________________ Windows XP: Für die einen nur ein Betriebssystem - für die anderen der längste Virus der Welt...
|
|
MasterT
      
Beiträge: 67
Win XP x64, Win 98, Win 2000, Win ME
D6 Prof., Delphi 2006
|
Verfasst: Mo 02.08.04 10:45
Also ich kann dir sagen wie du in Outlook eine Toolbar hinzufügen kannst. Du könntest es dann so lösen, das man die E-Mail öffnen muss, und es dann eine ToolBar gibt, mit einem Button, dann kannste die Mail einlesen. Das Kontextmenü geht auch, aber ist noch aufwendiger...
Gruß
MasterT
|
|
jjturbo 
      
Beiträge: 516
Win2000 prof., WinXP prof.
D4 Stand., D5 Prof, D7 Prof, D2007 Prof.
|
Verfasst: Mo 02.08.04 10:52
Eine Toolbar wäre natürlich auch eine gute Lösung...
Zwei Fragen:
1. Wie implementiert man eine Toolbar in Outlook?
2. Hast Du einen Ansatz, wie man das Kontextmenu passend "biegt"?
_________________ Windows XP: Für die einen nur ein Betriebssystem - für die anderen der längste Virus der Welt...
|
|
MasterT
      
Beiträge: 67
Win XP x64, Win 98, Win 2000, Win ME
D6 Prof., Delphi 2006
|
Verfasst: Mo 02.08.04 11:47
In wieweit kennst du dich denn damit aus? Das jetzt zu erklären würde den Rahmen sprengen. Ich könnte dir eine Quelltextausschnitt posten, anhand du dir das anschauen kannst. Allerdings solltest du dafür wissen, wie man mit dem Outlook ComObj umgeht. Also auf die einzelnen Schnittstellen connectet etc. Ich kann dir leider nicht den ganzen Code pasten. Naja, ich such mal die wichtigsten Sachen raus. Dauert ein paar Minuten.
Gruß
MasterT
|
|
MasterT
      
Beiträge: 67
Win XP x64, Win 98, Win 2000, Win ME
D6 Prof., Delphi 2006
|
Verfasst: Mo 02.08.04 11:58
Also, es gibt ein Event das man bekommt wenn du einen neuen Inspector in Outlook öffnest. Inspector kann alles möglich sein. Ein neuer Kontakt, neue Mail etc. Dann musst du überprüfen, ob der neue Inspector ein Mailitem ist, ansonsten hast du die Bar überall.
Ich überprüfe das so:
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| try TempItem := Inspector.CurrentItem as MailItem; IsMailItem := True; except IsMailItem := False; end; |
TmpItem ist ein MailItem. Das machst du wie gesagt in dem Event OnNewInspector.
Um dann eine ToolBar ein zu fügen machst du folgendes:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| try Toolbar:=Inspector.CommandBars.Item['Toolbarname']; Toolbar.Visible:=FShowOutlookBar; except Toolbar:=Inspector.CommandBars.Add('Toolbarname',1,0,true); Toolbar.Visible:=FShowOutlookBar; end;
if (VarType(Toolbar) = varDispatch) and (IDispatch(Toolbar) <> nil) then begin with AddItem(Insp, Toolbar, Buttoncaption, '', Buttonname, 1, true) do begin OnClick := OnClickButton; end; end; |
ToolBar ist ein OleVariant. Dem Toolbarbutton ein Event zuweisen ist denke ich klar.
Hoffe das hilfe dir was weiter. Ansonsten melde dich nochmal.
Gruß
MasterT
Moderiert von Peter Lustig: Code- durch Delphi-Tags ersetzt.
|
|
jjturbo 
      
Beiträge: 516
Win2000 prof., WinXP prof.
D4 Stand., D5 Prof, D7 Prof, D2007 Prof.
|
Verfasst: Mo 02.08.04 13:50
Probier ich gleich mal aus.
Danke schon mal 
_________________ Windows XP: Für die einen nur ein Betriebssystem - für die anderen der längste Virus der Welt...
|
|
jjturbo 
      
Beiträge: 516
Win2000 prof., WinXP prof.
D4 Stand., D5 Prof, D7 Prof, D2007 Prof.
|
Verfasst: Di 03.08.04 11:51
hmmm...
irgendwie funzt das nicht.
Was mache ich denn verkehrt?
Ich starte Outlook:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TForm1.Button3Click(Sender: TObject); var Folder: MAPIFolder; begin OutlookApplication1.Connect; NmSpace := OutlookApplication1.GetNamespace('MAPI'); NmSpace.Logon('', '', False, False); Folder := NmSpace.GetDefaultFolder(olFolderInbox); Folder.Display;
end; |
Das klappt.
Dann versuche ich eine Toolbar hinzuzufügen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| procedure TForm1.Button9Click(Sender: TObject); var Toolbar,Inspector:OLEVariant; begin
Inspector:=OutlookApplication1.ActiveInspector;
try Toolbar:=Inspector.CommandBars.Item['Toolbarname']; Toolbar.Visible:=True; except Toolbar:=Inspector.CommandBars.Add('Toolbarname',1,0,true); Toolbar.Visible:=false; end;
if (VarType(Toolbar) = varDispatch) and (IDispatch(Toolbar) <> nil) then begin Toolbar.AddItem(Inspector, Toolbar, 'Buttoncaption', '', 'Buttonname', 1, true); end;
end; |
Aber bei
Delphi-Quelltext 1:
| Toolbar:=Inspector.CommandBars.Item['Toolbarname']; |
gibts dann eine Zugriffsverletzung.

_________________ Windows XP: Für die einen nur ein Betriebssystem - für die anderen der längste Virus der Welt...
|
|
|