function _FileTimeToDateTime(ft: _FileTime; out Value: TDateTime): boolean;
var
lft: _FileTime;
dt: DWord;
begin
Result := false;
try
if FileTimeToLocalFileTime(ft, lft) and
FileTimeToDosDateTime(lft, LongRec(dt).Hi, LongRec(dt).Lo)
then begin
Value := FileDateToDateTime(dt);
Result := true;
end;
except
end;
end;
function GetProcessStart(hProcess: THandle; out Value: TDateTime): boolean;
var
lpCreationTime, lpExitTime, lpKernelTime, lpUserTime: _FileTime;
begin
try
Result := GetProcessTimes(hProcess, lpCreationTime, lpExitTime,
lpKernelTime, lpUserTime) and _FileTimeToDateTime(lpCreationTime, Value);
except
Result := false;
end;
end;
// Beispielaufruf
procedure TForm1.Button4Click(Sender: TObject);
var Start: TDateTime;
begin
if not GetProcessStart(GetCurrentProcess, Start)
then Showmessage('Abfrage fehlgeschlagen!')
else showmessage(DateTimeToStr(Start));
end;