亚洲一级电影在线观看,九九精品无码专区免费,亚洲AV无码资源在线观看 ,欧美国产高清

如何用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中文无码韩国亚洲色偷偷 | 少妇被粗大猛进去69影院| 朝鲜女人大白屁股ass| v天堂中文在线| 国产又a又黄又潮娇喘视频| av无码久久精品| aⅴ大片在线无码永久免费网址| 国产成人免费一区二区三区| 欧洲女人牲交视频免费| 青青草原网站在线观看| 国产欧美精品午夜在线播放| 亚洲国产日韩视频观看| 中文字幕丰满乱子伦无码专区| 99久久久成人国产精品免费| 人妻精品久久无码区| 久久天天躁夜夜躁狠狠综合| 无码国产乱人伦偷精品视频| 99热都是精品久久久久久| 麻豆一区二区三区蜜桃免费| 色欲香天天天综合网站| 国产精品午夜无码av体验区 | 中文字幕日韩精品欧美一区| 亚洲成在人线在线播放无码| 免费无码一区二区三区a片百度 | 日韩专区欧美| 久久精品久久久久久噜噜| 四虎亚洲精品| 在线亚洲高清揄拍自拍一品区| 国产成人精品亚洲日本语言| 微山县| 婷婷综合色| 女人国产香蕉久久精品| 国产精品入口麻豆| 国内揄拍国内精品少妇国语| 乱色欧美激惰| 激情无码人妻又粗又大中国人| 精品国产91爱| 久久久中日ab精品综合| 最新亚洲人成网站在线影院| 国产久9视频这里只有精品| 97国产精品人人爽人人做|