Entwickler-Ecke
Windows API - aus PID prozessauslastung holen
acnut - Di 25.05.10 22:04
Titel: aus PID prozessauslastung holen
ich habe zwei codes von swissdelphicenter.ch, aber leider weiß ich nicht wie ich das verbinden soll.
http://www.swissdelphicenter.ch/de/showcode.php?id=1010
und
http://www.swissdelphicenter.ch/de/showcode.php?id=593
ich hab das so gemacht aber komm auf keine lösung es wird immer 0% angezeigt(in der refresh prozedur):
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32:
| var i: Integer; bContinue: BOOL; NewItem,a: TListItem;
begin ListView1.Items.Clear; aSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); aProcessEntry32.dwSize := SizeOf(aProcessEntry32); bContinue := Process32First(aSnapshotHandle, aProcessEntry32); while Integer(bContinue) <> 0 do begin NewItem := ListView1.Items.Add; NewItem.Caption := ExtractFileName(aProcessEntry32.szExeFile); NewItem.subItems.Add(IntToHex(aProcessEntry32.th32ProcessID, 4)); a := ListView1.Items.Add;
NewItem.subItems.Add(aProcessEntry32.szExeFile); bContinue := Process32Next(aSnapshotHandle, aProcessEntry32); Process.PID := th32ProcessID};
Process.lNewKernel := 0; Process.lNewUser := 0; Process.dwNewTime := 0;
RefreshProcess(Process);
a.Caption :=GetCPUTimeForProcess(Process); end; CloseHandle(aSnapshotHandle); |
mfg
Xentar - Di 25.05.10 22:21
Und wie sieht der Code von RefreshProcess und GetCPUTimeForProcess aus? Oder sind das eingebaute Funktionen?
Und hast du schonmal Haltepunkte gesetzt und geguckt, ob du z.B. überhaupt ein gültiges Handle bekommst?
acnut - Mi 26.05.10 06:47
Xentar hat folgendes geschrieben : |
Und wie sieht der Code von RefreshProcess und GetCPUTimeForProcess aus? Oder sind das eingebaute Funktionen?
Und hast du schonmal Haltepunkte gesetzt und geguckt, ob du z.B. überhaupt ein gültiges Handle bekommst? |
das ganze ist schin eingebaut.
es wird kein fehler angezeigt, aber % ist falsch.
wahrscheinlich gehört das in eine eigene schleife,oder?:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| a := ListView1.Items.Add;
Process.PID := th32ProcessID};
Process.lNewKernel := 0; Process.lNewUser := 0; Process.dwNewTime := 0;
RefreshProcess(Process);
a.Caption :=GetCPUTimeForProcess(Process); |
mfg
Xentar - Mi 26.05.10 09:18
Mit "eingebaut" meinte ich, ob das eine selbstgeschrieben Funktion von dir ist.
Da mein Delphi diese Funktion nicht kennt, geh ich mal davon aus, dass es was selbst geschriebenes ist, ja. Also: Wie sieht davon der Code aus?
Und was möchtest du an der Stelle mit ner Schleife..?
acnut - Mi 26.05.10 17:36
nein eigentlich nicht.
hab die codes von swissdelphicenter und versuche diese beiden codes zu verbinden.
weiß allerdings nicht wie ich das anstellen soll
mfg
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!