getdlgitem showwindow_enablewindow showwindow_enablewindow f(3)

电脑杂谈  发布时间:2017-01-22 04:03:51  来源:网络整理

hhk:将要释放的钩子进程的句柄。

III:钩子进程

钩子进程使用函数HookProc;其实HookProc仅仅只是应用程序定义的符号。比如你可以写成KeyBoardHook.但是参数是不变的。

Win32API提供了诸如:CallWndProc、GetMsgProc、DebugProc、CBTProc、MouseProc、

KeyboardProc、MessageProc等函数,对于他们的详细讲解,可以看MSDN我在此只讲解一下KeyBoardHook的含义。

原形:LRESULTCALLBACKKeyBoardHook(intnCode,WPARAMwParam,LPARAMlParam)

说明:钩子进程是一些依附在一个钩子上的一些函数,因此钩子进程只被WINDOWS调用而不被应用程序调用,他们有时就需要作为一个回调函数(CALLBACK)。

参数说明:

nCode:钩子代码,钩子进程使用钩子代码去决定是否执行。而钩子代码的值是依靠钩子的种类来定的。每种钩子种类都有他们自己一系列特性的代码。比如对

于WH_KEYBOARD,钩子代码的参数有:HC_ACTION,HC_NOREMOVE。HC_ACTION的意义:参数wParam和

lParam包含了键盘敲打消息的信息,HC_NOREMOVE的意义:参数wParam和lParam包含了键盘敲打消息的信息,并且,键盘敲打消

息一直没有从消息队列中删除。(应用程序调用PeekMessage函数,并且设置PM_NOREMOVE标志)。也就是说当nCode等于

HC_ACTION时,钩子进程必须处理消息。而为HC_NOREMOVE时,钩子进程必须传递消息给CallNextHookEx函数,而不能做进一步

的处理,而且必须有CallNextHookEx函数的返回值。

wParam:键盘敲打所产生的键盘消息,键盘按键的虚拟代码。

lParam:包含了消息细节。

注意:如果钩子进程中nCode小于零,钩子进程必须返回(return)CallNextHookEx(nCode,wParam,lParam);

而钩子进程中的nCode大于零,但是钩子进程并不处理消息,作者推荐你调用CallNextHookEx并且返回该函数的返回值。enablewindow showwindow否则,如果另一个应用

程序也装入WH_KEYBOARD钩子,那么该钩子将不接受钩子通知并且返回一个不正确的值。如果钩子进程处理了消息,它可能返回一个非零值去阻止系统

传递该信息到其它剩下的钩子或者windows进程。所以最好在钩子进程的最后都返回CallNextHookEx的返回值。

IV:调用下一个钩子函数

调用下一个钩子函数时使用CallNexHookEx函数。

原形:LRESULTCallNextHookEx(HHOOKhhk,intnCode,WPARAMwParam,LPARAMlParam)

CallNexHookEx()函数用于对当前钩子链中的下一个钩子进程传递钩子信息,一个钩子进程既可以在钩子信息处理前,也可以在钩子信息处理后调用该函数。为什么使用该函数已在iii钩子进程中的“注意”中,加以了详细的说明。

hhk:当前钩子的句柄

nCode:传送到钩子进程的钩子代码。

wParam:传送到钩子进程的值。

lParam:传送到钩子进程的值。

参数:

hhk:当前钩子的句柄.应用程序接受这个句柄,作为先前调用SetWindowsHookE函数的结果

nCode:传送到钩子进程的钩子代码,下一个钩子进程使用这个代码以此决定如何处理钩子信息


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-27965-3.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...