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 EnumProcesses von Luckie (https://www.delphipraxis.net/98625-enumprocesses-von-luckie.html)

Nakaron 30. Aug 2007 07:20


EnumProcesses von Luckie
 
Hallo zusammen ...

Ich habe mir einmal die EnumProcesses Unit von Luckie heruntergeladen. Klappt soweit auch ganz gut. Hier erstmal der Link zur Unit:
EnumProcesses

Dort gibt es eine Funktion, welche mir die CPU Nutzungszeit ausgibt:

Delphi-Quellcode:
function PrintCPUTime(Process: TProcess): WideString;
var
  KernelTime64      : LARGE_INTEGER; //TFileTime;
  UserTime64        : LARGE_INTEGER;
  CPUTime64         : LARGE_INTEGER;
  CPUTimeft        : TFileTime;
  st               : TSystemTime;
  TimeStr          : array[0..254] of WideChar;
  Kernel, User     : Cardinal;
  dwTime           : DWORD;
begin
  KernelTime64.LowPart := Process.KernelTime.dwLowDateTime;
  KernelTime64.HighPart := Process.KernelTime.dwHighDateTime;
  UserTime64.LowPart := Process.UserTime.dwLowDateTime;
  UserTime64.HighPart := Process.UserTime.dwHighDateTime;
  CPUTime64.QuadPart := KernelTime64.QuadPart + UserTime64.QuadPart;
  CPUTimeft.dwLowDateTime := CPUTime64.LowPart;
  CPUTimeft.dwHighDateTime := CPUTime64.HighPart;
  FileTimeToSystemTime(CPUTimeft, st);
  GetTimeFormatW(LOCALE_SYSTEM_DEFAULT, TIME_FORCE24HOURFORMAT, @st, nil, TimeStr, SizeOf(TimeStr));
  Result := WideString(TimeStr);
end;
Ich würde aber gerne daraus die CPU Auslastung herausbekommen. Nur wie stell ich das an? Man müsste ja nur die Berechnung umstellen der einzelnen Vars.

Danke schon einmal im voraus.


Viele Grüße
Nakaron

Ghostwalker 30. Aug 2007 08:19

Re: EnumProcesses von Luckie
 
Vielleicht hilft dir dabei

GetProcessTimes

etwas mehr. Über Google solltest du einiges an fertigen Code finden :)

Nakaron 30. Aug 2007 08:48

Re: EnumProcesses von Luckie
 
Hmm, würde mir insoweit helfen, wenn ich wüsste welche Vars ich als Parameter übergeben müsste, welche in der PrintCPUTime vertreten sind.


Viele Grüße
Nakaron

Luckie 30. Aug 2007 09:15

Re: EnumProcesses von Luckie
 
Du musst über eine bestimmte Zeitspanne die CPU-Zeit ermitteln und dann ausrechnen wie viel Prozent das sind. Würd eich jetzt mal so früh am Morgen sagen.

Und das was du da gepostet hast, rechnet nur die CPU-Zeit in eine Systemzeit um und formatiert sie entsprechend.

Nakaron 30. Aug 2007 10:17

Re: EnumProcesses von Luckie
 
Keinen Schimmer wie ich generell die CPU Auslastung errechnen kann ...

Ich hab zwar schon einige Beispiele hier im Forum gesehen, wüsste allerdings nicht wie ich die in deine Unit mit einbinde.

Viele Grüße
Nakaron


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:34 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