Einzelnen Beitrag anzeigen

wido

Registriert seit: 2. Jan 2006
122 Beiträge
 
#2

Re: Windows-Pendant zu time-Befehl unter Linux

  Alt 12. Apr 2008, 20:44
Nein, so weit ich weiß nicht. Ist aber trivial zu implementieren:

Delphi-Quellcode:
program Project1;

{$APPTYPE CONSOLE}

uses
  Windows, ShellAPI;

function ExecuteWaitAndTime(Filename, Params : string; var DeltaTime : cardinal) : boolean;
var
  ExecuteInfo: TShellExecuteInfo;
begin
  ZeroMemory(@ExecuteInfo, sizeof(ExecuteInfo));
  with ExecuteInfo do
  begin
    cbSize := sizeof(ExecuteInfo);
    fMask := SEE_MASK_NOCLOSEPROCESS;
    lpVerb := 'open';
    lpFile := PChar(Filename);
    lpParameters := PChar(Params);
    nShow := SW_SHOWNORMAL;
  end;
  if ShellExecuteEx(@ExecuteInfo) then
  try
      result := true;
      DeltaTime := GetTickCount;
      WaitForSingleObject(ExecuteInfo.hProcess, INFINITE);
      DeltaTime := GetTickCount - DeltaTime;
  finally
    CloseHandle(ExecuteInfo.hProcess);
  end;
end;

var
  i : cardinal;
begin
  writeln(ExecuteWaitAndTime('notepad.exe', '', i));
  writeln(i);
  readln;
end.
Im Endeffekt startest Du den Prozess, fragst den aktuellen TickCount (Anzahl der vergangenen Millisekunden seit Systemstart), wartest bis die Anwendung fertig ist und subtrahierst den ersten TickCount vom aktuellen. Ergebnis ist die Zeit in Millisekunden die die Anwendung zur Ausführung benötigt hat.

Der Code oben basiert übrigens grob auf dem Code von Assarbad. Mags nur erwähnt wissen, nicht das einer rumschreit ich klau Code .
  Mit Zitat antworten Zitat