这段代码有什么问题吗?为什么 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
>>>
请注意,第一次使用时EnsureDispatch
在特定的 COM 服务器上,pywin32 为其生成 COM 类型库(在您的情况下为 Word),因此可能需要很多秒。对于 Excel,花费了近 30 秒。不过之后发货很快,甚至可以用常规的Dispatch
(因此您可以对应用程序进行编码以使用 Dispatch,它比 EnsureDispatch 更快,并检查是否定义了常量,如果没有,则代码使用 EnsureDispatch)。
See 我对另一篇文章的回答 https://stackoverflow.com/a/23306850/869951更多细节。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)