使用python调用COM接口时并不能直接使用COM中定义的常量,
python手册的《Quick Start to Client side COM and Python》一节给出了方法,这里简要介绍一下:
1、首先需要执行'
win32com\client\makepy.py
',选择要加载的COM确定,例如'
Microsoft Word 12.0 Object Library
'
2、python代码中加载COM:
import win32com.client
w=win32com.client.Dispatch("Word.Application")
w.Visible=1
3、此时Word COM的常量就会被自动加载到win32com.client.constants中
w.WindowState = win32com.client.constants.wdWindowStateMinimize
另外如果希望在运行时加载,可以加“-i ”参数执行makepy.py,就会得到如下信息:
Microsoft Word 12.0 Object Library
{00020905-0000-0000-C000-000000000046}, lcid=0, major=8, minor=4
>>> # Use these commands in Python code to auto generate .py support
>>> from win32com.client import gencache
>>> gencache.EnsureModule('{00020905-0000-0000-C000-000000000046}', 0, 8, 4)
如此只要在python脚本中包含后两句代码就可以了。
给个例子:
import win32com.client
import os
#去调用win32com.client.constants中的常量使用
from win32com.client import gencache
gencache.EnsureModule('{7A474EE3-0062-4239-AE91-134AC9BD5FD3}', 0, 1, 0)
这个7A474EE3-0062-4239-AE91-134AC9BD5FD3.py保存在
win32com\gen_py下面