好的,我已经有一段时间没有这样做了,无论如何我都不是 COM 专家。阅读Python Programming on Windows 中的 COM 章节,了解如何执行此操作。按照示例(针对 Excel 进行尝试)来了解事情是如何工作的。
首先,如果你还没有安装PyWin32 Extensions 。这是为您pythonwin.exe
和 COM 接口模块提供的软件包。从这里得到它。
然后你要从 PythonWin 的工具菜单中打开“COM Makepy Utility”。浏览已注册的 COM 组件列表(一些是类型库,另一些是 DLL),直到确定您拥有的组件(您必须做一些侦探工作)。单击确定以生成 Python 粘合代码。然后,您需要使用-i
命令行参数再次运行它以生成样板代码,以便您的 python 脚本可以使用此胶水。下面是对 Microsoft Excel 对象库的 O'Reilly 示例的解释:
import win32com.client
from win32com.client import gencache
gencache.EnsureModule('{00020813-0000-0000-C000-000000000046}', 0, 1, 2)
earlyBound = win32com.client.Dispatch("Excel.Application")
lateBound = win32com.client.dynamic.Dispatch("Excel.Application")
print earlyBound.ActiveCell()
使用早期绑定对象是可选的,但它确实提高了性能。
找到 ProgID 又是一项侦探工作,尽管这个答案似乎暗示这将很难。尝试使用 RegEdit 浏览注册表的 HKEY_CLASSES_ROOT 配置单元,看看您是否看到看起来很有希望的 ProgID。