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

How to view what functions a COM object has?

我不太明白组件对象模型是什么。到目前为止,我知道这会在 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)

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

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

好吧,使用 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 或...)中打开一个宏 window,添加对 MS Project 类型库的引用,然后使用Excel宏中的对象浏览器window查看MS Project类型库中各种对象的属性和方法。