これを行うためのツールはありますか?ちょうどウェブサイトのような同じ基本的な理由のために?Win32アプリケーションの使用状況の統計情報を収集するツールはありますか?
UPDATE --- 私はなど、
これを行うためのツールはありますか?ちょうどウェブサイトのような同じ基本的な理由のために?Win32アプリケーションの使用状況の統計情報を収集するツールはありますか?
UPDATE --- 私はなど、
のためもありでkはあなたには、いくつかのcoverage analysisツールが必要ですか?
私は過去にこのようなことをしました。
これを行うには2つの方法があります。
アクションを使用している場合、それはTActionList.OnExecuteハンドラにコードを配置することによって、UIの使用状況を追跡することは非常に簡単です:アクションと
。このイベントは個々のアクションが実行される前に発生し、発生したことをいつでも追跡できます。例については
:アクションなし
procedure TForm1.ActionList1Execute(Action: TBasicAction; var Handled: Boolean);
begin
WriteToLog(TAction(TBasicAction).Caption);
end;
:
あなたはそれが少し難しくなく不可能になるアクションを使用していない場合。作成するには、ロギングコードを含むTMenuItem子孫を持つ新しいユニットを作成する必要があります。新しいユニットは、それを利用するすべてのユニットのuses節にMENUユニットの後に配置してください。これを行うには、新しい子孫をTMenuItemと呼びます。基本的に同じクラスを再導入しているので、拡張機能があります。
私は簡単な例を示しながら一緒に投げた素早いユニットです。
unit MenuItemLogger;
interface
uses Menus;
Type
TMenuItem = class(Menus.TMenuItem)
public
procedure Click; override;
end;
implementation
uses windows;
{ TMenuItem }
procedure TMenuItem.Click;
begin
outputdebugstring(PWideChar(self.Caption));
inherited;
end;
end.
トレースしたいメニュー(TMainMenuコンポーネントまたはTPopupMenu)との任意の形式/ DataModuleののuses節の最後のユニットとして上記ユニットの場所にそれを使用します。特定のユニットを追跡したくない場合は、それを含めないでください。
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ActnList, Menus, MenuItemLogger;
これらの2つの方法は簡単で、動作している間はおそらく最良の解決策ではありません。
あなたの質問を明確にしてください。何を探していますか? 「使用法」とはどういう意味ですか? –
@Jlouro:これは、あなたが書いているアプリケーション(これはこのトラッキングを組み込みたい)用か、同じ(またはリモートの)コンピュータ上の任意のアプリケーションの使用状況を監視するために必要な追加情報が含まれています。あなたの質問はあまりにも曖昧で、あなたが何を正確にしたいのかを推測することは不可能です。 – Argalatyr
+1の質問です。私はOPが「どのメニューボタンを何回押されたのか、ショートカットやクリックでアクセスするのか」などのUI使用統計を収集するソリューションについて質問していると思います。リボンのUI) –