欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
鉤子函數

鉤子函數

鉤子函數可以截獲并處理其他應用程序的消息。每當特定的消息發(fā)出,在沒(méi)有到達目的窗口前,鉤子程序就先捕獲該消息,亦即鉤子函數先得到控制權。這時(shí)鉤子函數即可以加工處理(改變)該消息,也可以不作處理而繼續傳遞該消息,還可以強制結束消息的傳遞。
鉤子的種類(lèi)很多,每種鉤子可以截獲并處理相應的消息,如鍵盤(pán)鉤子可以截獲鍵盤(pán)消息,外殼鉤子可以截取、啟動(dòng)和關(guān)閉應用程序的消息等
關(guān)于HOOK
Hooks
A hook is a point in the system message-handling mechanism where an application can install a subroutine to monitor the message traffic in the system and process certain types of messages before they reach the target window procedure.

安裝一個(gè)HOOK,SetWindowsHookEx
對每種類(lèi)型的鉤子由系統來(lái)維護一個(gè)鉤子鏈,最近安裝的鉤子放在鏈的開(kāi)始,而最先安裝的鉤子放在最后,也就是后加入的先獲得控制權。
The SetWindowsHookEx function installs an application-defined hook procedure into a hook chain. You would install a hook procedure to monitor the system for certain types of events. These events are associated either with a specific thread or with all threads in the same desktop as the calling thread.
HHOOK SetWindowsHookEx(
  int idHook,        // hook type.請查看MSDN獲得詳細信息
  HOOKPROC lpfn,     // hook procedure
  HINSTANCE hMod,    // handle to application instance
  DWORD dwThreadId   // thread identifier
);

得到控制權的鉤子函數在完成對消息的處理后,如果想要該消息繼續傳遞,那么它必須調用另外一個(gè)SDK中的API函數CallNextHookEx來(lái)傳遞它。
CallNextHookEx
The CallNextHookEx function passes the hook information to the next hook procedure in the current hook chain. A hook procedure can call this function either before or after processing the hook information.
LRESULT CallNextHookEx(
  HHOOK hhk,      // handle to current hook
  int nCode,      // hook code passed to hook procedure
  WPARAM wParam,  // value passed to hook procedure
  LPARAM lParam   // value passed to hook procedure
);

hook處理函數
LRESULT CALLBACK HookProc(
  int nCode,
  WPARAM wParam,
  LPARAM lParam
);

取消HOOK
UnhookWindowsHookEx
The UnhookWindowsHookEx function removes a hook procedure installed in a hook chain by the SetWindowsHookEx function.
BOOL UnhookWindowsHookEx(
  HHOOK hhk   // handle to hook procedure
);

 

示例:
[code]
// 監視鼠標消息
// hook處理函數聲明
LRESULT CALLBACK MyMouseProc(int nCode, WPARAM wParam, LPARAM lParam);
static BOOL StartWatchingMouse(); // 開(kāi)始監視
static void StopWatchingMouse();   // 結束
static HHOOK hHook = NULL;   //hook指針
/*======================================================
*Function:StartWatchingMouse()
*Author:wuhuiran 05-7-23
*Desc:開(kāi)始監視鼠標
*Record:
--------------------------------------------------------
========================================================*/
BOOL StartWatchingMouse()
{
 hHook = SetWindowHookEx(WM_MOUSE, (HOOKPROC) MyMouseProc,
  (HINSTANCE) NULL, GetCurrentThreadId());
  
 if(!hHook)
 {
  return FALSE;
 }
 
 return TRUE;
 
}

/*======================================================
*Function:StartWatchingMouse()
*Author:wuhuiran 05-7-23
*Desc:取消監視鼠標
*Record:
--------------------------------------------------------
========================================================*/
void StopWatchingMouse()
{
 if(hHook)
 {
  UnHookWindowHookEx(hHook);
  hHook = NULL;
 }
}

/*======================================================
*Function:StartWatchingMouse()
*Author:wuhuiran 05-7-23
*Desc:HOOK處理函數
*Record:
--------------------------------------------------------
========================================================*/
LRESULT CALLBACK MyMouseProc(int nCode, WPARAM wParam, LPARAM lParam)
{
 if(nCode < 0)
 {
  return CallNextHookEx(hHook, nCode, wParam, lParam);
  
 }
 
 MOUSEHOOKSTRUCT *pMouseHookStruct;  //鼠標HOOK結構體
 pMouseHookStruct = (MOUSEHOOKSTRUCT *)lParam;
 
 POINT pt = pMouseHookStruct->pt;
 //動(dòng)一下鼠標就會(huì )顯示鼠標位置
 CString strMsg;
 strMsg.Format("x:\t%d\ny:\t%d", pt.x, pt.y);
 AfxMessageBox(strMsg);
 
 return CallNextHookEx(myHook, nCode, wParam, lParam);
}
[/code]

注意:
hook會(huì )使系統變慢,除非必要,不要頻繁使用。在不使用的時(shí)候盡快刪除
全局鉤子必須放在DLL中

只是簡(jiǎn)單介紹了一下鉤子函數的使用方法,具體的函數介紹請參閱MSDN和其他文章。 



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=885915

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
C++鉤子程序淺析
Delphi 鉤子(1)
windows鉤子函數
用HOOK禁用鼠標與鍵盤(pán)點(diǎn)擊
將非模態(tài)對話(huà)框顯示為模態(tài)對話(huà)框
[鉤子技術(shù)]簡(jiǎn)單的鼠標鉤子
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久