[Python-de] probleme mit COM objekten

bk benny at coca-kohler.de
Fre Aug 1 11:15:20 EDT 2003


hallo,

benutze outlook97 und python 2.2.3
hab folgenden code:

import codecs, win32com.client

# needed for converting Unicode->Ansi (in local system codepage)
DecodeUnicodeString = lambda x: codecs.latin_1_encode(x)[0]

def DumpDefaultAddressBook():
    # Create instance of Outlook
    o = win32com.client.dynamic.Dispatch("Outlook.Application")
    mapi = o.GetNamespace("MAPI")
    folder =
mapi.GetDefaultFolder(win32com.client.constants.olFolderContacts)
    print "Das Outlook-Adressbuch enthaelt",folder.Items.Count,"Elemente\n"

    # see Outlook object model for more available properties on ContactItem
objects
    attributes = [ 'FullName', 'Email1Address', 'BusinessAddressStreet',
'BusinessAddressCity']
    for i in range(1,folder.Items.Count+1):
        print "----------Eintrag %d----------" % i

        item = folder.Items[i]
        for attribute in attributes:
            print attribute,": ", eval('item.%s' % attribute)

    o = None

DumpDefaultAddressBook()


hab folgendes merkwürdige problem damit:

win32com.client.dynamic.Dispatch("Outlook.Application")  macht probleme.
wenn ich die py-datei mit IDLE öffne und dann ablaufen lass krieg ich fehler
meldungen. lösch ich aus obiger funktion das "dynamic" raus und lass es dann
ablaufen krieg ich wiederum fehlermeldungen.
Wenn ich jetzt wieder das "dynamic" einfüge(dh. Quelltext ist wie am
Anfang), kann ich das programm ohne fehlermeldungen ablaufen lassen .ist
doch seltsam, oder????
Was genau macht das COM makepy utility??? Wenn ich es unter Pythonwin starte
finde ich die "Microsoft Outlook 8.0 Object Library", kann sie auswählen und
auf ok drücken. dann wird ein verzeichniss erstellt mit irgendwelchen
py-dateien. muss ich mit diesem verzeichniss irgendwas machen???