假设我使用
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")
似乎做的不一样吗?