7

我们正在尝试获取一些 VB6 应用程序的使用指标,我们的目标是迁移到更新的技术中。它相当庞大(如此之大以至于它突破了 VB6 对表单数量等的限制)并且改造某种自定义监控本身并不是一项小任务。

我希望像DeskMetrics 之类的工具(我没有将它们单独列出)具有某种遗留 COM 控件,我们可以将其放入每个表单中,并通过一些应用程序级别的配置和安装本地(现场)设置对于 Web 服务,我们可以捕获一些统计数据,以便我们做出一些决定。

然而:

  1. 我能找到的任何这些跟踪系统都没有直接兼容的 VB6 库

  2. 因为我们客户的站点不一定完全连接到 Internet,所以我们很难找到可以在未连接到更广泛的 Internet 的客户站点本地安装的任何平台。

所以我的问题是,是否有任何图书馆/第三方可以满足这些要求,或者我们最好将我们自己的非常简单的跟踪解决方案滚动到数据库并通过某种报告收集这些信息。

4

2 回答 2

2

您是否已经排除了谷歌分析?如果不是,这可能是一个解决方案

VB6 对我来说已经有一段时间了,但很确定这会起作用

创建一个用户控件并在其中放置一个 Web 浏览器控件。然后让控件自动导航到您自己的网站到一个只有分析代码的空白页面。在查询字符串中添加显示的表单。这将为您提供基本的表单使用信息。

如果您需要进一步跟踪事物,请向控件添加一个方法来记录事件并使用 ExecScript 调用分析 api 以传递该表单所需的信息。

一旦控件开始工作,只需将其放到每个表单上即可。(当然,您会希望它在运行时自行隐藏)

当然,这一切都依赖于您的客户可以从他们的工作站访问互联网

于 2012-03-07T11:58:58.510 回答
0

我最近确实有一个项目,我需要做类似的事情。我创建了一个名为 clsTrace 的类

Option Explicit
Private m_RoutineName As String
Public Sub StartTrace(RoutineName As String)
    m_RoutineName = RoutineName
    TraceIndent = TraceIndent + 1
    Call writeout("Start " & RoutineName)
End Sub
Private Sub EndTrace(s As String)
    Call writeout("End " & m_RoutineName)
    TraceIndent = TraceIndent - 1
End Sub
Private Sub Class_Terminate()
    Call EndTrace(m_RoutineName)
End Sub
Private Sub writeout(sMessage As String)
    'write to database, file, screen, etc
End Sub

添加了一个名为的全局变量TraceIndent

然后我编写了一个小程序来查看frm、bas、cls 文件并找到函数和子defs(例如Public Sub Private Function Friend Function 等)以及defs 的名称。在 def 之后,我插入了Dim cTrace as new clsTrace: cTrace.StartTrace(NameOfSourceFile.NameOfFunction).

因为一个类在退出子\函数时被销毁,class_terminate 将在退出时自动调用。如果操作正确,这将生成函数\subs 的每个进入和退出的缩进日志文件。

您应该能够使用输出来确定单击按钮的次数或打开表单的次数(查找“Start frmName.buttonName_Click”条目)。

于 2012-03-02T20:30:31.173 回答