ich sehe da schon einen Bug in procedure GetProcessList(sl: TStrings):
du bist in einer While-Schleife und machst folgendes:
Delphi-Quellcode:
if AnsiCompareStr(LowerCase(pe32.SZExeFile),LowerCase('XXX.exe')) = 0 then
begin
xx := true;
end
else
begin
xx := false;
end
Ob die globale Variable xx am Ende True oder False ist hängt davon ab, ob das
letzte Programm den Namen XXX.exe trägt.
Vorschlag: in GetProcessList soll nicht auf XXX.exe geprüft werden, sondern dies wird in einer extra Funktion erledigt.