加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 是否有收集Win32应用程序使用情况统计信息的工具?

发布时间:2020-12-15 09:50:47 所属栏目:大数据 来源:网络整理
导读:有没有可以做到这一点的工具?就像一个网站,出于同样的基本原因? 更新— 我的意思是收集有关我正在撰写的应用程序的统计信息 我需要知道最常用的选项,时间,时间等. 解决方法 我过去做过类似的事. 我有两种方法可以做到这一点. 使用动作: 使用操作时,通过将
有没有可以做到这一点的工具?就像一个网站,出于同样的基本原因?

更新—
我的意思是收集有关我正在撰写的应用程序的统计信息
我需要知道最常用的选项,时间,时间等.

解决方法

我过去做过类似的事.

我有两种方法可以做到这一点.

使用动作:

使用操作时,通过将代码放在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的uses子句中的最后一个单元,并将其与要跟踪的菜单(TMainMenu或TPopupMenu)放在一起.如果您不想跟踪特定单元,请不要包含它.

uses
  Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,ActnList,Menus,MenuItemLogger;

这两种方法很简单,虽然它们起作用,但它们可能不是最好的解决方案.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读