2011-12-22 71 views
4

如何找到自應用程序啓動以來運行的時間?如何獲取我的應用程序運行時間?

+4

CPU時間?如果不是,請記下啓動時的時間,然後在需要時從當前時間減去。 – 2011-12-22 21:52:16

+0

定義「運行」。這是否意味着「自啓動以來天/小時/分鐘/秒多長時間」,還是這意味着「實際上使用CPU的時間多少,而不是最小化或只是坐在那裏」? – 2011-12-23 01:28:44

回答

16

嘗試GetProcessTimes功能

{$APPTYPE CONSOLE} 

{$R *.res} 

uses 
    Windows, 
    SysUtils; 

function FileTime2DateTime(FileTime: TFileTime): TDateTime; //Convert then FileTime to TDatetime format 
var 
    LocalTime: TFileTime; 
    DOSTime : Integer; 
begin 
    FileTimeToLocalFileTime(FileTime, LocalTime); 
    FileTimeToDosDateTime(LocalTime, LongRec(DOSTime).Hi, LongRec(DOSTime).Lo); 
    Result := FileDateToDateTime(DOSTime); 
end; 

Var 
    lpCreationTime, lpExitTime, lpKernelTime, lpUserTime: TFileTime; 

begin 
    try 
    GetProcessTimes(GetCurrentProcess,lpCreationTime, lpExitTime, lpKernelTime, lpUserTime); 
    Sleep(1000); //do something 

    Writeln(Format('Running Time %s',[FormatDateTime('hh:nn:ss.zzz',Now-FileTime2DateTime(lpCreationTime))])); 
    except 
    on E: Exception do 
     Writeln(E.ClassName, ': ', E.Message); 
    end; 
    Readln; 
end. 
+4

現在我們可以忘記Windows 95/98的事情變得更加容易。 – 2011-12-22 22:02:45

相關問題