【发布时间】:2010-09-21 16:49:47
【问题描述】:
我想使用 Python 编写一个应用程序脚本,该应用程序自称提供 OLE 组件。我应该如何开始?
我还不知道我需要在要访问的组件上调用什么方法。我应该使用 win32com 加载这些组件,然后开始在 IPython 中按“tab”吗?
【问题讨论】:
标签: python windows scripting activex ole
我想使用 Python 编写一个应用程序脚本,该应用程序自称提供 OLE 组件。我应该如何开始?
我还不知道我需要在要访问的组件上调用什么方法。我应该使用 win32com 加载这些组件,然后开始在 IPython 中按“tab”吗?
【问题讨论】:
标签: python windows scripting activex ole
“Python and COM”包含一个示例。 OLE 与 COM 和 ActiveX 有关,因此您应该查找这些术语。
“Python Programming on Win32”是一本有用的书。还有一个“Python Win32”邮件列表。
【讨论】:
您需要win32com 包。一些例子:
from win32com.client.dynamic import Dispatch
# Excel
excel = Dispatch('Excel.Application')
# Vim
vim = Dispatch('Vim.Application')
然后在他们身上调用任何你喜欢的东西。
【讨论】:
如果你想使用 IDispatch 接口来控制你的对象,win32com 是一个很好的包,但是它很慢。
comtypes 是一个更好的原生 Python 包,它使用原始 COM 方法与您的控件对话。
WxPython 使用 comtypes 为您提供来自 Python 的 ActiveX 容器窗口。
【讨论】:
请查看python-win32 包,尤其是其win32com API。
【讨论】:
PythonWin (http://sourceforge.net/projects/pywin32/) 与 python-win32 捆绑在一起,带有自己的 COM 浏览器,作为其 shell 和调试环境的一部分。
【讨论】: