2011-05-04 118 views
3

我需要在C#和VS2010中編寫一個應用程序,它可以偵聽Internet Explorer中的下載事件並捕獲文件URL以將其添加到特定數據庫。收聽Internet Explorer下載事件

我唯一的問題是如何實現一個實際捕獲該事件的接口。

構建或實現此類功能需要什麼?

尋找作爲「免費下載管理器或FDM軟件」的功能,每當您在Internet Explorer上開始下載時,都會彈出一個包含下載URL的「FDM」窗口。

回答

1

您需要一個瀏覽器幫助程序對象。這些是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

1

您可以使用這樣的事情:

public class BHO:IObjectWithSite 
    { 
     private WebBrowser webBrowser; 

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