收听Internet Explorer下载事件

问题描述:

我需要在C#和VS2010中编写一个应用程序,它可以侦听Internet Explorer中的下载事件并捕获文件URL以将其添加到特定数据库。收听Internet Explorer下载事件

我唯一的问题是如何实现一个实际捕获该事件的接口。

构建或实现此类功能需要什么?

寻找作为“免费下载管理器或FDM软件”的功能,每当您在Internet Explorer上开始下载时,都会弹出一个包含下载URL的“FDM”窗口。

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

Here是C#中COM编程的入门书。

UPDATE

看来的唯一途径就可以写的浏览器辅助对象在C++中。看看here

+0

http://en.wikipedia.org/wiki/Browser_Helper_Object#Examples_of_BHO有一个链接到C#的例子 - 我还没有尝试过。 – 2011-05-04 22:26:15

+0

谢谢马克,所以我先说的确是正确的。我会更新。 – Aliostad 2011-05-04 22:28:54

+0

Thanky非常多马克,你提供的链接让我看看下面的例子:http://www.codeproject.com/KB/cs/Attach_BHO_with_C_.aspx,它的作用像一个魅力,现在它只是想办法解决如何将事件链接到我的应用程序并发送要下载的URL。 – Britos 2011-05-04 23:17:35

您可以使用这样的事情:

public class BHO:IObjectWithSite 
    { 
     private WebBrowser webBrowser; 

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