全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1971
推到 Plurk!
推到 Facebook!

hook + IE

缺席
kaija
一般會員


發表:16
回覆:14
積分:6
註冊:2003-07-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-11-12 17:43:17 IP:210.202.xxx.xxx 訂閱
從 msdn 上面得知
要取得 ie 的控制權可以透過 BHO 的方式
可是因為某些特殊的條件限制
所以 BHO 的方式沒辦法納入考量

於是我就想用 hook 的方式去取得 ie 的 com 介面及控制權
可是我在取得 ie 的 handle 之後
就出狀況了
以下是我 hook 裏面做的事

[code cpp]
LRESULT CALLBACK IEHookProc( int nCode, WPARAM wParam, LPARAM lParam )
{
LPCBT_CREATEWND lpcbt_createwnd = NULL;
HWND hWnd = NULL;
CHAR szClassName[32];

if( nCode == HCBT_CREATEWND )
{
lpcbt_createwnd = (LPCBT_CREATEWND) lParam;
hWnd = (HWND) wParam;

ZeroMemory( szClassName, sizeof(szClassName) );
GetClassName( hWnd, szClassName, sizeof(szClassName) - 1 );

if( lstrcmpi("ieframe", szClassName) == 0 )
{
CoCreateInstance(CLSID_InternetExplorer, NULL, CLSCTX_LOCAL_SERVER, IID_IWebBrowserApp, (void**)&pWebBrowserApp); // 程式死在這裏,當在裏面回不來
if( pWebBrowserApp )
{
}
}
}

return CallNextHookEx( hHook, nCode, wParam, lParam );
}

[/code]

不知道該用什麼方法才能取得 ie 的控制權呢?
kaija
一般會員


發表:16
回覆:14
積分:6
註冊:2003-07-24

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-11-13 00:59:26 IP:122.121.xxx.xxx 訂閱
網路上還有另一種做法
感覺不是特別喜歡...
microsoft msdn 中提供的方法
透過 IShellWindows 這個 com interface 取得 IWebBrowser 的 interface 進而取得控制權...
可是這個有個問題...
這個變成程式執行起來就要一直去取得目前的 Shell windows 的數量
如果要所有被 run 起來的 ie 都受到控制的話這就有點點麻煩...
因為不知道那一隻是被控制的 那一隻沒有被控制...

不知道有沒有能用 hook 取得控制權的方式...
系統時間:2024-04-20 5:46:42
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!