2010-11-01 24 views
0

我知道Win32中存在钩子,但我不需要挂钩整个系统,并且它是低级别的。任何高层次的库或框架在C#中钩住应用程序中的所有事件?

我要的是一些容易喜欢WordPress的框架,但对于WinForm的,让我勾例如检测所有文本框休假在我自己的应用程序中所有事件或任何形式的关闭。

这是存在吗?在技​​术上可行还是仅Microsoft可以在.NET版本X.X中这样做?

+0

为什么人们无缘无故投票呢?如果他们不知道答案或问题对他们来说太过先进? – user310291 2010-11-01 10:53:50

+0

upvoted为您平衡。如果你觉得有帮助,也许你会分享爱心并且提出我的答案。 ;-) – 2010-11-04 18:05:27

回答

2

看一看ManagedSpy。这是一个非常类似于Spy ++的应用程序,但是对于托管应用程序。它几年前出现在一个MSDN Magazine杂志中。

当您运行ManagedSpy中,你可以将它连接到正在运行的.Net进程。它会反映程序集并查找各种事件(有一些过滤功能只能看到某些事件),然后附加到它们并输出它们的触发顺序。

还有source code for ManagedSpy,所以你可以看到他们是如何做的事情,并利用这些想法来构建你所需要的。

+0

我知道这存在,但不记得它被称为! :D – 2010-11-04 18:28:36

+0

我只记得因为那个问题发生在我的邮箱中,我已经花了很多时间来计算一些WinForms的事件顺序。 ManagedSpy当月保存了我的屁股。 – 2010-11-04 19:01:31

0

有没有简单的方法来做到这一点,因为我知道。有些外部工具可以帮助(如Spy ++),但我相信它们在Windows消息级而不是.NET事件级别上运行。

如果你真的需要做此级别的监视你的应用程序,你需要注册事件处理程序上的每一个对象,你要监视。您可以考虑编写遍历每个Form的控制树的代码并注册它们的事件,以便在创建表单后启动时运行它。

相关问题