监听Internet Explorer下载事件

4
我需要在C#和VS2010中编写一个应用程序,能够监听Internet Explorer的下载事件并捕获文件URL以添加到特定数据库。唯一的问题是如何实现一个可以捕获该事件的接口。要构建或实现这样的功能,我需要什么?寻找与“Free download manager”或“FDM software”类似的功能,每次在Internet Explorer上启动下载时,都会弹出一个包含下载URL的“FDM”窗口。
2个回答

2
你需要一个浏览器助手对象。这些是COM组件,因此您可以使用C#开发它们,但是您需要将它们公开到COM。

这里是使用C#编程的COM入门。

更新

似乎只能用C++编写浏览器助手对象。在这里看看。


http://en.wikipedia.org/wiki/Browser_Helper_Object#Examples_of_BHO 上有C#示例的链接 - 我还没有尝试过。 - Mark Allen
谢谢马克,所以我之前说的确实是正确的。我会更新。 - Aliostad
非常感谢Mark,您提供的链接将我带到了以下示例:http://www.codeproject.com/KB/cs/Attach_BHO_with_C_.aspx ,它非常有效。现在只需要弄清楚如何将事件链接到我的应用程序并发送要下载的URL即可。 - Britos
答案仍然没有回答如何使用BHO的问题,那是一个非常笼统的答案。 - spez

0
你可以像这样使用:
    public class BHO:IObjectWithSite
    {
        private WebBrowser webBrowser;

        public int SetSite(object site){
                webBrowser = (WebBrowser)site;
                webBrowser.DownloadComplete +=new DWebBrowserEvents2_DownloadCompleteEventHandler(webBrowser_DownloadComplete);
       (...)
   }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接