通常我们捕获键盘消息会在WindowProc函数种用一个switch来监听WM_KEYUP和WM_KEYDOWN消息,当按下键盘时程序就会收到这个消息。但是,有一个前提是当焦点是在当前窗口时,这个WM_KEYUP和WM_KEYDOWN消息才会被捕获到。如果我们需要在任何情况下使用这个应用程序捕获到键盘的动作就需要使用钩子。
Hook(钩子)是一种在消息到达目标窗口前进行截获的技术。使用钩子主要使用以下三个函数:
SetWindowsHookEx:创建钩子
CallNextHookEx:将消息传给钩子链中的下一个钩子
UnhookWindowsHookEx:释放钩子
这些函数在windows上面使用没有问题,但是函数说明中可以看到以下文字:Windows CE: Unsupported。也就是说,wince并不支持钩子。
是不是真的不支持呢?只能说不直接支持钩子,我们可以使用直接获取钩子函数地址,然后调用的方法,来使用钩子。
具