implement COM interface type library in python

坚强是说给别人听的谎言 提交于 2019-12-03 21:03:39

You can simply use win32com.client.Dispatch():

object = win32com.client.Dispatch("Class.Name")

This is the example from ActiveState quick start guide:

>>> import win32com.client
>>> w=win32com.client.Dispatch("Word.Application")
>>> w.Visible=1
>>> w
<win32com.gen_py.Microsoft Word 8.0 Object Library._Application>

If it doesn't work, you can use win32com.client.gencache.EnsureModule() to make sure you've generated the right cache module.

from win32com.client import Dispatch
from win32com.client import gencache

# This comes from running: makepy.py -i "Microsoft Excel 14.0 Object Library"
gencache.EnsureModule('{00020813-0000-0000-C000-000000000046}', 0, 1, 7)
obj = Dispatch("Excel.Application.14")

# gives <win32com.gen_py.Microsoft Excel 14.0 Object Library._Application instance ...>
print repr(obj)

The same thing with comtypes (simpler and supports custom interfaces)

from comtypes.client import CreateObject
obj = CreateObject("Excel.Application")
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!