1

我对这个网站很陌生,对 hooking 和 C++ 也很陌生。

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

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

我们已经关注这个站点来收听窗口创建。我们使用WH_CBT了与鼠标相关的常量来代替鼠标,并进行了必要的更改来挂钩以创建窗口。但它不起作用。这是正确的做法吗?

如果上述方法与 MFC 窗口创建挂钩是错误的,那么请提出一种实现目标的方法。

4

1 回答 1

0

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

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

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

于 2013-08-02T10:35:50.187 回答