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 Benutzer Speicher (https://www.delphipraxis.net/101561-benutzer-speicher.html)

MichaelGapp 15. Okt 2007 14:50


Benutzer Speicher
 
Hallo Leute,
wie kann ich mir für einen Prozess den verwendeten Speicher auslesen?

Gruss
MG

RWarnecke 15. Okt 2007 15:37

Re: Benutzer Speicher
 
Auf der Webseite von Luckie solltest Du fündig werden.

Luckies - CodeSnippets

MichaelGapp 17. Okt 2007 10:38

Re: Benutzer Speicher
 
Hallo,
das hat mir mal geholfen. Ich komme aber nur an die Daten aus der gleichen Session.

Wie kann ich den Speicherverbrauch eines Programms aus einer anderen Session auslesen.

Gruss
MG

Luckie 17. Okt 2007 10:47

Re: Benutzer Speicher
 
Meinst du wirklich Session oder Prozess?

MichaelGapp 17. Okt 2007 10:51

Re: Benutzer Speicher
 
Hallo,

ich möchte ein Prozess einer anderen Session abfragen.

Gruss
MG

MichaelGapp 18. Okt 2007 12:43

Re: Benutzer Speicher
 
Hallo Leute,

hier mal einwenig Code



Die Function die den RAM eines Prozesses ausliest.

Delphi-Quellcode:
procedure TMainForm.CheckRam;
var
  _MemInfo: TProcessMemoryCounters;
  _Process: HWND;
  _ram: Cardinal;
begin
  FRamAlarm      := FALSE;
  Label17.Caption := '0 MB';

  if FProcId = 0 then
    Exit;

  _Process := OpenProcess(PROCESS_QUERY_INFORMATION, False, FProcId);

  if _Process <> 0 then
    try
      if GetProcessMemoryInfo(_Process, @_MemInfo, SizeOf(_MemInfo)) then
        begin
          _ram:= _MemInfo.WorkingSetSize;

          Label17.Caption:= IntToStr(Trunc(_ram / 1024 / 1024)) + ' MB';

          FRamAlarm:= seRAM.Value < Trunc(_ram / 1024 / 1024);

          if FRamAlarm then
            AddLog(SX_RAM, 'RAM is used more than = ' + IntToStr(seRAM.Value) + ', used = ' + IntToStr(Trunc(_ram / 1024 /1024)));
        end;
    finally
      CloseHandle(_Process);
    end;
end;
Das funktioniert auch solang der Prozess (Anwendung) unter dem gleichen Benutzer läuft.

Was muss ich tun um an den Prozess eines anderen Benutzers zu kommen?

Gruss
MG


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