/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Aflæse 'Memory usage' fra en kørende proce~
Fra : Ingolf


Dato : 09-07-04 21:34

Hej

Argh.. jeg giver op.. kan intet finde via google... prøver lykken her

Jeg har brug for en stump kode der kan vise mig hvormeget hukommelse en
anden process benytter. Lige de værdier 'Task Manger' giver mig; Mem usage,
Peak Mem usage, VM usage (Under WinXp)..

Indtil videre har jeg følgende der funker på egen process:

----
uses psAPI;

procedure TForm1.Button1Click(Sender: TObject);
var
pmc: PPROCESS_MEMORY_COUNTERS;
cb: Integer;
begin
cb := SizeOf(_PROCESS_MEMORY_COUNTERS);
GetMem(pmc, cb);
pmc^.cb := cb;
if GetProcessMemoryInfo(GetCurrentProcess(), pmc, cb) then
Label1.Caption := IntToStr(pmc^.WorkingSetSize) + ' Bytes'
else
Label1.Caption := 'Unable to retrieve memory usage structure';

FreeMem(pmc);
end;
----

Men hvordan ændrer jeg 'GetCurrentProcess ud til en andens process ID?

Kan jeg bruge EnumWindows funktionen til at hente et ID og hvordan? Har
rodet med OpenProcess, men fik det aldrig til at virke.. :(



 
 
Ingolf (11-07-2004)
Kommentar
Fra : Ingolf


Dato : 11-07-04 05:15


"Ingolf" <dont_spam_ingolf@excite.com> wrote in message
news:40ef0148$0$316$edfadb0f@dread16.news.tele.dk...
> Hej
>
> Argh.. jeg giver op.. kan intet finde via google... prøver lykken her
>
> Jeg har brug for en stump kode der kan vise mig hvormeget hukommelse en
> anden process benytter. Lige de værdier 'Task Manger' giver mig; Mem
usage,
> Peak Mem usage, VM usage (Under WinXp)..
>
> Indtil videre har jeg følgende der funker på egen process:
>
> ----
> uses psAPI;
>
> procedure TForm1.Button1Click(Sender: TObject);
> var
> pmc: PPROCESS_MEMORY_COUNTERS;
> cb: Integer;
> begin
> cb := SizeOf(_PROCESS_MEMORY_COUNTERS);
> GetMem(pmc, cb);
> pmc^.cb := cb;
> if GetProcessMemoryInfo(GetCurrentProcess(), pmc, cb) then
> Label1.Caption := IntToStr(pmc^.WorkingSetSize) + ' Bytes'
> else
> Label1.Caption := 'Unable to retrieve memory usage structure';
>
> FreeMem(pmc);
> end;
> ----
>
> Men hvordan ændrer jeg 'GetCurrentProcess ud til en andens process ID?
>
> Kan jeg bruge EnumWindows funktionen til at hente et ID og hvordan? Har
> rodet med OpenProcess, men fik det aldrig til at virke.. :(
>


Tror jeg en fandt løsning her:
http://www.swissdelphicenter.ch/torry/showcode.php?id=2112

Alle forslag er stadig velkomne ;)



Ingolf (13-07-2004)
Kommentar
Fra : Ingolf


Dato : 13-07-04 21:27

"Ingolf" <dont_spam_ingolf@excite.com> wrote in message
news:40f0bea3$0$240$edfadb0f@dread16.news.tele.dk...
> Tror jeg en fandt løsning her:
> http://www.swissdelphicenter.ch/torry/showcode.php?id=2112
>

Mystisk.. virker på en PC, men på en anden PC, med samme Windows version,
får jeg en 'Range Check error'... hmmm

Forslag stadigt meget velkomne! :)



Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408182
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste