C++;使用统计 我在C++中做了一个应用程序,想知道如何使用一个使用统计系统,这样我就可以收集一些关于用户如何使用程序的数据。

C++;使用统计 我在C++中做了一个应用程序,想知道如何使用一个使用统计系统,这样我就可以收集一些关于用户如何使用程序的数据。,c++,usage-statistics,C++,Usage Statistics,例如,IP地址、在应用程序中花费的小时数和使用的操作系统。 理论上,我知道如果必须的话,我可以自己编写代码,但我想知道是否有一个框架可以让这更容易做到。不幸的是,我在谷歌上找不到任何东西。虽然没有任何这样的框架,但你可以通过使用一些方法和技术来减少你必须做的工作(为了检索所有这些信息),我试着在下面描述这些方法和技术。请,任何人都可以纠正我 让我们总结一下,完成任务需要哪些信息组: 用户环境信息。我建议您查看Microsoft的WMI基础架构,尤其是:、等。在应用程序中使用此类可以帮助您检索几

例如,IP地址、在应用程序中花费的小时数和使用的操作系统。


理论上,我知道如果必须的话,我可以自己编写代码,但我想知道是否有一个框架可以让这更容易做到。不幸的是,我在谷歌上找不到任何东西。

虽然没有任何这样的框架,但你可以通过使用一些方法和技术来减少你必须做的工作(为了检索所有这些信息),我试着在下面描述这些方法和技术。请,任何人都可以纠正我

让我们总结一下,完成任务需要哪些信息组:

  • 用户环境信息。我建议您查看Microsoft的WMI基础架构,尤其是:、等。在应用程序中使用此类可以帮助您检索几乎所有类型的系统信息。但如果您对此不满意,请参见第2页
  • 应用程序和系统性能。在这些术语下,我指的是总体系统性能、处理器计数、操作系统中运行的进程等。要检索这些数据,您可以使用功能。在它的帮助下,您可以访问详细的SystemProcessInformation、SystemProcessorPerformanceInformation(检索每个处理器的信息)信息以及更多信息
  • 用户相关信息。很难找到一个框架来做这些事情,因此我建议您只需开始编写代码,并牢记您的需求:
    • 计算每个按钮被按下的次数、每个文本字段被更改的次数等
    • 在某种预定义序列中测量连续动作之间的延迟时间(例如,如果您有一个设置gui表单,并且您希望用户能够非常快地填写所有必需的文本字段,那么如果用户按照我们的预期行事或在TextBox2之后延迟5分钟,则使用延时测量可以为您提供信息)
    • 任何你感兴趣的东西
那么,您如何实现最后一项(用户相关信息)需求呢?对于我来说,我会做如下事情(有些可能看起来很难实现或太无意义): -创建一种基本计数器类并从中派生一些控件(按钮、编辑等)。 -在获取子句柄(例如,识别控件)时,使用windows鼠标或键盘挂钩。 -使用回调类,它可以完成所有“脏”工作(计数、测量、执行其他操作)


您可以将所有这些信息存储在文本文件或SQLite数据库中,也可以存储在您喜欢的任何地方。

我建议您查看一下。这总结了问题。

构建您自己的框架可能需要数月的开发(除维护外)。使用类似这样的工具,你可以将DLL与应用程序集成,并在30分钟内开始跟踪,你就可以获得所有酷的实时可视化效果


免责声明:我隶属于该公司。

什么类型的应用程序?查询操作系统可能会从琐碎到中等难度。如果您这样做,请务必询问用户是否接受发送收集的数据。我知道我将停止使用任何未经我同意发送有关我的计算机数据的软件。+1到ereOn,并添加:collection with out许可在某些司法管辖区几乎肯定是非法的。@ereOn感谢您的指示,我很可能会在条款和协议中提到这一点,除此之外,如果用户希望不收集任何关于他的数据,我将在安装过程中取消对其的检查。*最具辩护意味的是将其添加到条款和协议中d协议和隐私政策。现在我考虑一下,我将让用户必须选中一个表示他们希望发送使用统计数据的框,而不是如果他们不希望发送统计数据就必须取消选中一个框