7

新しいテクノロジーへの移行を目標としているVB6アプリケーションの使用状況メトリックを取得しようとしています。それはかなり大規模であり(VB6が持つフォームの数などの制限に逆らってブラッシュアップするほど大きい)、ある種のカスタム監視自体を後付けすることは簡単な作業ではありません。

DeskMetricsのようなツール(私はそれらを選び出していません)が、あらゆるフォームにドロップできる、アプリケーションレベルの構成とローカル(オンサイト)セットのインストールを備えた、ある種のレガシーCOMコントロールを備えていることを望んでいました。 Webサービスのいくつかの統計を取得して、いくつかの決定を下すことができます。

でも:

  1. 私が見つけたこれらの追跡システムのいずれにも利用できる直接互換性のあるVB6ライブラリはありません

  2. お客様のサイトが必ずしもインターネットに完全に接続されているとは限らないため、より広いインターネットに接続されていないお客様のサイトにローカルにインストールできるプラットフォームを見つけるのに問題があります。

だから私の質問は、これらの要件を満たしている図書館/サードパーティはありますか、それとも私たち自身の非常に単純な追跡ソリューションをデータベースにロールバックし、ある種のレポートによってその情報を収集するのが最善ですか?

4

2 に答える 2

2

すでにGoogleアナリティクスを除外しましたか? そうでない場合は、これが解決策になる可能性があります

私にとってVB6にはしばらく時間がかかりましたが、これはうまくいくと確信しています

ユーザー コントロールを作成し、その横に Web ブラウザー コントロールを配置します。次に、コントロールを自分の 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 ファイルを調べて、関数とサブ定義 (Public Sub Private Function Friend Function など) と定義の名前を見つける小さなプログラムを作成しました。def の後に、 という行を挿入しましたDim cTrace as new clsTrace: cTrace.StartTrace(NameOfSourceFile.NameOfFunction)

サブ関数を終了するとクラスが破棄されるため、終了時に class_terminate が自動的に呼び出されます。正しく行われた場合、これにより、functions\subs のすべてのエントリと終了のインデントされたログ ファイルが生成されます。

出力を使用して、ボタンがクリックされた回数またはフォームが開かれた回数を判断できるはずです ("Start frmName.buttonName_Click" エントリを探します)。

于 2012-03-02T20:30:31.173 に答える