Hallo liebe Community,
es ist jetzt 03:20 Uhr und ich hab würfelige Augen, aber über den Tag hinweg etwas zusammengeschraubt, was der eine oder andere auf der Suche nach GetThreadCount oder GetProcessInformation oder ThreadCountOfProcess (zumindest hab ich da spaßeshalber danach gesucht, natürlich vergebens) ersehnt und nicht gefunden hat.
Dann natürlich die schmerzhafte Zeit, sich durch
MSDN durchzuwühlen, auch vergebens. Dazu sind viele Funktionen nicht unter älteren Beriebssystemen verfügbar.
Mein Weg hat mich also in die tiefen der undokumentierten Native
API geführt, zu NtQuerySystemInformation. Wenn ich mal wieder gut dabei bin, schreib ich die restlichen Funktionen noch um, so dass man sie auch auf NT4 und 2000 nutzen kann.
Übrigens: wer nur die Prozessorauslastung durch sein Programm haben will sollte es zuerst mit Windows.GetProcessTimes versuchen
zur Verwendung:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
buf: Int64;
begin
if GetProcessInfo(GetCurrentProcessID,PI_MEMORY_USAGE,buf) then
Windows.MessageBox(0,PAnsiChar('Aktuelle Speichernutzung (kB) : ' + inttostr(buf div 1024),'Process Information',0);
end;
Referenzen:
http://www.awprofessional.com/articl...22442&seqNum=1
http://forum.assarbad.net/viewtopic.php?t=77
http://www.codeproject.com/system/ntenumthreads.asp
http://nienie.com/~masapico/api_NtQu...rmation_5.html
lasst mich wissen, obs euch gefällt *g*, immerhin wars Arbeit, das alles zu checken und zu übersetzen.
----------------------------------
peace to u all --- C is DEAD !!!
[edit=alcaeus]SID aus einem Link entfernt. Mfg, alcaeus[/edit]
[edit=Admin]Anhang auf Wunsch des Autors entfernt. Mfg, Daniel[/edit]
[edit=CalganX]Aktuelle Version wieder angehängt. Mfg, CalganX[/edit]