![]() |
Re: Speicherauslastung eines beliebigen Prozesses anzeigen
Gehe ich richtig in der Annahme das GetProcessMemoryInfo nicht auf 9x Systemen funktioniert ?
habe die obigen Code-schnipsel mal in meine Processlist gepackt und nebenbei noch GetProcessMemoryInfo dynamisch geladen, aber ich bekomme als Ergebnis immer nur 0 Byte raus :( wenn's mit GetProcessMemoryInfo nicht funktioniert unter 9x wie können das dann andere Programme ? (WinSystem98 o.ä.) |
Re: Speicherauslastung eines beliebigen Prozesses anzeigen
Zitat:
![]() ... Und da steht, dass es nur unter NT-Systemen funzt ... oder hab ich mich verguggt? Wie es unter 9x Systemen funzt weis ich aber auch nicht ... |
Re: Speicherauslastung eines beliebigen Prozesses anzeigen
Win9x liefert diese Information, glaube ich, nicht so ohen weiteres.
|
Re: Speicherauslastung eines beliebigen Prozesses anzeigen
Liste der Anhänge anzeigen (Anzahl: 1)
dann frag ich mich, wie
![]() siehe Anhang... [edit] link *nochmal* auf neuste/letze Version geändert :) [/edit] |
Re: Speicherauslastung eines beliebigen Prozesses anzeigen
Ich sagte nicht so ohne weiteres. Ich habe nicht gesagt, dass es unmöglich sei. ;)
|
Re: Speicherauslastung eines beliebigen Prozesses anzeigen
Das es nicht unmöglich ist (grins, doppelte verneinung) seh ich ja...
nur frag ich mich wie es geht :roll: zum debuggen ist mir das teil 'n wenig zu komplex (hab mir das teil eben mit'm Disassembler angesehen) aber ich könnte ja mal versuchen den Autor zu fragen (Französisch-Kenntnisse rauskram) der hat's in VC++ 6 gelöst (lt. PeID) ;) |
Re: Speicherauslastung eines beliebigen Prozesses anzeigen
Zitat:
|
Re: Speicherauslastung eines beliebigen Prozesses anzeigen
Hi,
Habe ein VB Funktion gefunden, um die Speicherauslastung eines Prozesses anzuzeigen.
Code:
Function GetProcessMemUsage(hprocess As Long) As Long
Dim lpMem As Long Dim lPrivateBytes As Long Dim ret& Dim si As SYSTEM_INFO Dim mbi As MEMORY_BASIC_INFORMATION Dim lLenMbi& GetProcessMemUsage = -1 lLenMbi = Len(mbi) Call GetSystemInfo(si) lpMem = si.lpMinimumApplicationAddress While lpMem < si.lpMaximumApplicationAddress mbi.RegionSize = 0 ret = VirtualQueryEx(hprocess, lpMem, mbi, lLenMbi) If ret = lLenMbi Then If ((mbi.lType = MEM_private) And (mbi.State = MEM_COMMIT)) Then ' this block is In use by this process lPrivateBytes = lPrivateBytes + mbi.RegionSize End If On Error GoTo Finished lpMem = mbi.BaseAddress + mbi.RegionSize On Error GoTo 0 Else Exit Function End If Wend Finished: GetProcessMemUsage = lPrivateBytes End Function Hier ein quick & dirty Übersetzung nach Delphi:
Delphi-Quellcode:
function GetProcessMemUsage(hprocess: THandle) : Longint;
var lpMem : Cardinal; lPrivateBytes : Longint; ret:DWORD; si : TSystemInfo; mbi : TMemoryBasicInformation; lLenMbi: DWORD; x: Integer; begin GetProcessMemUsage := -1; lLenMbi := SizeOf(mbi); GetSystemInfo(si); lpMem := Cardinal(si.lpMinimumApplicationAddress); while DWORD(lpMem) < DWORD(si.lpMaximumApplicationAddress) do begin mbi.RegionSize := 0; ret := VirtualQueryEx(hprocess, Pointer(lpMem), mbi, lLenMbi); If ret = lLenMbi Then begin If ((mbi.Type_9 = MEM_private) and (mbi.State = MEM_COMMIT)) then // this block is In use by this process begin lPrivateBytes := lPrivateBytes + mbi.RegionSize end; {if} lpMem := DWORD(mbi.BaseAddress) + DWORD(mbi.RegionSize); end else begin Result := lPrivateBytes; Exit; end; end; {while} Result := lPrivateBytes; end; Problem: GetProcessMemoryInfo & GetProcessMemUsage geben nicht den gleichen Rückgabewert. Gibt wahrscheinlich einen (oder mehrere Fehler) in der Übersetzung oder die Funktion stimmt nicht ganz. |
Re: Speicherauslastung eines beliebigen Prozesses anzeigen
Zitat:
lediglich den gesamten Speicherverbrauch unter 9x brauch ich für meinen "Task-Manager" sonst muss ich halt auf diese Angabe bei 9x verzichten (wie so oft, weil die entsprechende Funktion nur NT-basiert existiert/funktioniert :twisted: ) wie auch bei meinem xNetStat :cry: |
Re: Speicherauslastung eines beliebigen Prozesses anzeigen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz