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
.