Python win32com: Internet Explorer COM对象?(之前能用吗?)

1 投票
1 回答
3664 浏览
提问于 2025-04-15 19:07

我有一个非常简单的程序:

from win32com import client
ie=client.Dispatch("InternetExplorer.Application")

之前这个程序是可以正常工作的(我想我在重新使用'makepy.py'时搞坏了什么,试图为IE添加常量)。

在另一台我没有随便乱搞'makepy.py'的机器上,这个程序仍然可以正常运行。

这是我在不工作的机器上进行交互式Python会话时得到的结果:

>>> ie
>>> <win32com.gen_py.Microsoft Internet Controls.IWebBrowser2 instance at 0x14701432
>
>>> ie.Visible=True
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "D:\Python26\lib\site-packages\win32com\client\__init__.py", line 471, in
 __setattr__
    self._oleobj_.Invoke(*(args + (value,) + defArgs))
pywintypes.com_error: (-2147352573, 'Member not found.', None, None)

而在正常工作的机器上得到的结果是一样的:

>>> from win32com import client
>>> ie=client.Dispatch("InternetExplorer.Application")
>>> ie
>>> <ComObject InternetExplorer.Application>
>>> ie.Visible=1 # This then brings up IE correctly.

我该如何让这个程序再次正常工作?或者我是不是用错了启动IE的方法?

谢谢!

1 个回答

1

我进入了这里:

Python26\Lib\site-packages\win32com\gen_py

把 .py 和 .pyc 文件的名字改成了 .py_ 和 .pyc_:

85CC894D-5673-4868-9A22-9E15B7E694D3x0x1x1.pyc

重启了 Python:现在可以打开 Internet Explorer 了。呼,终于解决了...

撰写回答