我想创建一个应用程序来拦截应用程序所有形式的所有 UI 事件并将它们写入日志。然后可以使用这些数据来查看哪些控件最常用、按什么顺序等。问题是我希望这种情况自动发生,而不需要修改现有的类。
我制作了一个原型,将一个方法附加到表单中所有控件的单击事件,但是如何对所有表单执行此操作?反射在操作事件时需要一个目标对象,但只有启动形式才能轻松访问。
有没有办法挂钩对象的构造函数?然后我可以将我的方法“注入”到新表单的所有事件中。或者也许还有另一种方法可以做到这一点。
提前致谢!
您可以安装一个消息过滤器.
消息过滤器是一个实现了IMessageFilter
。 WinForms 调用您的PreFilterMessage
方法用于通过线程的消息循环的每条消息。这足以监视整个应用程序的用户输入(并为您提供操作它的选项)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)