﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-LinjiangBao</title><link>http://www.cppblog.com/LinjiangBao/</link><description /><language>zh-cn</language><lastBuildDate>Tue, 09 Jun 2026 20:00:14 GMT</lastBuildDate><pubDate>Tue, 09 Jun 2026 20:00:14 GMT</pubDate><ttl>60</ttl><item><title>about hook</title><link>http://www.cppblog.com/LinjiangBao/archive/2010/03/31/111141.html</link><dc:creator>老鲍</dc:creator><author>老鲍</author><pubDate>Wed, 31 Mar 2010 04:35:00 GMT</pubDate><guid>http://www.cppblog.com/LinjiangBao/archive/2010/03/31/111141.html</guid><wfw:comment>http://www.cppblog.com/LinjiangBao/comments/111141.html</wfw:comment><comments>http://www.cppblog.com/LinjiangBao/archive/2010/03/31/111141.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/LinjiangBao/comments/commentRss/111141.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/LinjiangBao/services/trackbacks/111141.html</trackback:ping><description><![CDATA[<p>1.hook是系统消息处理流程中的一个点，位于消息从系统到处理该系统的窗口过程之间。hook会降低系统效率。<br>2.hook chains,很多这样的点构成的一个链，链中每个点是否按安装hook的先后顺序排列(是个问题，sdk中没有描述)。<br>3.hook可分为global hook和thread hook,global hook对与当前线程同桌面的所有thread有效,thread hook只对当前线程有效。<br>4.hook根据消息类型不同可分为<br>&nbsp;4.1 WH_CALLWNDPROC 和 WN_CALLWNDPROCRET<br>&nbsp;&nbsp;显然是hook wndproc, 后面那个是在wndproc之后<br>&nbsp;4.2 WH_CBT_HOOK<br>&nbsp;&nbsp;Computer-based training hook<br>&nbsp;&nbsp;before activating, creating, destroying, minimizing, maximizing, moving, or sizing a window; <br>&nbsp;&nbsp;before completing a system command;<br>&nbsp;&nbsp;before removing a mouse or keyboard event from the system message queue;<br>&nbsp;&nbsp;before setting the input focus;<br>&nbsp;&nbsp;before synchronizing with the system message queue. <br>&nbsp;4.3 WH_DEBUG<br>&nbsp;&nbsp;before calling hook procedures associated with any other hook in the system，在任何hook之前<br>&nbsp;4.4 WH_FOREGROUNDIDLE<br>&nbsp;&nbsp;foreground thread idle<br>&nbsp;4.5 WH_GETMESSAGE<br>&nbsp;&nbsp;顾名思义<br>&nbsp;4.6 WH_JOURNALPLAYBACK , WH_JOURNALRECORD<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; journal play back, insert message into the system message queue.<br>&nbsp;4.7 WM_KEYBOARD_LL , WM_KEYBOARD<br>&nbsp;4.8 WM_MOUSE_LL, WM_MOUSE</p>
<p>5.How to use the jornal play back hook?<br></p>
<img src ="http://www.cppblog.com/LinjiangBao/aggbug/111141.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/LinjiangBao/" target="_blank">老鲍</a> 2010-03-31 12:35 <a href="http://www.cppblog.com/LinjiangBao/archive/2010/03/31/111141.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>