Hallo,
ich habe ein Problem mit OUTLOKK Kontakte.
Ich erstelle in Delphi 7 Outlook-Kontakte mit:
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:
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),0) then 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 Narses: Delphi-Tags hinzugefügtModeriert von Narses: Topic aus VisualCLX (Component Library for Cross Platform) verschoben am Do 02.08.2012 um 09:27