如何查看一个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类型库中各种对象的属性和方法。
我不太明白组件对象模型是什么。到目前为止,我知道这会在 Python 3.x:
中打开 MS Projectimport 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类型库中各种对象的属性和方法。