鉤子的設定

2021-04-12 22:18:31 字數 940 閱讀 2318

鉤子是windows系統中的一種訊息機制。可以用setwindowshookex進行設定,型別有多種,具體參見msdn。鉤子在系統中就是乙個訊息鏈,用setwindowshookex就是把自己的鉤子函式放到鉤子鏈的頂端,為了要讓其它的設定鉤子的使用者也可以捕捉鉤子訊息,請一定要向下傳遞鉤子。可以一些不正常的程式自己設定了鉤子就不向下傳遞鉤子訊息了,使得在這些不正常程式之前設定的鉤子,即鏈的下游使用者得不到鉤子訊息。我火大啊,要是世界上沒有**的用法,那該多好啊!

沒辦法,還要解決,於是乎,俺也用了乙個**的做法,迴圈設定鉤子,保證自己的鉤子在鏈的頂端。

請任何時候用鉤子的程式設計師在callback裡加上:return這一句 

::callnexthookex(hhook, code, wparam, lparam);

#pragma data_seg("shared")

hhook hkeyboard;

hhook hmouse;

hinstance g_hinst;

wchar_t g_text[64] = ;

#pragma data_seg()

#pragma comment(linker,"/section:shared,rws")

lresult callback mouseproc(int ncode,wparam wparam,lparam lparam);

lresult callback keyboardproc(int ncode,wparam wparam,lparam lparam);

void lookfortextwindow(hwnd hparent,int n);

bool apientry dllmain( hmodule hmodule,

dword  ul_reason_for_call,

lpvoid lpreserved

)return true;

}

DLL中設定區域性鉤子

1.新建執行緒 注意dllmain中要返回true,否則會記憶體引用出錯 2.設定鉤子 g hdll 這個引數為null,子程也能被呼叫 g hook setwindowshookex wh callwndproc,callwndproc,g hdll,getwindowthreadprocessi...

Linux svn安裝配置與鉤子設定

一 安裝 1 centos 下安裝命令 yum install subversion 2 檢視版本,是否安裝成功 svnserve version 二 配置 1.建立svn目錄 mkdir home svn cd home svn 2.建立專案repos svnadmin create home s...

mysql 鉤子 svn鉤子的使用案例

svn鉤子的使用案例 我在這一篇博文中提到,svn鉤子指令碼是svn非常實用重要的功能,在工作中,會經常需要用到svn鉤子指令碼以實現除了svn自帶功能之外的附加功能,那麼這一篇博文,我們就舉例演示一下,svn鉤子是用來做什麼的,以及怎麼用。svn鉤子的功能 svn鉤子是乙個指令碼,它的具體寫法和l...