中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      如何用HOOK函數關閉IE廣告窗口

      時間:2024-07-22 05:45:17 ACCP培訓 我要投稿
      • 相關推薦

      如何用HOOK函數關閉IE廣告窗口

        很多時候廣告窗口都很煩人,YJBYS小編下面為你整理了如何用HOOK函數關閉IE廣告窗口的方法,希望對你有所幫助。

        1、彈出式廣告框也是IE瀏覽窗口,一般來說,它是一個無菜單、無工具欄窗口。所以可以在桌面上打開一個窗口時,首先判斷該窗口類型是否是“IEFrame”,接著判斷IEFrame的子窗口類型“WorkerW”的屬性是否是不可見(這是一般彈出式廣告窗口的特征),這樣就可以向該窗口發出關閉的消息,以上步驟一般能自動關閉大部分彈出廣告框。

        2、通過WINDOWS編程中的鉤子(HOOK)函數解決截獲在桌面上打開窗口的消息。鉤子函數的基本原理就是對WINDOWS系統的某些動作注冊,當發生這些事件時首先調用預先設置的回調函數,回調函數處理后,再由原來的函數處理。這里回調函數的作用正是實現1中敘述的功能。因為這里實現的鉤子函數是監視其它進程窗口產生的消息,所以必須用動態鏈接庫實現。

        主要代碼如下:

        在動態鏈接庫中,實現鉤子回調函數。

        LRESULT CALLBACK CallWndProc(

        int nCode, // hook code

        WPARAM wParam, // current-process flag

        LPARAM lParam // address of structure with message data

        )

        {

        CWPSTRUCT *pCwp = NULL;

        CString strClassName;

        HWND hWnd = NULL;

        unsigned long ulStyle = 0;

        BOOL bIsClosed = FALSE;

        if (nCode < 0)

        {

        return CallNextHookEx(gHook, nCode, wParam, lParam);

        }

        if (NULL != lParam)

        {

        pCwp = (CWPSTRUCT *)lParam;

        if (WM_SHOWWINDOW == pCwp->message)

        {

        ::GetClassName(pCwp->hwnd, strClassName.GetBufferSetLength(128), 128);

        //IE窗口的類型為IEFrame

        if (0 == strClassName.CompareNoCase("IEFrame"))

        {

        hWnd = ::GetWindow(pCwp->hwnd, GW_CHILD);

        if (NULL == hWnd)

        {

        bIsClosed = TRUE;

        }

        while (NULL != hWnd)

        {

        ::GetClassName(hWnd, strClassName.GetBufferSetLength(127), 127);

        //IEFrame的子窗口包含窗口類型WorkerW

        if (0 == strClassName.CompareNoCase("WorkerW"))

        {

        //若WorkerW不可見,則一般是廣告彈出窗口

        if (0 == (::GetWindowLong(hWnd, GWL_STYLE) & WS_VISIBLE))

        {

        bIsClosed = TRUE;

        break;

        }

        break;

        }

        else

        {

        bIsClosed = TRUE;

        }

        hWnd = ::GetWindow(hWnd, GW_HWNDNEXT);

        }

        //若是IE廣告彈出窗口,則關閉

        if (TRUE == bIsClosed)

        {

        ::PostMessage(pCwp->hwnd, WM_CLOSE, 0, 0);

        }

        }

        }

        }

        return CallNextHookEx(gHook, nCode, wParam, lParam);

        }

        在主程序中,調用DLL中的CallWndProc。

        //獲得動態鏈接庫句柄

        HINSTANCE hmodHook = GetModuleHandle("CloseWndDll.dll");

        if (NULL == hmodHook)

        {

        return TRUE;

        }

        //設置鉤子函數

        if (NULL == gHook)

        {

        gHook = SetWindowsHookEx(WH_CALLWNDPROC,

        (HOOKPROC)GetProcAddress(hmodHook, "CallWndProc"), hmodHook, 0);

        }

        主程序退出時,注意調用鉤子卸載函數。

        //卸載鉤子函數

        if (NULL != gHook)

        {

        UnhookWindowsHookEx(gHook);

        gHook = NULL;

        }

      【如何用HOOK函數關閉IE廣告窗口】相關文章:

      有關javascript在IE下trim函數無法使用的解決方法08-19

      怎么關閉硬件加速09-01

      怎么刪除桌面ie圖標09-13

      fireworks關閉隱藏邊緣選項的方法06-15

      如何關閉電腦遠程桌面08-18

      如何用丹田唱歌06-23

      網頁編程語言禁止IE緩存08-10

      編寫JavaScript函數10-24

      PHP的壓縮函數06-21

      Javascript 函數的學習09-11

      主站蜘蛛池模板: 无码成人AV在线一区二区| 国产精品呻吟一区二区三区| 兴安盟| 免费在线观看国产黄色| 久久亚洲AV无码一区二区综合| 精品国产性色av网站| 福建省| 安康市| 峨边| av观看一区二区三区| 人妻中文字幕一区二区二区| www.尤物视频.com| 91久久精品国产性色tv| 人妖在线网国产一二三四| 苍南县| 南皮县| 国产品精品久久久久中文| 彭水| 久草久热这里只有精品| 在线无码免费看黄网站| 黄 色 成 年 人 网 站免费| 久久伊人中文字幕有码久久国产| 国产精品免费av一区二区| 国产免费自拍av一区| 亚洲成人av一区二区三区| 郎溪县| 额济纳旗| 亚洲免费视频一区二区三区| 根河市| 东京热加勒比日韩精品| 亚洲先锋影院一区二区| 国产精品国产三级国产无毒| 精品少妇人妻久久免费| 国产在线一区二区三区在线观看| 国产一区,二区,三区免费视频 | av亚洲在线一区二区| 青青草综合影院在线观看| 久久国产精品免费一区六九堂| 日本二区三区视频免费观看| 国产精品丝袜美女在线观看| 久久国产精品免费一区二区|