我需要采取现有的Winforms应用程序并放入事件跟踪模式,希望尽可能少摩擦。如何在winforms中创建自动UI事件跟踪?
我希望看到的每一个动作,用户需要一个简单的堆栈跟踪前瞻性的事情:
MainForm.LaunchThing_Click
ThingWindow.NameInput_Focus
ThingWindow.NameInput_TextChanged
ThingWindow.AddressInput_Focus
ThingWindow.OKButton_Click
等。
- 如果这是一个WPF应用程序,我会做一些类似于在ETW中过滤所有类型为WClientInputMessage的事件。
- 我不能简单地转储堆栈跟踪,因为它不捕获用户的先前操作。
- 我可以将日志记录添加到每个单个事件中[使用来自this discussion的推荐做法],但是这是一个现有的应用程序,其中远远事件太多。另外,我很懒。得到更好的方法。
- 我不能附加一个调试器,我想获得这个信息自动附加到测试用户在现场的错误报告,因为[事实证明...]没有人能够准确地记得他们的顺序是什么点击是。
所以我想知道如果任何人有任何好的技巧,使用子类或反射也许,锁定到UI事件。
表现不是真正的问题。如果我能够在每一场比赛中获得一席之地,那就够了。我可以很容易地将它们过滤到相关集。
您的解决方案更加清洁,+1。也许还可以在某个地方包含一个例程来自动附加到给定表单上的相关控件? – 2009-01-22 16:22:52