Autor Beitrag
jjturbo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 516

Win2000 prof., WinXP prof.
D4 Stand., D5 Prof, D7 Prof, D2007 Prof.
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 450

WIN XP, SuSE 9.3
D3 Prof, D6 Pers, 2005 Pers
BeitragVerfasst: 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



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 516

Win2000 prof., WinXP prof.
D4 Stand., D5 Prof, D7 Prof, D2007 Prof.
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67

Win XP x64, Win 98, Win 2000, Win ME
D6 Prof., Delphi 2006
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 516

Win2000 prof., WinXP prof.
D4 Stand., D5 Prof, D7 Prof, D2007 Prof.
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67

Win XP x64, Win 98, Win 2000, Win ME
D6 Prof., Delphi 2006
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67

Win XP x64, Win 98, Win 2000, Win ME
D6 Prof., Delphi 2006
BeitragVerfasst: 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:

ausblenden 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:

ausblenden 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 user profile iconPeter Lustig: Code- durch Delphi-Tags ersetzt.
jjturbo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 516

Win2000 prof., WinXP prof.
D4 Stand., D5 Prof, D7 Prof, D2007 Prof.
BeitragVerfasst: Mo 02.08.04 13:50 
Probier ich gleich mal aus.
Danke schon mal :D

_________________
Windows XP: Für die einen nur ein Betriebssystem - für die anderen der längste Virus der Welt...
jjturbo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 516

Win2000 prof., WinXP prof.
D4 Stand., D5 Prof, D7 Prof, D2007 Prof.
BeitragVerfasst: Di 03.08.04 11:51 
hmmm...

irgendwie funzt das nicht.
Was mache ich denn verkehrt?

Ich starte Outlook:
ausblenden 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:
ausblenden 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
ausblenden 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...