【发布时间】:2011-08-09 20:56:08
【问题描述】:
我正在为 IE 制作 C# 工具栏,我需要访问网站中的某个框架。在我最初的测试中,我只是试图循环浏览框架并弹出一个带有框架名称的 MessageBox。但是每当我尝试这样做时都会遇到异常,说“访问被拒绝”。异常的全文是:
访问被拒绝。 (来自 HRESULT 的异常:0x80070005 (E_ACCESSDENIED))
代码如下:
IHTMLSelectionObject currentSelection = myHTMLDocument.selection;
IHTMLFramesCollection2 frames = (IHTMLFramesCollection2)myHTMLDocument.frames;
for (int i = 0; i < frames.length; i++)
{
object refIndex = i;
IHTMLWindow2 currentFrame = (IHTMLWindow2)frames.item(ref refIndex);
if (currentFrame != null)
{
MessageBox.Show(currentFrame.name);
}
else
MessageBox.Show("Null");
}
通过我在网络上的搜索,我发现这实际上不是错误。预计它会以这种方式表现。我的问题是:做我想做的事情的正确方法是什么?
提前致谢!
【问题讨论】:
-
我看过这个:support.microsoft.com/kb/196340,但不知道C#中是否有更完整的例子。