【发布时间】:2009-01-22 15:31:37
【问题描述】:
我需要使用现有的 winforms 应用程序并进入事件跟踪模式,希望尽可能减少摩擦。
我希望将用户执行的每个操作都视为一个简单的堆栈跟踪:
MainForm.LaunchThing_Click
ThingWindow.NameInput_Focus
ThingWindow.NameInput_TextChanged
ThingWindow.AddressInput_Focus
ThingWindow.OKButton_Click
等等。
- 如果这是一个 WPF 应用程序,我会在 ETW 中过滤所有 WClientInputMessage 类型的事件。
- 我不能简单地转储堆栈跟踪,因为这不会捕获用户之前的操作。
- 我可以为每个事件添加日志记录 [使用来自 this discussion 的推荐做法],但这是一个现有的应用程序,远 事件太多。另外,我很懒。必须是更好的方法。
- 我无法附加调试器,我希望将这些信息自动附加到来自现场测试用户的错误报告中,因为 [结果证明...] 没有人能准确地记住究竟是什么他们点击的东西的顺序是。
所以我想知道是否有人有任何好的技巧,可能使用子类化或反射来锁定 UI 事件。
性能并不是一个真正的问题。而且,如果我能参与到每一个事件中,那就足够了;我可以很容易地将它们过滤到相关的集合中。
【问题讨论】:
标签: .net winforms user-interface logging events