sss*_*gey 6 python win32com python-3.x
这段代码有什么问题?为什么 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`
Run Code Online (Sandbox Code Playgroud)
您必须EnsureDispatch改用:
>>> w=win32com.client.gencache.EnsureDispatch('Word.Application')
>>> win32com.client.constants.wdWindowStateMinimize
2
>>>
Run Code Online (Sandbox Code Playgroud)
请注意,您第一次EnsureDispatch在特定的 COM 服务器上使用时,pywin32 会为其生成 COM 类型库(在您的情况下为 Word),因此可能需要几秒钟。对于 Excel,大约需要 30 秒。但在那之后,调度很快,您甚至可以使用常规Dispatch(因此您可以将您的应用程序编码为使用 Dispatch,这比 EnsureDispatch 快,并检查是否定义了常量,如果没有,则代码使用 EnsureDispatch) .
有关更多详细信息,请参阅我对另一篇文章的回答。