如何挂钩MFC CWnd创建

时间:2013-08-02 09:51:22

标签: c# c++ mfc hook

我对这个网站很陌生,不熟悉钩子和C ++。

我想要挂钩创建MFC应用程序窗口:

可以使用C#代码完成吗?

我们已关注this网站收听窗口创建。我们使用了WH_CBT而不是鼠标相关的constana,并对窗口创建进行了必要的更改。但它没有用。这是正确的做法吗?

如果上面的方法错误地挂钩到MFC窗口创建,那么请建议一种方法来实现目标。

1 个答案:

答案 0 :(得分:0)

不,你不能从C#安装那种类型的钩子。

只有两个不需要DLL注入的钩子:低级键盘和鼠标钩子(WH_LL_KEYBOARDWH_LL_MOUSE)。由于托管DLL无法注入非托管进程,因此无法从C#中使用任何其他类型的钩子。

您需要在本机代码中编写此挂钩DLL;像C或C ++这样的东西。除此之外,CBT钩子(WH_CBT)正是你想要的。虽然此挂钩会在创建任何窗口时提醒您,而不仅仅是那些使用MFC框架的窗口。你必须找出一些方法来过滤掉这些误报。