1. 程式人生 > >實時獲取瀏覽器的地址欄的網頁地址

實時獲取瀏覽器的地址欄的網頁地址

ack 我希望 模式 權限 ugo 通信 quest pac 方法

探討一個問題。我想寫一個exe,功能就是實時的獲取瀏覽器地址欄的網頁地址,有沒有什麽好的想法。

之前很多人說通過findwindows來獲取瀏覽器的句柄,然後發消息獲取瀏覽器地址欄編輯框的內容,可是這樣我認為不是非常好,

由於這樣的方式對ie6還能夠。假設是google瀏覽器等等其它的瀏覽器來說不是一個非常好的出來方式。你認為呢?

我希望大家都說說思路,都給分

回復討論(解決方式)

如今非常多瀏覽器採用了DirectUI,傳統的找"地址欄"控件方式不適合了.
對於IE內核的瀏覽器,建議查找類名為Internet Explorer_Server的子窗體.
通過窗體句柄獲取IHTMLDocument接口,然後你想進行什麽操作都能夠了.
google瀏覽器等非IE內核的,沒發現這種接口. 那就做IE/FF/CHROME三個瀏覽器的插件來獲取 還有一個方法:
寫個DLL註入瀏覽器,HOOK HTTP協議相關的API,直接從封包裏找出URL,適合全部瀏覽器.

相關API參考:
InternetOpen
InternetConnect
HttpOpenRequest
HttpSendRequest
這樣的方式不好。有類似惡意軟件的行為,非常多安全軟件和瀏覽器的安全機制會阻止這樣的操作的。
對於IE。得到網址的正規方式是通過COM,可是對於保護模式下的IE還須要設置保護模式API。對於Chrome和火狐。標準方式是編寫插件(兩者臨時還支持NPAPI,所以插件是能夠通用的。可是以後谷歌會轉向PPAPI)。再通過IPC的方式和其他進程通信。IE也能夠通過ActiveX插件,由於ActiveX對權限的需求,就算是在保護模式下,也是在一個有一定權限的進程裏執行的。

實時獲取瀏覽器的地址欄的網頁地址