8

我在 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 Live 的 com?

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

4

2 回答 2

7

这表明未安装 Outlook。" windows live" 或 " outlook.com" 不会帮助你。

于 2015-03-23T14:36:00.623 回答
1

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

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

此外,如果您使用您的 comobject ( comboject = win32com.client.Dispatch("Outlook.Application") ) 并查看comboject._prop_map_get_.keys()您将看到可以用于该程序的所有内容。

于 2016-06-08T10:34:11.183 回答