标题：蜜汁山药球
主料辅料
鸡皮糙山药..750 克
蜜桂花....50 克
豆沙....150 克
白糖.....75 克
黑芝麻....25 克
湿淀粉....75 克
瓜仁.....10 克
熟猪油...750 克
蜜桔饼...20 克（约耗150）
蜂蜜.....25 克
烹制方法
1. 山药洗净，煮熟去皮，用刀平压成泥，盛入钵中，加湿淀粉拌匀。
2. 黑芝麻炒熟，去壳碾碎。瓜仁、蜜桔饼切成丁。和豆沙一起拌匀，先搓成长条，然后揉成直径2 厘米大小的甜馅。
3. 将适量山药泥揿平，包入馅心，形如汤元大小，即为山药球生坯。
4. 炒锅置旺火上，下入熟猪油，烧至八成热，放入山药球炸8 分钟，边炸，边用勺推动，至球面呈粉白色时，用漏勺捞出。
5. 炒锅置旺火上，下入清水150 克，加蜂蜜、白糖烧沸，再移到中火上熬至稠浓，倒入炸好的山药球粘满蜜汁，起锅盛盘，撒上蜜桂即可。
工艺关键
山药泥中加少许汤圆粉，不但易于成型，而且口感软糯。
风味特点
“蜜汁山药球”系武穴市特色甜菜之一。山药自古被视为虚佳品。据《本草纲目》记载：“补虚赢，除寒热邪气，补中，益气力，长肌肉，强阴..”武穴种植山药有300 多年的历史梅川地区生产的一种山药，其形如人的脚掌，表皮褐色，肉质白色和浅黄色两种，粉糯味甜，俗称“脚板山药”，用这种山药制作此菜，色似柠檬，可口甜糯。

科学家
胡克(Robert Hooke，1635-1703)
英国物理学家、天文学家。1635年7月18日生于威特岛的弗雷施瓦特。其父是教区牧师。1653年入牛津基督教会学院后胡克结识了玻意耳。1655年胡克成为玻意耳的助手。1662年起直到逝世一直担任皇家学会实验管理员。1663年胡克获得了牛津大学文学学士学位，并且被选为皇家学会会员。1665年胡克任格雷山姆学院几何学、地质学教授，并从事天文观测工作。1666年伦敦大火后，他担任测量员以及伦敦市政检查官，参加了伦敦重建工作。1676年他公布了著名的弹性定律。1677年到1682年任皇家学会干事。1703年3月3日逝世于伦敦，终年68岁。
胡克是17世纪英国最杰出的科学家之一。他在力学、光学、天文学等多方面都有重大成就。他所设计和发明的科学仪器在当时是无与伦比的。
在光学方面，胡克是光的波动说的支持者。1655年，胡克提出了光的波动说，他认为光的传播与水波的传播相似。1672年胡克进一步提出了光波是横波的概念。在光学研究中，胡克更主要的工作是进行了大量的光学实验，特别是致力于光学仪器的创制。他制作或发明了显微镜、望远镜等多种光学仪器。
胡克在力学方面的贡献尤为卓着。他曾为研究开普勒学说作出了重大成绩。在探讨万有引力的过程中，他首先发现了引力和距离平方成反比的规律。在研究引力可以提供约束行星沿闭合轨道运动的向心力问题上，1662年和1666年间，胡克做了大量实验工作。他支持吉尔伯特的观点，认为引力和磁力相类似。1664年胡克曾指出彗星靠近太阳时轨道是弯曲的。他还为寻求支持物体保持沿圆周轨道的力的关系而作了大量实验。1674年他根据修正的惯性原理，从行星受力平衡观点出发，提出了行星运动的理论，在1679年给牛顿的信中正式提出了引力与距离平方成反比的观点，但由于缺乏数学手段，还没有得出定量的表示。
胡克定律（弹性定律），是胡克最重要发现之一，也是力学的最重要基本定律之一。在现代，仍然是物理学的重要基本理论。胡克定律指出：“在弹性限度内，弹簧的弹力f和弹簧的长度变化量x成正比，即f = -kx。k是物质的弹性系数，它由材料的性质所决定，负号表示弹簧所产生的弹力与其伸长（或压缩）的方向相反。”为了证实这一事实，胡克曾做了大量实验，包括各种材料所构成的各种形状的弹性体。
胡克在天文学、生物学等方面也有贡献。它曾用自己制造的望远镜观测了火星的运动。用自己制造的显微镜观察植物组织，于1665年发现了植物细胞（实际上看到的是细胞壁），并命名为“cell”，至今仍被使用。
胡克的发现、发明和创造是极为丰富的。他曾协助玻意耳发现了玻意耳定律。他曾发明过空气唧筒、发条控制的摆轮、轮形气压表等多种仪器。他还同惠更斯各自独立发现了螺旋弹簧的振动周期的等时性等。此外胡克还研究过肥皂泡的光彩、云母的颜色等许多光学现象。胡克在光学和力学方面是仅次于牛顿的伟大科学家。
胡克定律
胡克定律是力学基本定律之一。适用于一切固体材料的弹性定律，它指出：在弹性限度内，物体的形变跟引起形变的外力成正比。这个定律是英国科学家胡克发现的，所以叫做胡克定律。
胡克定律的表达式为f=kx，其中k是常数，是物体的倔强系数。在国际单位制中，f的单位是牛，x的单位是米，它是形变量（弹性形变），k的单位是牛/米。倔强系数在数值上等于弹簧伸长（或缩短）单位长度时的弹力
钩子
Hook解释
Hook是Windows中提供的一种用以替换DOS下“中断”的系统机制，中文译为“挂钩”或“钩子”。在对特定的系统事件进行hook后，一旦发生已hook事件，对该事件进行hook的程序就会受到系统的通知，这时程序就能在第一时间对该事件做出响应。
另一解释
钩子(Hook)，是Windows消息处理机制的一个平台，应用程序可以在上面设置子程以监视指定窗口的某种消息，而且所监视的窗口可以是其他进程所创建的。当消息到达后，在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。
钩子实际上是一个处理消息的程序段，通过系统调用，把它挂入系统。每当特定的消息发出，在没有到达目的窗口前，钩子程序就先捕获该消息，亦即钩子函数先得到控制权。这时钩子函数即可以加工处理（改变）该消息，也可以不作处理而继续传递该消息，还可以强制结束消息的传递。
Hook原理
每一个Hook都有一个与之相关联的指针列表，称之为钩子链表，由系统来维护。这个列表的指针指向指定的，应用程序定义的，被Hook子程调用的回调函数，也就是该钩子的各个处理子程。当与指定的Hook类型关联的消息发生时，系统就把这个消息传递到Hook子程。一些Hook子程可以只监视消息，或者修改消息，或者停止消息的前进，避免这些消息传递到下一个Hook子程或者目的窗口。最近安装的钩子放在链的开始，而最早安装的钩子放在最后，也就是后加入的先获得控制权。
Windows 并不要求钩子子程的卸载顺序一定得和安装顺序相反。每当有一个钩子被卸载，Windows 便释放其占用的内存，并更新整个Hook链表。如果程序安装了钩子，但是在尚未卸载钩子之前就结束了，那么系统会自动为它做卸载钩子的操作。
钩子子程是一个应用程序定义的回调函数(CALLBACK Function)，不能定义成某个类的成员函数，只能定义为普通的C函数。用以监视系统或某一特定类型的事件，这些事件可以是与某一特定线程关联的，也可以是系统中所有线程的事件。
系统钩子与线程钩子
SetWindowsHookEx()函数的最后一个参数决定了此钩子是系统钩子还是线程钩子。
线程钩子用于监视指定线程的事件消息。线程钩子一般在当前线程或者当前线程派生的线程内。
系统钩子监视系统中的所有线程的事件消息。因为系统钩子会影响系统中所有的应用程序，所以钩子函数必须放在独立的动态链接库(DLL) 中。系统自动将包含“钩子回调函数”的DLL映射到受钩子函数影响的所有进程的地址空间中，即将这个DLL注入了那些进程。
几点说明：
（1）如果对于同一事件（如鼠标消息）既安装了线程钩子又安装了系统钩子，那么系统会自动先调用线程钩子，然后调用系统钩子。
（2）对同一事件消息可安装多个钩子处理过程，这些钩子处理过程形成了钩子链。当前钩子处理结束后应把钩子信息传递给下一个钩子函数。
（3）钩子特别是系统钩子会消耗消息处理时间，降低系统性能。只有在必要的时候才安装钩子，在使用完毕后要及时卸载。
Hook的应用模式
观察模式
最为常用，像Windows提供的SetWindowHook就是典型地为这类应用准备的。而且这也是最普遍的用法。
这个模式的特点是，在事情发生的时候，发出一个通知信息。观察者只可以查看过程中的信息，根据自己关心的内容处理自己的业务，但是不可以更改原来的流程。
如全局钩子中，经常使用的鼠标消息、键盘消息的监视等应用。金山词霸屏幕取词的功能是一个典型的应用（具体技术可以参考此类文章）。
注入模式
这个模式和观察模式最大的不一样的地方在于，注入的代码是为了扩展原始代码的功能业务。插件模式是此类模式的典型案例。
不管瘦核心的插件系统（如Eclipse）还是胖核心的插件系统（如Delphi、Visual Studio等IDE环境），其对外提供的插件接口都是为了扩展本身系统的功能的。
这种扩展的应用方式的典型特点，就是新的扩展代码和原来的代码会协调处理同类业务。
替换模式
如果针对应用目的不同，可以叫修复模式或破解模式。前者是为了修改系统中的BUG，后者是为了破解原有系统的限制。
很多黑客使用此种模式，将访问加密锁的DLL中的导出表，替换成自己的函数，这样跳过对软件的控制代码。这类应用的难点是，找出函数的参数。
这类模式的特点是，原有的代码会被新的代码所替换。
前面三个是基本模式，还有很多和实际应用相关的模式。
集权模式
此类模式的出现，大都是为了在全部系统中，统一处理某类事情。它的特点不在于注入的方式，而在于处理的模式。
这个模式，大都应用到某类服务上，比如键盘服务，鼠标服务，打印机服务等等特定服务上。通过统一接管此类服务的访问，限制或者协调对服务的访问。
比如键盘锁功能的实现，就是暂时关闭键盘的所有应用。
这类模式的特点主要会和特点服务有关联。
修复模式
替换模式的一种，这里强调的是其应用的目的是为了修复或扩展原有系统的功能。
破解模式
替换模式的一种，这里强调的是其应用的目的是为了跳过原有系统的一部分代码。如加密检测代码，网络检测代码等等。
插件模式
注入模式的一种，在系统的内部直接依靠HOOK机制进行扩展业务功能。
共享模式
这类应用中，经常是为了获取对方的数据。必然我希望获取对方系统中，所有字符串的值。可以通过替换对方的内存管理器，导出所有字符串。
这个应用比较特殊。不过其特点在于，目的是达到系统之间的数据共享。
其实现，可能是观察模式，也可能是替换模式。
VB中的Hook技术应用
一、Hook简介
Hook这个东西有时令人又爱又怕，Hook是用来拦截系统某些讯息之用，例如说，我们想
让系统不管在什么地方只要按个Ctl-B便执行NotePad，或许您会使用Form的KeyPreview
，设定为True，但在其他Process中按Ctl-B呢？那就没有用，这是就得设一个Keyboard
Hook来拦截所有Key in的键；再如：MouseMove的Event只在该Form或Control上有效，如果希望在Form的外面也能得知Mouse Move的讯息，那只好使用Mouse Hook来栏截Mouse
的讯息。再如：您想记录方才使用者的所有键盘动作或Mosue动作，以便录巨集，那就
使用JournalRecordHook，如果想停止所有Mosue键盘的动作，而放(执行)巨集，那就
使用JournalPlayBack Hook；Hook呢，可以是整个系统为范围(Remote Hook)，即其他
Process的动作您也可以拦截，也可以是LocalHook，它的拦截范围只有Process本身。
Remote Hook的Hook Function要在.Dll之中，Local Hook则在.Bas中。
在VB如何设定Hook呢？使用SetWindowsHookEx()
Declare Function SetWindowsHookEx Lib 'user32' Alias 'SetWindowsHookExA' _
(ByVal idHook As Long， _
ByVal lpfn As Long， _
ByVal hmod As Long， _
ByVal dwThreadId As Long) As Long
idHook代表是何种Hook，有以下几种
Public Const WH_CALLWNDPROC = 4
Public Const WH_CALLWNDPROCRET = 12
Public Const WH_CBT = 5
Public Const WH_DEBUG = 9
Public Const WH_FOREGROUNDIDLE = 11
Public Const WH_GETMESSAGE = 3
Public Const WH_HARDWARE = 8
Public Const WH_JOURNALPLAYBACK = 1
Public Const WH_JOURNALRECORD = 0
Public Const WH_KEYBOARD = 2
Public Const WH_MOUSE = 7
Public Const WH_MSGFILTER = (-1)
Public Const WH_SHELL = 10
Public Const WH_SYSMSGFILTER = 6
WH_CALLWNDPROC 当调用SendMessage时
WH_CALLWNDPROCRET 当SendMessage的调用返回时
WH_GETMESSAGE 当调用GetMessage 或 PeekMessage时
WH_KEYBOARD 当调用GetMessage 或 PeekMessage 来从消息队列中查询WM_KEYUP 或 WM_KEYDOWN 消息时
WH_MOUSE 当调用GetMessage 或 PeekMessage 来从消息队列中查询鼠标事件消息时
WH_HARDWARE 当调用GetMessage 或 PeekMessage 来从消息队列种查询非鼠标、键盘消息时
WH_MSGFILTER 当对话框、菜单或滚动条要处理一个消息时。该钩子是局部的。它时为那些有自己的消息处理过程的控件对象设计的。
WH_SYSMSGFILTER 和WH_MSGFILTER一样，只不过是系统范围的
WH_JOURNALRECORD 当WINDOWS从硬件队列中获得消息时
WH_JOURNALPLAYBACK 当一个事件从系统的硬件输入队列中被请求时
WH_SHELL 当关于WINDOWS外壳事件发生时，譬如任务条需要重画它的按钮.
WH_CBT 当基于计算机的训练(CBT)事件发生时
WH_FOREGROUNDIDLE 由WINDOWS自己使用，一般的应用程序很少使用
WH_DEBUG 用来给钩子函数除错
lpfn代表Hook Function所在的Address，这是一个CallBack Fucnction，当挂上某个
Hook时，我们便得定义一个Function来当作某个讯息产生时，来处理它的Function
，这个Hook Function有一定的叁数格式
Private Function HookFunc(ByVal ncode As Long， _
ByVal wParam As Long， _
ByVal lParam As Long) As Long
nCode 代表是什么请况之下所产生的Hook，随Hook的不同而有不同组的可能值
wParam lParam 传回值则随Hook的种类和nCode的值之不同而不同。
因这个叁数是一个 Function的Address所以我们固定将Hook Function放在.Bas中，
并以AddressOf HookFunc传入。至于Hook Function的名称我们可以任意给定，不一
定叫 HookFunc
hmod 代表.DLL的hInstance，如果是Local Hook，该值可以是Null(VB中可传0进去)，
而如果是Remote Hook，则可以使用GetModuleHandle('.dll名称')来传入。
dwThreadId 代表执行这个Hook的ThreadId，如果不设定是那个Thread来做，则传0(所以
一般来说，Remote Hook传0进去)，而VB的Local Hook一般可传App.ThreadId进去
值回值如果SetWindowsHookEx()成功，它会传回一个值，代表目前的Hook的Handle，
这个值要记录下来。
因为A程式可以有一个System Hook(Remote Hook)，如KeyBoard Hook，而B程式也来设一
个Remote的KeyBoard Hook，那么到底KeyBoard的讯息谁所拦截？答案是，最后的那一个
所拦截，也就是说A先做keyboard Hook，而后B才做，那讯息被B拦截，那A呢？就看B的
Hook Function如何做。如果B想让A的Hook Function也得这个讯息，那B就得呼叫
CallNextHookEx()将这讯息Pass给A，于是产生Hook的一个连线。如果B中不想Pass这讯息
给A，那就不要呼叫CallNextHookEx()。
Declare Function CallNextHookEx Lib 'user32' _
(ByVal hHook As Long， _
ByVal ncode As Long， _
ByVal wParam As Long， _
lParam As Any) As Long
hHook值是SetWindowsHookEx()的传回值，nCode， wParam， lParam则是Hook Procedure
中的三个叁数。
最后是将这Hook去除掉，请呼叫UnHookWindowHookEx()
Declare FunctionUnhookWindowsHookExLib 'user32' (ByVal hHook As Long) As Long
hHook便是SetWindowsHookEx()的传回值。此时，以上例来说，B程式结束Hook，则换A可
以直接拦截讯息。
KeyBoard Hook的范例
Hook Function的三个叁数
nCode wParam lParam 传回值
HC_ACTION 表按键Virtual Key 与WM_KEYDOWN同 若讯息要被处理传0
或 反之传1
HC_NOREMOVE
Public hHook As Long
Public Sub UnHookKBD()
If hnexthookproc &lt；&gt； 0 Then
UnhookWindowsHookExhHook
hHook = 0
End If
End Sub
Public Function EnableKBDHook()
If hHook &lt；&gt； 0 Then
Exit Function
End If
hHook = SetWindowsHookEx(WH_KEYBOARD， AddressOf MyKBHFunc， App.hInstance， App.ThreadID)
End Function
Public Function MyKBHFunc(ByVal iCode As Long， ByVal wParam As Long， ByVal lParam As Long) As Long
MyKBHFunc = 0 '表示要处理这个讯息
If wParam = vbKeySnapshot Then '侦测 有没有按到PrintScreen键
MyKBHFunc = 1 '在这个Hook便吃掉这个讯息
End If
Call CallNextHookEx(hHook， iCode， wParam， lParam) '传给下一个Hook
End Function
[1]
只要将上面代码放在VB的模块中，用标准VB程序就可以了，当运行该程序后，就能拦截所有键盘操作。
勾手
篮球领域的一个动作，中锋时常运用这个动作，指单手将手臂伸直，用手腕的力量将球投出
同名歌曲
HOOK SONG是近些年刚刚出现的一种音乐形式，在日韩的HOOK SONG较为发达，例如在08年在韩国大红大紫的NOBODY(WONDER GIRLS)[2],09年的SORRY SORRY(Super Junior)[3]等等，再比如10年B宝的BABY[4]还有在网络上红起来的公主的FRIDAY等，但总的来说，日韩流行乐界的HOOK SONG最为发达。
HOOK SONG在国内并没有统一的中文叫法，很多乐迷管它叫做口水歌。
与此同时，HOOK也是歌曲中的某种成分，如同CHORUS,VERSE等歌曲组成一样，HOOK也是流行乐中的歌曲组成成分一样，但特殊的是，HOOK并非CHORUS那么必要，也不是固定在曲目中的某个成分，最特殊的是，它可以存在于一首歌的任何地方，甚至超出歌曲本身，比如说，现在提到NOBODY你会想到什么？I WANNA NOBODY NOBODY BUT U?那支舞？所以说，就对于NOBODY这首歌而言，副歌(CHORUS)和舞都是这首歌的HOOK。而有些人将HOOK单纯理解为CHORUS是不正确的，对于歌曲本身来说，HOOK可以是简洁的音乐和单纯的歌词反复[5]，歌曲开头那段钢琴，BAD ROMANCE里的吼叫，副歌过渡的鼓点，或者一些很有味的歌词……他们都是HOOK，也可以叫做歌曲记忆点（无定称），一首好歌就是由很多hook搭建起来的[6]。
但请注意的是，有HOOK的歌并不一定就是HOOK SONG。HOOK SONG说白了，只是一种形式，并不成体系，几乎每首歌都有HOOK，比如我们很熟悉的WE ARE YOUNG的副歌也可以算一个HOOK，但是没有人把WE ARE YOUNG叫HOOK SONG，想想HOOK的中文名字：口水歌[7]，口水歌是登不了大雅之堂的。