win32com.client.Dispatch(“Outlook.Application”)错误pywintypes.com_error:( - 2147221005,'无效的类字符串',无,无)

时间:2013-01-02 15:48:55

标签: python outlook pywin32

我在Windows 7上安装了Windows Live。 现在,当我尝试运行以下代码时

import win32com.client
win32com.client.Dispatch("Outlook.Application")

我收到以下错误

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\site-packages\win32com\client\__init__.py", line 95, in
Dispatch
    dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch,userName,c

    lsctx)
      File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 108, in
    _GetGoodDispatchAndUserName
        return (_GetGoodDispatch(IDispatch, clsctx), userName)
      File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 85, in _
    GetGoodDispatch
        IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.II
    D_IDispatch)
    pywintypes.com_error: (-2147221005, 'Invalid class string', None, None)

我有另一台安装了windows xp和Outlook的机器。 我运行相同的代码,我得到了同样的错误。

还有一个问题。 如何在Windows 7上获得windows的com?

任何建议和意见将不胜感激。

2 个答案:

答案 0 :(得分:5)

这表示未安装Outlook。 “windows live”或“outlook.com”对您没有帮助。

答案 1 :(得分:1)

我遇到了类似的错误。您是否尝试从win32com的文件夹中运行makepy.py来为您正在使用的不同COM对象创建条目?基本上,win32com只会将您与之交互的所有应用程序视为默认的COM对象,直到您了解计算机上安装的程序为止。你必须为你想用它控制的每个程序运行makepy.py.

运行后,我获得了对Outlook的更多控制权。它已经打开了我正在纠正的其他错误。

另外,如果您使用comobject( comboject = win32com.client.Dispatch(“Outlook.Application”))并查看 comboject._prop_map_get_.keys()你会看到你可以用于该计划的所有东西。