c#的局部钩子编程

上一篇 / 下一篇  2008-11-05 17:27:48 / 个人分类:自动化测试框架

  自动化工具的录制是采用了钩子原理,来捕获用户的动作。钩子本质是一段消息处理程序,它又分全局钩子和局部钩子,局部钩子只能捕获放松到本程序的消息,而全局钩子则可以捕获所有的消息。不过在c#中,实现局部钩子倒是挺简单,但FrameWork不支持全局钩子,只能通过DLL实现。

  今天说说局部钩子:钩子程序的关键是其处理程序,它是一个回调函数,在c#中就是代理delegate。意思就是所有我想要截获的消息都要先发送到钩子的处理程序,再由钩子处理程序决定如何处理本消息,在处理函数中我可以取得消息类型,发送消息的来源,直接终止掉这个消息等。

delegate int HookProc(int nCode,int wParam,IntPtr lParam)

大部分的钩子程序只要3个API函数:SetWindowsHookEx(),UnHookWindowsHookEx(),CallNextHookEx()

 


TAG: 自动化测试框架

 

评分:0

我来说两句

Open Toolbar