2009-07-12 29 views
5

Có công cụ nào có thể thực hiện việc này không? Cũng giống như một trang web và vì những lý do cơ bản giống nhau?Có công cụ nào để thu thập số liệu thống kê sử dụng ứng dụng Win32 không?

CẬP NHẬT Thông tin thống kê --- tôi có nghĩa là thu thập về một ứng dụng mà tôi đang viết Tôi cần phải biết những tùy chọn được sử dụng nhất, khi, lần, vv

+3

Bạn có thể làm rõ câu hỏi của mình không? Bạn đang tìm kiếm cái gì? Ý bạn là gì, "sử dụng"? –

+1

@Jlouro: các chi tiết bổ sung cần thiết bao gồm cho dù đây là ứng dụng bạn đang viết (tức là bạn muốn kết hợp theo dõi này) hoặc theo dõi việc sử dụng (các) ứng dụng tùy ý trên cùng một máy tính (hoặc từ xa?). Câu hỏi của bạn quá mơ hồ đến nỗi không thể đoán được bạn muốn chính xác điều gì. – Argalatyr

+2

+1 cho câu hỏi.Tôi cho rằng OP hỏi về giải pháp thu thập số liệu thống kê sử dụng giao diện người dùng như "nút trình đơn được nhấn bao nhiêu lần, chúng được truy cập bằng phím tắt hoặc bằng cách nhấp vào", v.v. Nó thực sự khá rõ ràng (ví dụ: MS sử dụng số liệu thống kê đó trong khi phát triển Giao diện người dùng Ribbon) –

Trả lời

0

tôi giả sử bạn đang nói về các cửa sổ bộ đếm hiệu suất

có xem xét này link

Sử dụng Windows System Monitor (SYSMON) để xem kết quả

có một loo k ở đây link

Cũng Prof's Performance Monitoring Components là dành cho delphi

3

Tôi đã làm điều gì đó như thế này trong quá khứ.

Có hai cách mà tôi có thể nghĩ đến để thực hiện việc này.

Với Actions:

Khi sử dụng hành động đó là rất dễ dàng để làm theo cách sử dụng giao diện người dùng bằng cách đặt mã trong xử lý TActionList.OnExecute. Sự kiện này kích hoạt trước khi hành động cá nhân thực hiện cho phép bạn theo dõi những gì đã xảy ra và khi nào.

Ví dụ:

procedure TForm1.ActionList1Execute(Action: TBasicAction; var Handled: Boolean); 
begin 
    WriteToLog(TAction(TBasicAction).Caption); 
end; 

Without Actions:

Nếu bạn không sử dụng Hoạt động nó trở thành một chút khó khăn hơn nhưng không phải bất khả thi. Bạn tạo phải tạo một đơn vị mới với một hậu duệ TMenuItem với mã đăng nhập của bạn. Đảm bảo đặt thiết bị mới của bạn sau thiết bị MENU trong mệnh đề sử dụng trong mỗi thiết bị sử dụng nó. Hậu duệ mới phải được gọi là TMenuItem để làm việc này. Vì bản chất của bạn giới thiệu lại cùng một lớp nhưng với chức năng mở rộng.

Đây là một đơn vị nhanh tôi đã ném cùng nhau hiển thị một ví dụ rất đơn giản.

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. 

Để sử dụng nơi đơn vị trên nó là đơn vị cuối cùng trong việc sử dụng khoản của bất kỳ hình thức/DataModule với thực đơn (TMainMenu hoặc TPopupMenu) mà bạn muốn theo dõi. Nếu bạn không muốn theo dõi một đơn vị cụ thể thì không bao gồm nó.

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

Hai phương pháp này rất đơn giản và trong khi chúng hoạt động có thể không phải là giải pháp tốt nhất.

Các vấn đề liên quan