如何查看 COM 对象都有哪些功能?

Posted

技术标签:

【中文标题】如何查看 COM 对象都有哪些功能?【英文标题】:How to view what functions a COM object has?如何查看 COM 对象有哪些功能? 【发布时间】:2021-11-06 06:49:25 【问题描述】:

我不太明白什么是组件对象模型。到目前为止,我知道这会在 Python 3.x 中打开 MS Project:

import win32com.client

project = 'SomePath\foo.mpp'
mpp = win32com.client.Dispatch("MSProject.Application")

在此之后,我在哪里可以找到它的功能,例如打开文件、读取其内容、搜索任务等?我试过这样的事情:

print([method_name for method_name in dir(mpp) if callable(getattr(mpp, method_name))])

for item in dir(mpp):
    print(item)

但这些并没有显示应用程序的所有方法。

我在网上找不到任何关于它的信息,有人可以告诉我如何找出它的可调用函数吗?

【问题讨论】:

没有通用的方法。这取决于对象,但是对于这个,文档是可用的:docs.microsoft.com/en-us/office/vba/api/project.application 当然你必须适应 python Simon 的文档链接是项目对象模型的权威指南。然而,它缺乏例子。幸运的是,这里有很多:SO posts for ms-project tag 并且将 com 部分从 vba/c# 转换为 python 并不难。 这两个都对我有帮助,非常感谢! 【参考方案1】:

好吧,使用 Windows SDK 附带的 OleView 等工具,您可以查看类型库。

对于您拥有的确切对象,我可以使用 PowerShell 计算出来,而无需使用 OleView:

$obj = new-object -com "MSProject.Application"
$obj | Get-Member

这样做,它会列出 MSProject.Application 的方法...因为 MSProject.Application 是一个 coclass ProgId。它在 Python 中不起作用。如果您有另一个可以在 PowerShell 中导航到的对象,您可以使用 Get-Member 执行相同的操作

另外,如果你有 Office,你可以在 Excel(或 Word 或...)中打开一个宏窗口,添加对 MS Project 类型库的引用,然后在 Excel 宏窗口中使用对象浏览器查看MS Project 类型库中各种对象的属性和方法。

【讨论】:

以上是关于如何查看 COM 对象都有哪些功能?的主要内容,如果未能解决你的问题,请参考以下文章

python,如何在shell下查看一个模块都有哪些方法

hive中如何查看A库中都有哪些表?这表里都有哪些列?

Java如何查看某个包下都有哪些类或接口?

如何查看mysql数据库中都有哪些表?

如何查看mysql数据库中都有哪些表

nodejs中如何查看Array都有哪些方法