Ich versuche ein Python-Skript zu schreiben, um Daten aus Nachrichten in Outlook 2013-Ordnern zu extrahieren. Verfahren überall beschrieben Outlook zuzugreifen, ist zum ersten Lauf:So stellen Sie eine Verbindung zu einer laufenden Instanz von Outlook aus Python her
import win32com.client
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
Dies funktioniert gut, wenn Outlook nicht ausgeführt wird. Aber wenn es ist, wirft dies auf einen Fehler:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Program Files\Python27\lib\site-packages\win32com\client\__init__.py", line 95, in Dispatch
dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch,userName,clsctx)
File "C:\Program Files\Python27\lib\site-packages\win32com\client\dynamic.py", line 114, in _GetGoodDispatchAndUserName
return (_GetGoodDispatch(IDispatch, clsctx), userName)
File "C:\Program Files\Python27\lib\site-packages\win32com\client\dynamic.py", line 91, in _GetGoodDispatch
IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.IID_IDispatch)
pywintypes.com_error: (-2146959355, 'Server execution failed', None, None)
Basierend auf einem ähnlichen Problem für eine andere Anwendung gemeldet, die nicht unterstützt mehrere Instanzen gleichzeitig laufen entweder habe ich versucht, die Anpassung ihrer Lösung:
try:
app = win32com.client.Dispatch('Outlook.Application')
except:
app = win32com.client.GetActiveObject('Outlook.Application')
Aber das funktioniert auch nicht. GetActiveObject schlägt nun fehl mit Fehlern:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Program Files\Python27\lib\site-packages\win32com\client\__init__.py", line 79, in GetActiveObject
dispatch = pythoncom.GetActiveObject(resultCLSID)
pywintypes.com_error: (-2147221021, 'Operation unavailable', None, None)
Also, was wäre der richtige Weg zu einer laufenden Instanz von Outlook zu verbinden?