如何把瀏覽器內所有的網址連結抓出來 |
尚未結案
|
China Join
中階會員 發表:81 回覆:242 積分:89 註冊:2003-03-12 發送簡訊給我 |
|
brant
一般會員 發表:1 回覆:64 積分:23 註冊:2003-04-07 發送簡訊給我 |
引言: 前輩們好,想請教一個問題,當電腦有裝 FLASHGET 這套軟體的時候,他有一個功能是在 IE 上按右鍵,然後他會執行 FLASHGET 軟體,並且把目前網頁上的資料全部傳給,FLASH GET 解析出有超連結的字串,請問要如何才能達到這些功能? 1.把選單整合到 IE 右鍵功能表 2.把瀏覽器(IE)的本文資料,抓到我們自己開發的程式IE programming 我沒做過,不過我知道 IE 可以用 IWebBrowserApp 這個 interface 去 automate: #include <exdisp.h> IWebBrowserApp* pWBApp = NULL; if (FAILED(hr = CoInitialize(NULL))) { return; } if (FAILED(hr = CoCreateInstance(CLSID_InternetExplorer, NULL, CLSCTX_SERVER, IID_IWebBrowserApp, (LPVOID*)&pWBApp))) { goto Error; }我的回答喜歡只給一個方向,剩下的就靠你自己了!!! ~~不喜歡大大來大大去的,沒事不要往我臉上塗奶油~~ |
China Join
中階會員 發表:81 回覆:242 積分:89 註冊:2003-03-12 發送簡訊給我 |
|
brant
一般會員 發表:1 回覆:64 積分:23 註冊:2003-04-07 發送簡訊給我 |
引言: brant 兄感謝您回應小弟的問題,不過小弟看不太懂... ,請問上面那個些程式提供什麼功能,要如何使用呢?那只是抓出 IE 提供出來的介面 取得介面後,再利用介面提供的函式 可以對 IE 做到相當程度的控制 我是有 automate office 的經驗 但IE這方面的文件我沒有細看過 詳細說明可能就得請您去查說明文件囉~~ MSDN 裡應該都可以找到,可以試著用 automate,IE,Internet Explore 這些關鍵字去 search。 ps.需要 COM/ActiveX的一些基本知識。 我的回答喜歡只給一個方向,剩下的就靠你自己了!!! ~~不喜歡大大來大大去的,沒事不要往我臉上塗奶油~~ 發表人 - brant 於 2003/04/11 10:53:02 |
turboted
版主 發表:95 回覆:754 積分:452 註冊:2002-07-23 發送簡訊給我 |
|
China Join
中階會員 發表:81 回覆:242 積分:89 註冊:2003-03-12 發送簡訊給我 |
|
brant
一般會員 發表:1 回覆:64 積分:23 註冊:2003-04-07 發送簡訊給我 |
#include <windows.h> #define INITGUID #include <initguid.h> #include <exdisp.h> void main() { HRESULT hr; IWebBrowserApp* pWBApp = NULL; // Derived from IWebBrowser BSTR bstrURL = NULL; if (FAILED(hr = CoInitialize(NULL))) { return; } if (FAILED(hr = CoCreateInstance(CLSID_InternetExplorer, NULL, CLSCTX_SERVER, IID_IWebBrowserApp, (LPVOID*)&pWBApp))) { goto Error; } pWBApp->get_LocationURL(&bstrURL); SysFreeString(bstrURL); Error: if (pWBApp) pWBApp->Release(); CoUninitialize(); }以上應該是可以抓出 url,但是是 BSTR 的 type ,要轉成 LPCSTR 祝成功~ 我的回答喜歡只給一個方向,剩下的就靠你自己了!!! ~~不喜歡大大來大大去的,沒事不要往我臉上塗奶油~~ 發表人 - brant 於 2003/04/11 18:34:58 發表人 - brant 於 2003/04/11 18:35:47 |
China Join
中階會員 發表:81 回覆:242 積分:89 註冊:2003-03-12 發送簡訊給我 |
|
brant
一般會員 發表:1 回覆:64 積分:23 註冊:2003-04-07 發送簡訊給我 |
補充一下:
我上面的 sample code 是開一個新的 Internet Explorer Control
所以抓到的url是空的
要找目前現有的 IE instance 要用 ShellWindows Object 來找
再配上類似之前提到 interface 來讀取所需的資料。
請參考 MSDN:
HOWTO: Connect to a Running Instance of Internet Explorer (Q176792) 還有另外一種做法是寫一個 COM object 註冊為 Browser Helper Object
每當 IE 開啟的時候,這個 COM object 就會被叫起來並可以 monitor IE
請參考 MSDN:
Controlling Internet Explorer 4.0 with Browser Helper Objects 我的回答喜歡只給一個方向,剩下的就靠你自己了!!!
~~不喜歡大大來大大去的,沒事不要往我臉上塗奶油~~
|
China Join
中階會員 發表:81 回覆:242 積分:89 註冊:2003-03-12 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |