如何在c#中跟踪windows事件

Posted

技术标签:

【中文标题】如何在c#中跟踪windows事件【英文标题】:How to track windows events in c# 【发布时间】:2014-04-15 04:35:16 【问题描述】:

谁能建议我如何通过 c# 代码跟踪 windows 事件。例如,如果用户打开 MS Paint 并绘制一些东西,保存并关闭窗口,然后如何跟踪它(所有步骤)。 完成活动的可能行动。用户可以遵循任何排列组合来完成此操作。

    打开 MS 画图:- 开始->程序->附件->画图 b 开始 -> 运行 -> MsPaint -> 输入 c windowskey + r(打开运行提示)-> mspaint -> 输入 d 双击 mspaint 快捷方式。 画一些东西(鼠标和键盘事件) 打开保存对话框:- a Ctrl +s b Alt F + S c 点击文件菜单->选择保存 d 点击文件菜单 -> 选择另存为。 保存文件 关闭 MS 油漆: 一个 Alt + F4 b 点击十字按钮 c Alt F + Exit d 点击文件菜单->退出 e 从任务栏中(右键单击任务栏中的 mspaint 并选择关闭)。

Window 触发一些事件来完成每个请求。所以请建议我如何追踪它。 window 是否提供任何 API 来获取此信息。

【问题讨论】:

听起来您正在寻找键盘记录器,我相信互联网上的某个地方有开源的。 更多的是在事件跟踪方面,而不仅仅是记录密钥。请参阅第 3 点有 4 种方法可以打开“保存对话框”。所以按键或按键组合并不重要,但结果(保存对话框)很重要。所以我必须跟踪指示操作系统打开“保存对话框”的窗口事件(肯定是一些窗口事件)。如果我明白了,那么走哪条路都没有关系。不是吗? 如果您解释更多您尝试使用这些信息做什么,我们可能会提供更好的帮助,例如您是否尝试以编程方式复制某些自动化测试的步骤,或者您是否尝试记录演示,因此仅捕获动作的图像会更重要吗?不要陷入XY Problem!与其问我们如何记录每条消息,不如问我们如何解决您认为记录每条消息会解决的问题。 好的。正如我解释的那样,假设我有一个任务,我必须打开 MS 绘图,绘制矩形,保存并关闭它。我必须记录作为管理员我是如何做到这一点的步骤(Windows 事件)。然后作为最终用户,我必须执行相同的活动,然后我必须检查用户是否以正确的方式执行了这些步骤。如果不是,那么解决方案是什么(以某些 UI 格式执行管理步骤,如屏幕截图)。 这里最终用户可能会以不同于管理员的方式打开画图,但最终结果是打开了 MS 画图。打开“保存对话框”也是如此。最终用户可能会遵循不同的步骤,但“保存对话框应该打开”。因此,要检查用户是否遵循相同的步骤将是“保存对话框打开与否”。希望它能帮助您形象化问题。 【参考方案1】:

您可以通过观察窗口EventLog来捕获窗口事件。

点击此链接了解更多详情:http://www.codeproject.com/Articles/4857/A-realtime-event-log-monitoring-tool

MSDN 例子更合适:http://msdn.microsoft.com/en-us/library/vstudio/system.diagnostics.eventlog.entrywritten

【讨论】:

谢谢。我的要求有点不同。请检查上面的对话。

以上是关于如何在c#中跟踪windows事件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# windows 窗体中使用事件作为方法?

C#如何在 Windows 窗体应用程序中使用事件

如何跟踪其他应用程序的事件

当我在本地主机中删除谷歌分析时,如何忽略整个网站的 ga() 事件跟踪代码?

如何在 C# 中使用 SpInprocRecoContext 识别语音事件?

如何在 C# 中跟踪代码执行