JournalPlaybackProc

【勇芳软件工作室】汉化HomePreviousNext

JournalPlaybackProc挂接过程是将鼠标和键盘消息插入到系统消息队列中的回调函数。通常,应用程序使用此钩子过程播放先前由JournalRecordProc挂钩过程记录的一系列鼠标和键盘消息。只要安装JournalPlaybackProc挂钩程序,禁用常规鼠标和键盘输入。

LRESULT CALLBACK JournalPlaybackProc(

INT 【码】,//钩子代码
WPARAM 【wParam中】,//未定义
LPARAM 【lParam的】//正在处理的邮件的地址
); 

参数

【码】

指定挂钩过程用于确定如何处理消息的代码。此参数可以是以下值之一:

含义
HC_GETNEXT挂钩过程必须将当前鼠标或键盘消息复制到【lParam的】参数指向的EVENTMSG结构。
HC_NOREMOVE应用程序已将PeekMessage函数【wRemoveMsg】设置为PM_NOREMOVE,表示在PeekMessage处理后消息不会从消息队列中删除。
HC_SKIP挂钩过程必须准备将下一个鼠标或键盘消息复制到【lParam的】指向的EVENTMSG结构。在收到HC_GETNEXT代码后,挂接过程必须将消息复制到结构。
HC_SYSMODALOFF系统模式对话框已被破坏。挂钩过程必须恢复播放消息。
HC_SYSMODALON系统模式对话框正在显示。在对话框被破坏之前,挂钩过程必须停止播放消息。

如果【码】小于零,挂钩过程必须将消息传递给CallNextHookEx函数,无需进一步处理,并应返回CallNextHookEx返回的值。

【wParam中】

指定一个NULL值。

【lParam的】

指向EVENTMSG结构,表示由钩子过程处理的消息。此参数仅在【码】参数为HC_GETNEXT时有效。

返回值

为了使系统在处理消息之前等待,返回值必须是系统应该等待的时间量(以时钟为单位)。(该值可以通过计算当前和先前输入消息中时间成员之间的差异来计算。)要立即处理消息,返回值应为零。返回值仅在挂钩代码为HC_GETNEXT时使用;否则会被忽略。

备注

JournalPlaybackProc挂接过程应将输入消息复制到【lParam的】参数。以前必须使用JournalRecordProc挂接过程记录该消息,该过程不应修改消息。

要重复检索相同的消息,挂钩过程可以多次调用,【码】参数设置为HC_GETNEXT,而不进行中断呼叫,【码】设置为HC_SKIP。

如果【码】是HC_GETNEXT,并且返回值大于零,则系统将休眠由返回值指定的毫秒数。当系统继续时,它会再次使用【码】设置为HC_GETNEXT来检索相同的消息。来自此新调用的返回值JournalPlaybackProc应为零;否则,系统将返回休眠指定的返回值的毫秒数,再次调用JournalPlaybackProc等等。系统似乎挂起。

与大多数其他全局钩子程序不同,JournalRecordProcJournalPlaybackProc钩子过程总是在设置钩子的线程的上下文中调用。

挂钩过程将控制权返回给系统后,消息将继续处理。如果【码】是HC_SKIP,挂钩过程必须准备在下次调用时返回下一个记录的事件消息。

应用程序通过在SetWindowsHookEx函数的调用中指定WH_JOURNALPLAYBACK钩子类型和挂接过程的地址来安装JournalPlaybackProc挂接过程。

一个Win32 JournalRecordProc挂钩过程不需要生活在动态链接库中。一个Win32 JournalRecordProc钩子程序可以生活在应用程序本身。

如果用户在日志播放期间按CTRL + ESC或CTRL + ALT + DEL,则系统将停止播放,取消挂起日志播放过程,并将WM_CANCELJOURNAL消息发布到日记应用程序。

如果挂钩过程返回WM_KEYFIRST到WM_KEYLAST的消息,则适用以下条件:

* EVENTMSG结构的【paramH】成员指定了按下的键的虚拟键代码。

* EVENTMSG结构的【*There's no way to specify a repeast count.】成员指定扫描码。

*无法指定重复计数。事件总是代表一个关键事件。

JournalPlaybackProc是应用程序定义或库定义的函数名称的占位符。

也可以看看

CallNextHookEx, EVENTMSG, JournalRecordProc, PeekMessage, SetWindowsHookEx, WM_CANCELJOURNAL