这段代码有什么问题?为什么win32com.client.constants没有属性wdWindowStateMinimize?
>>> import win32com.client
>>> w=win32com.client.Dispatch("Word.Application")
>>> w.WindowState = win32com.client.constants.wdWindowStateMinimize
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
w.WindowState = win32com.client.constants.wdWindowStateMinimize
File "C:\Python34\lib\site-packages\win32com\client\__init__.py", line 170, in __getattr__
raise AttributeError(a)
AttributeError: wdWindowStateMinimize`
答案 0 :(得分:3)
您必须改为使用EnsureDispatch
:
>>> w=win32com.client.gencache.EnsureDispatch('Word.Application')
>>> win32com.client.constants.wdWindowStateMinimize
2
>>>
请注意,第一次在特定的COM服务器上使用EnsureDispatch
时,pywin32会为它生成COM类型的lib(在您的情况下为Word),因此可能需要很多秒。对于Excel,它花了将近30秒。但之后,调度很快,您甚至可以使用常规Dispatch
(因此您可以编写应用程序以使用Dispatch,这比EnsureDispatch更快,并检查是否定义了常量,如果没有,代码使用EnsureDispatch)。
有关详细信息,请参阅my answer to this other post。