从今以后,拒绝写C++

LRESULT   CALLBACK   HookProc(int   nCode,   WPARAM   wParam,   LPARAM   lParam)
{
      if   (nCode   <   0)
              //return   CallNextHookEx(hook,   nCode,   wParam,   lParam);
      if   (nCode   ==   HCBT_ACTIVATE)   {
              HWND   hWnd   =   (HWND)wParam;
              CBTACTIVATESTRUCT*   pas   =   (CBTACTIVATESTRUCT*)lParam;
              //hWnd为就要激活的窗口句柄,而pas-> WndActive为当前激活的窗口句柄
      }
      return   0;   //返回0,允许操作,否则禁止系统的操作
}

 

 

 

SetWindowsHookEx(WH_CBT,HookProc,::GetModuleHandle(NULL),0);

 

 

HHOOK IEHook; //全域





LRESULT CALLBACK HookIECallBack(int nCode, WPARAM wParam, LPARAM lParam)
{



if


(nCode >= 0)



{



CWPSTRUCT* data= (CWPSTRUCT*)lParam;



if


(data->message == WM_SIZE)



{



//處理message






}



}



return


CallNextHookEx(IEHook, nCode, wParam, lParam);



}















VARIANT_BOOL ControllerCtrl::HookIEWindow()



{



AFX_MANAGE_STATE(AfxGetStaticModuleState());



CString IEClassString = _T("IEFrame"


);







CString IETitleString = _T("New Page - Windows Internet Explorer"


);



//取得IE視窗handle






HWND ieHandle = ::FindWindow(IEClassString,IETitleString);



if


(ieHandle != 0)



{



//取得IE視窗的threadId






LONG threadId = GetWindowThreadProcessId(ieHandle,NULL);



if


(threadId != 0)



{



IEHook = ::SetWindowsHookEx(WH_CALLWNDPROC,HookIECallBack,::GetModuleHandle(NULL),threadId);



if


(IEHook != NULL)



{



return


VARIANT_TRUE;



}



}



else






{



MessageBox(_T("no threadId"


));



}



}



else






{



MessageBox(_T("no ie-handle"


));



}



return


VARIANT_FALSE;







}







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

avi9111

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值