首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

用delphi怎么编程实现与outlook同步联系人

2012-03-02 
用delphi如何编程实现与outlook同步联系人使用delphi本身的OutlookApplication控件不仅没有帮助文档,网上

用delphi如何编程实现与outlook同步联系人
使用delphi本身的OutlookApplication控件不仅没有帮助文档,网上也找不到相关的说明。
更何况调用的时候还出现没有注册类别。

不知道有没有人做过这方面,或许用其他的方法?


[解决办法]
调用时没有注册类别是由于OUTLOOK这个COM没有注册,一般重新修复一下可以解决。给你转一篇老帖子:

Outlook中添加联系人

Michael Klemm : http://www.swissdelphicenter.ch/torry/showcode.php?id=1845

uses 

ComObj, Variants, SysUtils; 

 

type 

TContact = record 

LastName: string; 

FirstName : string; 

Company : string; 

// ### Further properties. See MSDN 

end; 

 

 

//------------------------------------------ 

{:Add outlook contact 

 

@param ContactFolderPath The contact path. E.g.: '' for default contact folder, 

'SubFolder\Sub2\Test' for subfolders 

@param Contact The contact informations. 

@author 19.09.2003 Michael Klemm} 

//------------------------------------------ 

procedure OutlookAddContact(ContactFolderPath : string; Contact : TContact); 

const 

olFolderContacts = $0000000A; 

var 

Outlook : OleVariant; 

NameSpace : OleVariant; 

ContactsRoot : OleVariant; 

ContactsFolder : OleVariant; 

OutlookContact : OleVariant; 

SubFolderName : string; 

Position : integer; 

Found : boolean; 

Counter : integer; 

TestContactFolder : OleVariant; 

begin 

// Connect to outlook 

Outlook := CreateOleObject('Outlook.Application'); 

// Get name space 

NameSpace := Outlook.GetNameSpace('MAPI'); 

// Get root contacts folder 

ContactsRoot := NameSpace.GetDefaultFolder(olFolderContacts); 

// Iterate to subfolder 

ContactsFolder := ContactsRoot; 

while ContactFolderPath <> '' do 

begin 

// Extract next subfolder 

Position := Pos('\', ContactFolderPath); 

if Position > 0 then 

begin 

SubFolderName := Copy(ContactFolderPath, 1, Position - 1); 

ContactFolderPath := Copy(ContactFolderPath, Position + 1, Length(ContactFolderPath)); 

end 

else 

begin 

SubFolderName := ContactFolderPath; 

ContactFolderPath := ''; 

end; 

if SubFolderName = '' then 

Break; 

// Search subfolder 

Found := False; 

for Counter := 1 to ContactsFolder.Folders.Count do 

begin 

TestContactFolder := ContactsRoot.Folders.Item(Counter); 

if LowerCase(TestContactFolder.Name) = LowerCase(SubFolderName) then 

begin 

ContactsFolder := TestContactFolder; 

Found := True; 

Break; 

end; 

end; 

// If not found create 

if not Found then 

ContactsFolder := ContactsFolder.Folders.Add(SubFolderName); 

end; 

// Create contact item 

OutlookContact := ContactsFolder.Items.Add; 

// Fill contact information 

OutlookContact.FirstName := Contact.FirstName; 



OutlookContact.LastName := Contact.LastName; 

OutlookContact.CompanyName := Contact.Company; 

 

// ### Further properties 

 

// Save contact 

OutlookContact.Save; 

// Disconnect from outlook 

Outlook := Unassigned; 

end;
[解决办法]
先關注下樓上的,也可參考這個。。。

http://blog.csdn.net/beyond748/archive/2007/08/31/1767336.aspx

热点排行