我使用WH_KEYBOARD_LL钩子,总是向系统返回消息。
我想知道两种方式,哪种更好?我认为方式//1
更好的性能,因为它会立即向系统发回消息,而//2
必须完成其内容然后发回,但我看到几乎所有人都使用{{1} }。帮助我理解,谢谢!
//2
答案 0 :(得分:4)
它们都不正确。 Boilerplate实现应如下所示:
LRESULT CALLBACK DebugProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode >= 0) {
// do your stuff
//...
}
return CallNextHookEx(_l_hook, nCode, wParam, lParam);
}
你没有指定你实现的钩子的类型,所以如果你有任何理由改变模式是不可能的。始终瞄准“不”。如果有疑问,请使用MSDN Library中的代码示例。