2011-12-22 17 views
4

私のアプリケーションが起動してからどれくらい時間が経過しているか調べるには?アプリケーションの実行時間を取得するにはどうすればよいですか?

+4

CPU時間を試してみてください?そうでない場合は、起動時の時刻を書き留めて、必要なときに現在の時刻から減算します。 –

+0

「実行中」を定義します。それは、「開始日からどれくらいの時間/時間/分/秒で終了するか」を意味しますか、「実際にCPUを使用しているのですか? –

答えて

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について忘れてしまうことが今より簡単です。 –

関連する問題