C++使用情况统计信息
C++ Usage Statistics
我已经在C++中创建了一个应用程序,并想知道如何实现使用情况统计系统,以便我可以收集有关用户如何使用该程序的一些数据。
例如。IP 地址、在应用程序中花费的小时数以及使用的操作系统。
从理论上讲,我知道如果必须的话,我可以自己编写代码,但我想知道是否有一个框架可以更轻松地做到这一点。 不幸的是,我无法在谷歌上找到任何东西。
虽然没有任何这样的框架,但你可以通过使用一些方法和技术来减少你必须做的工作(为了检索所有这些信息),我在下面尝试描述。请任何人随时纠正我。
让我们总结一下,我们需要哪些信息组来完成任务:
- 用户环境信息。我建议您查看Microsoft的WMI基础架构,特别是WMI类:桌面,文件系统,网络等。在应用程序中使用此类可以帮助您检索几乎所有类型的系统信息。但是,如果您对此不满意,请参阅#2。
- 应用程序和系统性能。在这些术语下,我指的是整体系统性能、处理器数量、操作系统中运行的进程等。若要检索这些数据,可以使用 NtQuerySystemInformation 函数。在它的帮助下,您将可以访问详细的系统进程信息、系统处理器性能信息(检索有关每个处理器的信息)信息等等。
-
用户相关信息。很难找到一个框架来做这些事情,所以我建议你简单地开始编写代码,记住你的要求:
- 计算每个按钮被按下的次数,每个文本字段被更改的次数,等等。
- 测量某种预定义序列中连续操作之间的延迟时间(例如,如果您有一个设置 GUI 表单,并且您希望用户非常快速地填写所有必需的文本字段,因此使用时间延迟测量可以为您提供信息,如果用户按照我们的预期行事或在 TextBox2 之后延迟 5 分钟)。
- 任何您可能感兴趣的内容。
那么,如何实现最后一项(用户相关信息)要求呢?至于我,我会做一些类似 foling 的事情(有些可能看起来很难实现或太毫无意义): - 创建一种基计数器类并从中派生一些控件(按钮、编辑等)。 - 在获取子句柄时使用鼠标或键控的 Windows 挂钩(例如,识别控件)。 - 使用回调类,它可以完成所有"脏"工作(计数,测量,执行其他操作)。
您可以将所有这些信息存储在文本文件或SQLite数据库中,或者存储在您喜欢的任何位置。
我建议看看DeskMetrics。这篇StackOverflow文章总结了这个问题。
构建自己的框架可能需要几个月的开发时间(除了维护)。使用Trackerbird软件分析之类的东西,您可以将DLL与您的应用程序集成,并在30分钟内开始跟踪,您将获得所有很酷的实时可视化。
免责声明:我隶属于公司。
相关文章:
- 正在查找文档以获得PS4平台的C++中的设备信息
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- 奇怪的(对我来说)返回声明 - 在谷歌上找不到任何关于它的信息
- 如何设置一个范围来提取我想要获得的信息
- 系统参数信息A 与 SPI_GETMOUSE 返回 0
- 为什么 gcovr 会生成空覆盖率统计信息?
- Qt 错误:QSqlQuery::value:尝试从表中检索统计信息时未定位在有效记录上 (QComboBox)
- 在C++中获取 Linux 网络统计信息
- 如何在 Windows 上从 C++11 统计信息对象的文件序列号中查找文件名
- 从向量C 调用播放器统计信息
- G++ 编译统计信息
- C++或 Scilab 或 Octave 或 R 中具有大量数据的统计信息
- Linux C++:访问网络统计信息
- C++:用于识别原始指针使用情况的统计信息
- 如何实现高效的C++运行时统计信息
- C++使用情况统计信息
- 我已经安装了 GPERFtools-2.0,但我无法获取 CPU 配置文件统计信息
- 获取netstat -s统计信息的Windows API
- 编写GUI以显示统计信息
- 是否有一种跨平台的方法可以在C++中获取网络统计信息