------------------------------------------------------------------
大家好,我是平夏雨,微软拼音的测试工程师。今天向大家介绍一个跟测试相关的具体的编程技术——如何使用钩子机制动态监控输入法。
------------------------------------------------------------------
为了自动化测试输入法,我们经常需要动态的得到各种输入法程序的候选项。得到它们的方法有很多,例如可以使用内部的API,当然前提是可以得到这些API;使用UI Automation的机制,将来有机会可以有其他篇幅来介绍;另外就是今天我们今天要介绍的钩子机制。
钩子机制简介
钩子机制是Windows系统的一种标准机制。钩子程序能够截获Windows程序的各种消息并对其进行处理,有点像是一个后门程序。
钩子程序有很多种类型,例如:
· 键盘钩子可以监控各种键盘消息 (WH_KEYBOARD, WH_ KEYBOARD_LL)
· 鼠标钩子可以监控各种鼠标消息 (WH_MOUSE, WH_MOUSE_LL)
· 外壳钩子可以监控各种外壳事件消息 (WM_SHELL)
· 日志钩子可以监控从系统消息队列中取出的各种事件消息 (WH_JOURNALPLAYBACK, WH_JOURNALRECORD)
· 窗口过程钩子可以监控所有目标窗口的消息 (WH_CALLWNDPROC, WH_CALLWNDPROCRET)