最近工作上面要求把Windows消息处理放到Dll里面去做消息处理,Google了一下,相关问题不多,且更偏向于外挂等方面的问题。
这里呢,简单来做一个备忘吧。
通过上面我们可以得知以下简单结论:
1.我们需要一个捕获消息的方法
2.捕获消息之后呢,仍然需要一个处理消息的方法
方案一:Hook
SetWindowLongPtr:该函数改变指定窗口的属性,我们用它来将WndProc劫持,以此来获取来自Windows消息。
CallWindowProc:这里呢,我们需要将我们并不需要的消息返还给原有窗口,借此来保障窗口的正常运行
首先,我们需要构建一个自己的消息处理,类似WndProc即可(此处示例只是为了获取按键按下和弹起,鼠标需要对WM_MOUSEMOVE等进行过滤即可
static WNDPROC oWndProc = NULL;
LRESULT APIENTRY KeyBoardProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
//Put your code here
if ((WM_KEYUP == uMsg || WM_KEYDOWN