有沒有什麼工具可以做到這一點?就像一個網站,基於相同的原因?是否有收集Win32應用程序使用情況統計信息的工具?
UPDATE --- 我的意思是收集統計關於我寫 我需要知道哪些選項是最常用的時候,次應用程序等
有沒有什麼工具可以做到這一點?就像一個網站,基於相同的原因?是否有收集Win32應用程序使用情況統計信息的工具?
UPDATE --- 我的意思是收集統計關於我寫 我需要知道哪些選項是最常用的時候,次應用程序等
你需要一些coverage analysis工具?
我在過去做過這樣的事情。
我有兩種方法可以考慮這樣做。
用行動:
當使用行爲就很容易通過將代碼在TActionList.OnExecute處理程序遵循UI使用。此事件在單個動作執行之前觸發,這允許您追蹤發生了什麼以及何時發生了什麼。
例如:
procedure TForm1.ActionList1Execute(Action: TBasicAction; var Handled: Boolean);
begin
WriteToLog(TAction(TBasicAction).Caption);
end;
無操作:
如果你不使用操作變得有點困難,但並非不可能。您必須創建一個帶有您的日誌代碼的TMenuItem後代的新單元。確保將每個裝置的使用條款中的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.
使用上述裝置把它作爲最後一個單元的任何形式/ DataModule中的與要跟蹤菜單(TMainMenu或TPopupMenu)用途子句。如果你不想跟蹤一個特定的單位不包括它。
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ActnList, Menus, MenuItemLogger;
這兩種方法很簡單,雖然他們的工作,他們可能不是最好的解決方案。
你能澄清你的問題嗎?你在找什麼?你的意思是什麼,「用法」? – 2009-07-12 01:01:32