win32com.client.Dispatch works but not win32com.client.gencache.EnsureDispatch

穿精又带淫゛_ 提交于 2019-11-29 15:05:48
franckgaga

I found a solution. It's a bug win32com makepy...

The main problem is that Outlook is 1-based indexed for olContactItem (as opposed to 0-based index for python)

olApp = win32com.client.gencache.EnsureDispatch("Outlook.Application")           
namespace = olApp.GetNamespace(u"MAPI")           
# olFolderContacts = 10 :           
mapiContacts = namespace.GetDefaultFolder(10).Items
for i in range(1,len(mapiContacts)+1) :
    contact = self.mapiContacts[i]
    ...

There is another problem with contact.itemProperties. All properties are case sensitive with EnsureDispatch, so :

contact.ItemProperties("FullName").Value
#       ^

works, but not :

contact.itemProperties("FullName").Value
#       ^

To get the names right, consult: Microsoft Outlook ContactItem reference model on MSDN

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!