如何使静态调度对象表现得更加动态?

时间:2016-06-22 12:33:20

标签: python win32com dispatch

假设我使用

app = win32com.client.dynamic.Dispatch("InDesign.Application")

获取InDesign Application对象。现在我可以使用

mainmenu = app.menus["$ID/Main"]

访问InDesign的主菜单,但不幸的是最终只有<COM object <unknown>>的所有内容。如果我使用

app = win32com.client.gencache.EnsureDispatch("InDesign.Application")

相反,我得到了更有意义的<win32com.gen_py.Adobe InDesign CC 2015 TypeLibrary._Application instance at 0x....>dir(app)列出了一些属性(不包括 menus),但现在我需要使用大写{{1}并且不能使用Pythonic项目索引但必须求助于糟糕的

app.Menus

代替。有没有办法让两全其美?

编辑have the respective .tlb-file,这会有所帮助吗?或者我真的必须为我想使用的每个COM对象编写一个包装器(或委托器?)? mainmenu = app.Menus.Items("$ID/Main") 似乎做的不一样吗?

0 个答案:

没有答案