Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi GetProcessTimes -> Uptime des Programms bekommen (https://www.delphipraxis.net/19958-getprocesstimes-uptime-des-programms-bekommen.html)

HentaiD 11. Apr 2004 20:00


GetProcessTimes -> Uptime des Programms bekommen
 
Hallo, ich bin's schon wieder!
Nach stundenlangem rumprobieren habe ich mitbekommen, dass ich einfach nicht weiß wie das geht.

Ich hab hier einen Button, der mir mit "GetProcessTimes" die Uptime der Prozesse anzeigen soll, die am laufen sind.
Z.B. in einer einfachen Message. Habe jetzt hier schon in der DP rumgeguckt und auch in google, aber ich bekomme es einfach nicht hin. :cry:
Habt ihr da vielleicht einen Code für mich?

Greetz,D

Luckie 11. Apr 2004 20:18

Re: GetProcessTimes -> Uptime des Programms bekommen
 
Lad dir mal meine SysInfo runter, da müsste was drinne stehen. Eventuell auch in einem Demo meines Thread-Tutorials, aber da bin ich mir nicht sicher.

toms 11. Apr 2004 20:31

Re: GetProcessTimes -> Uptime des Programms bekommen
 
Hi,

Mit GetProcessTimes() kannst du u.a die Zeit/Datum auslesen, an welchem ein Prozess
gestartet wurde.

Hab das mal in einer Funktion gekapselt:


Delphi-Quellcode:
function ApplicationCreationTime(hProcess: THandle): TDateTime;
var
  ft_CreationTime, lpExitTime, ft_KernelTime, ft_UserTime: TFileTime;
  dft: DWORD;

  function FileTimeToDateTime(ft: TFileTime): TDateTime;
  var
    ft1: TFileTime;
    st: TSystemTime;
  begin
    if ft.dwLowDateTime + ft.dwHighDateTime = 0 then
      Result := 0
    else
    begin
      FileTimeToLocalFileTime(ft, ft1);
      FileTimeToSystemTime(ft1, st);
      Result := SystemTimeToDateTime(st);
    end;
  end;

begin
  if Win32Platform = VER_PLATFORM_WIN32_NT then
    if GetProcessTimes(hProcess, ft_CreationTime, lpExitTime,
      ft_KernelTime, ft_UserTime) then
    begin
      Result := FileTimeToDateTime(ft_CreationTime);
    end
    else
      RaiseLastOSError;
end;

Bsp: Creationtime des eigenen Prozesses anzeigen:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  label1.Caption:=DateTimeToStr(ApplicationCreationTime(GetCurrentProcess));
end;

Luckie 11. Apr 2004 20:35

Re: GetProcessTimes -> Uptime des Programms bekommen
 
Jupp, im Threading Tutorial ist GetThreadTimes drin. sollte sich relativ einfach übertragen lassen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:43 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz