分析用户如何与C#Windows应用程序交互

分析用户如何与C#Windows应用程序交互,c#,.net,wpf,windows,winforms,C#,.net,Wpf,Windows,Winforms,我刚刚继承了一个C#windows应用程序代码库。这是一个相对较大的应用程序,有很多UI“元素”,我相信这些元素可能是由以前的开发人员添加的,与实际客户机之间几乎没有交互。这个应用程序是一个机器人控制系统,它在一个制造工厂运行,并且它有一些我见过的最复杂的UI(表单内部的表单内部的选项卡元素内部的表单等等) 我想做的第一件事之一是了解实际的车间员工如何与此应用程序交互。我已经向不同的主管发送了一份调查报告,但我也想获得一些经验数据 我想做的是: 我想以某种方式,捕捉用户每次按下按钮、控件等。。。

我刚刚继承了一个C#windows应用程序代码库。这是一个相对较大的应用程序,有很多UI“元素”,我相信这些元素可能是由以前的开发人员添加的,与实际客户机之间几乎没有交互。这个应用程序是一个机器人控制系统,它在一个制造工厂运行,并且它有一些我见过的最复杂的UI(表单内部的表单内部的选项卡元素内部的表单等等)

我想做的第一件事之一是了解实际的车间员工如何与此应用程序交互。我已经向不同的主管发送了一份调查报告,但我也想获得一些经验数据

我想做的是:

我想以某种方式,捕捉用户每次按下按钮、控件等。。。并将其记录到文件中。简单地说:

时间戳、控件名称、我可以捕获的任何其他酷数据(例如,程序运行状态)


困难在于,在这一点上,我不是真正的C#专家,我无法找到适当的方法向我的应用程序添加某种全局行为,这种行为可以做到这一点,并且不会影响现有的功能。任何建议都将不胜感激。

全球键盘和鼠标挂钩将是最佳选择。除非有人完全了解设计,并且能够评论如何扩展现有功能。这将有点困难。

至于按下的键盘键,您是否想过a?的第7章有一节介绍IL重写。您可以使用它在每个单击处理程序的开头插入日志语句。也许有一个更简单的方法…@mydogisbox IL注入可能比普通钩子要花更多的精力。@可能是丹麦语,这就是为什么它是一个注释而不是答案;-)我非常愿意从全局键盘和鼠标挂钩开始。你能给我举个例子,说明我将如何着手做这件事吗?:)@请参考我之前的问题。我在你问题的评论中贴了一个链接。它清楚地解释了每一步都在那里,并且它正在工作。请记住,全局钩子将捕获所有输入。即使是应用程序没有焦点的时候。