如何在 MS Word 中使用 win32com.client.constants?

How to use win32com.client.constants with MS Word?

这段代码有什么问题?为什么 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`

您必须改用 EnsureDispatch

>>> w=win32com.client.gencache.EnsureDispatch('Word.Application')
>>> win32com.client.constants.wdWindowStateMinimize
2
>>>

请注意,第一次在特定 COM 服务器上使用 EnsureDispatch 时,pywin32 会为其生成 COM 类型库(在您的情况下为 Word),因此可能需要很多秒。 Excel,用了将近 30 秒。但在那之后,调度很快,你甚至可以使用常规 Dispatch(所以你可以编写你的应用程序使用 Dispatch,它比 EnsureDispatch 更快,并检查是否定义了常量,如果没有,代码使用 EnsureDispatch).

有关详细信息,请参阅 my answer to this other post