gpt4 book ai didi

c# - 在 C# (WinForms) 中拦截应用程序中所有控件的点击事件

转载 作者:太空狗 更新时间:2023-10-29 21:25:03 27 4
gpt4 key购买 nike

我想制作一个应用程序来拦截我应用程序所有形式的所有 UI 事件并将它们写入日志。然后可以使用此数据来查看哪些控件最常用,以什么顺序等。问题是我希望这会自动发生,而无需修改现有类。

我制作了一个原型(prototype),将方法附加到表单中所有控件的单击事件,但如何对所有表单完成此操作?反射在操作事件时需要一个目标对象,但只有启动窗体可以很容易地访问到。

有没有办法 Hook 对象的构造函数?然后我可以在新表单的所有事件中“注入(inject)”我的方法。或者也许还有另一种方法可以做到这一点。

提前致谢!

最佳答案

您可以安装 message filter .

消息过滤器是一个实现IMessageFilter 的对象。 WinForms 为每条通过线程消息循环的消息调用您的 PreFilterMessage 方法。这足以监视整个应用程序的用户输入(并为您提供操纵它的选项)。

关于c# - 在 C# (WinForms) 中拦截应用程序中所有控件的点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4279732/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com