用C#监视应用程序之间的消息

时间:2014-06-09 10:59:31

标签: c# dll hook code-injection

我想监视在运行时生成的Windows消息。为了实现这一点,我试图使用:

创建一个钩子
hook = SetWindowsHookEx(HookId, delegatedfunction, IntPtr.Zero, 0);

HookIdWH_MOUSE_LL = 14WH_KEYBOARD_LL = 13时,一切正常。上面的函数返回hook > 0,我可以监视击键和鼠标事件。但是,当我选择HookIdWH_CALLWNDPROC = 4WH_CALLWNDPROCRET = 12等任何其他WH_SYSMSGFILTER = 6时,上述函数会返回0,并且不会监视任何内容。

我尝试了很多不同的东西,在这些情况下,唯一似乎正确创建钩子的是当我使用以下代码使用dll注入时:

hook = SetWindowsHookEx(HookId, del, GetModuleHandle(fileName), 0);

这个问题是我的应用程序在一段时间后崩溃,我不知道为什么会发生这种情况,因为我过去没有使用过dll注入。

有些人可以澄清以下任何内容:

  

1)任何想法为什么需要一个dll注入来创建钩子   那些情况?

     

2)当我做一个dll时,我需要什么样的dll   注射?任何dll会不会或者我应该专门为我创建一个   情况?

0 个答案:

没有答案
相关问题