2

我需要一些 IE 插件(浏览器助手对象)的帮助。

插件应该做什么:

如果用户点击后面有pdf的链接,插件应该调用安装在电脑上的exe文件。exe 文件将检查 PDF 并打开默认的 pdf 应用程序或特殊应用程序。

我做了什么:

我的 BHO 从我的 IE 开始。我一开始就使用了这段代码:http:
//www.codeproject.com/Articles/19971/How-to-attach-to-Browser-Helper-Object-BHO-with-C
我禁用了所有 adobe 插件,所以 ie 下载窗口出现。有了这段代码,我可以解析 html 正文添加 html 标记等,但这不是我想要做的......

我的问题:

我不知道如何获取pdf。如果我直接调用 pdf 下载链接,则将站点对象转换为 InternetExplorer 或 WebBrowser 对象会失败。

public int SetSite(object site)
{
    if (site != null)
    {
        ieInstance = site as InternetExplorer;   
        ieInstance.DocumentComplete += new DWebBrowserEvents2_DocumentCompleteEventHandler(this.OnDocumentComplete);
    }
    else if (ieInstance != null)
    {
        ieInstance.DocumentComplete -= new DWebBrowserEvents2_DocumentCompleteEventHandler(this.OnDocumentComplete);
    }
    return 0;
}

Document = '((SHDocVw.InternetExplorer)(ieInstance)).Document' 引发了“System.Runtime.InteropServices.COMException”类型的异常

有人可以告诉我,在 IE 中的下载窗口出现之前,我如何获取 pdf?我知道下载前有一个事件,但这个事件对我没有帮助。

4

1 回答 1

0

你想更广泛地实现什么?

当浏览器显示 PDF 文件时,您无法获取 HTML 文档实例,因为没有 - 加载的是 PDF 对象而不是 HTML 呈现对象。

根据您要实现的目标,可能有更好的方法来实现它(最有可能通过为 application/pdf MIME 类型注册一个 MIME 过滤器)。

于 2013-07-26T16:13:42.950 回答