Das mit KillProcess klappt schon da das ein Prozess ist der des öfteren hängenbleibt und dadurch lässt sich Windows nicht mehr beenden.
Allerdings bekomm ich noch den oben beschriebenen Fehler. Und wenn ich das ganze nun daran koppeln will das er das automatisch macht wenn man Windows beendet passiert gar nichts mehr. So siehts aus:
Delphi-Quellcode:
procedure TForm1.WMQueryEndSession(var M : TWMQueryEndSession);
var
a : integer;
i : integer;
begin
inherited;
Listbox1.Clear;
GetProcessList(Listbox1.Items);
for I:=0 to A do
if Listbox1.Items.Strings[I] = 'Genesis.EXE' then
KillProcess(GetProcessID(Listbox1.Items.Strings[I]));
end;