Autor Beitrag
juelin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 40

Win XP, Linux
D7 K3
BeitragVerfasst: Do 02.08.12 09:04 
Hallo,
ich habe ein Problem mit OUTLOKK Kontakte.
Ich erstelle in Delphi 7 Outlook-Kontakte mit:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
                  Outlook:=CreateOleObject('Outlook.Application');
                  NameSpace:=Outlook.GetNameSpace('MAPI');
                  Contacts:=NameSpace.GetDefaultFolder(olFolderContacts);
                  OutlookContact:=Contacts.Items.Add;
                  OutlookContact.FullName:='';
                  OutlookContact.CompanyName:=IntToStr(ksei)+'-'+IntToStr(aoutl)+'-'+kname;
                  OutlookContact.FileAs:=kname;
                  OutlookContact.Email2DisplayName:='Firma '+kname;
                  OutlookContact.JobTitle:=kpos;
                  OutlookContact.BusinessTelephoneNumber:=ktel;
                  OutlookContact.BusinessAddressCity:=kort;
                  OutlookContact.BusinessAddressPostalcode:=kplz;
                  OutlookContact.BusinessAddressStreet:=kstr;
                  OutlookContact.BusinessAddressCountry:=kland;
                  OutlookContact.WebPage:=kweb;
                  OutlookContact.Email2Address:=kmail;
                  OutlookContact.Save;
                  Outlook:=Unassigned;


Da der Prozess "OUTLOOK.EXE" aber laufen bleibt, Kille ich den Przess anschlissend mit:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
                  Application.ProcessMessages;
                  sleep(1000);
                  proc.dwSize:=SizeOf(Proc);
                  hSnap:=CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
                  Looper:=Process32First(hSnap,proc);
                  while Integer(Looper) <> 0 do
                  begin
                    if ExtractFileName(Proc.szExeFile) = 'OUTLOOK.EXE' then
                    begin
                      if not TerminateProcess(OpenProcess(PROCESS_TERMINATE,Bool(1),proc.th32ProcessID),0then
                      begin
                        MessageBox(0,'Could Not close Process Outlook.exe','Error',MB_OK);
                      end;
                    end;
                    Looper:=Process32Next(hSnap,proc);
                  end;
                  CloseHandle(hSnap);


Nun habe ich folgendes Problem:
Wenn ich das Programm Debuge läuft alles richtig. Wenn ich aber das Programm normal laufen lasse werden die Outlook-Einträge nicht gemacht.
Ich vermute, das Outlook noch nicht fertig ist wenn ich den Prozess kille.
Kann man irgendwie abfragen, ob Outlook fertig ist?

Gruß
Jürgen

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
Moderiert von user profile iconNarses: Topic aus VisualCLX (Component Library for Cross Platform) verschoben am Do 02.08.2012 um 09:27