Hallo liebe DPler,
ich habe eine Frage wegen einer meiner Programme, die ihr mir hoffentlich beantworten könnt. Vorneweg, ich bin mit der Windows-
API ziemlich ungeschickt, oder treffender: Ich habe keine Ahnung davon. Nun zum Problem.
Ich würde gerne eine Art Protokollprogramm erstellen, das alle, beipspielsweise, 5 Minuten die laufenden Prozesse ermittelt, die entsprechende Liste filtert (bekannt/unbekannt) und am Ende alles schön säuberlich in eine .log-Datei wirft. Soweit kein Problem, aber ich möchte für die nicht bekannten Prozesse noch Programmpfad herausfinden, damit der Anwender bessere Chancen hat herauszufinden, um welches Programm es gerade geht. Das geht ja oft aus dem Prozessnamen nicht hervor.
Um die laufenden Prozesse zu ermitteln habe ich mich folgender Prozedur bedient, wobei ich zugeben muss, dass ich diese von Delphi-Source habe, da ich damit nicht so wirklich zurande kommen würde:
Delphi-Quellcode:
procedure TFrmAnsicht.GetProcessList(const aProcessList: TStrings);
var Snap: THandle;
ProcessE: TProcessEntry32;
begin
aProcessList.Clear;
Snap := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
try
ProcessE.dwSize := SizeOf(ProcessE);
if Process32First(Snap, ProcessE) then
Repeat aProcessList.Add(ProcessE.szExeFile);
Until not Process32Next(Snap, ProcessE)
else RaiseLastOSError;
finally
CloseHandle(Snap);
end;
end;
Ich bedanke mich schonmal für eure Hilfe, Palad
PS: Ich bei Delphi-Source auch schon die Frage gepostet forum.dsdt.info/viewtopic.php?t=33998