程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> WinAPI: SetWindowsHookEx - 設置鉤子

WinAPI: SetWindowsHookEx - 設置鉤子

編輯:Delphi

提示: 如果要設置系統級鉤子, 鉤子函數必須在 DLL 中.

SetWindowsHookEx(
 idHook: Integer;  {鉤子類型}
 lpfn: TFNHookProc; {函數指針}
 hmod: HINST;    {包含鉤子函數的模塊(EXE、DLL)句柄; 一般是 HInstance; 如果是當前線程這裡可以是 0}
 dwThreadId: DWORD {關聯的線程; 可用 GetCurrentThreadId 獲取當前線程; 0 表示是系統級鉤子}
): HHOOK;      {返回鉤子的句柄; 0 表示失敗}

//鉤子類型 idHook 選項:
WH_MSGFILTER    = -1; {線程級; 截獲用戶與控件交互的消息}
WH_JOURNALRECORD  = 0; {系統級; 記錄所有消息隊列從消息隊列送出的輸入消息, 在消息從隊列中清除時發生; 可用於宏記錄}
WH_JOURNALPLAYBACK = 1; {系統級; 回放由 WH_JOURNALRECORD 記錄的消息, 也就是將這些消息重新送入消息隊列}
WH_KEYBOARD    = 2; {系統級或線程級; 截獲鍵盤消息}
WH_GETMESSAGE   = 3; {系統級或線程級; 截獲從消息隊列送出的消息}
WH_CALLWNDPROC   = 4; {系統級或線程級; 截獲發送到目標窗口的消息, 在 SendMessage 調用時發生}
WH_CBT       = 5; {系統級或線程級; 截獲系統基本消息, 譬如: 窗口的創建、激活、關閉、最大最小化、移動等等}
WH_SYSMSGFILTER  = 6; {系統級; 截獲系統范圍內用戶與控件交互的消息}
WH_MOUSE      = 7; {系統級或線程級; 截獲鼠標消息}
WH_HARDWARE    = 8; {系統級或線程級; 截獲非標准硬件(非鼠標、鍵盤)的消息}
WH_DEBUG      = 9; {系統級或線程級; 在其他鉤子調用前調用, 用於調試鉤子}
WH_SHELL      = 10; {系統級或線程級; 截獲發向外殼應用程序的消息}
WH_FOREGROUNDIDLE = 11; {系統級或線程級; 在程序前台線程空閒時調用}
WH_CALLWNDPROCRET = 12; {系統級或線程級; 截獲目標窗口處理完畢的消息, 在 SendMessage 調用後發生}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved