标题说明了一切。在父窗口处理完传入的键盘消息后,如何让我的键盘钩子处理它们?阅读文档我发现有一个名为的值WH_CALLWNDPROCRET
正是这样做的,但我需要在WH_KEYBOARD
那里指定(当然要使它成为键盘挂钩),并且该值似乎不是一个位标志,所以我不能将两者结合起来。
背景:我正在为 Word 2013 编写一个加载项,它需要监视某些键并仅在Word 完成处理这些键后才采取适当的操作。我正在使用globalmousekeyhook项目进行挂钩。
标题说明了一切。在父窗口处理完传入的键盘消息后,如何让我的键盘钩子处理它们?阅读文档我发现有一个名为的值WH_CALLWNDPROCRET
正是这样做的,但我需要在WH_KEYBOARD
那里指定(当然要使它成为键盘挂钩),并且该值似乎不是一个位标志,所以我不能将两者结合起来。
背景:我正在为 Word 2013 编写一个加载项,它需要监视某些键并仅在Word 完成处理这些键后才采取适当的操作。我正在使用globalmousekeyhook项目进行挂钩。
您所指的库订阅了以下四个钩子:
当你订阅一个钩子时,你给系统一个回调你的代码,它将根据不同钩子类型的规则执行。回调将传递给您的信息也必须有不同的解释。这 4 个提供有关鼠标位置、击键等的信息。
您可以订阅许多不同类型的钩子。请参阅:挂钩概述
WH_CALLWNDPROCRET
yo 指的是其中之一。它具有不同的回调调用行为并将所有发送到窗口的消息传递给您。理论上,这些可能包括数百种可能的消息中的任何一种,而不仅仅是键盘和鼠标消息。
要回答您的问题,图书馆globalmousekeyhook
不能订阅除上述 4 个以外的任何其他钩子。
好消息是您可能可以重用库中的代码来实现您自己的订阅。
WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN, WM_SYSKEYUP
。结论 不,图书馆不能做你正在寻找的东西。是的,您可以通过重用该库中的代码来实现这一点。