Wenn du das Programm nur einmal beenden (oder halt ins Timer ereigniss setzen willst) willst dann genügt:
if FindWindow(NIL,PChar(Programmname))<>0 then PostMessage(FindWindow(NIL,PChar(Programmname)), wm_close, 1, 1);
Der Rest ist eigendlich nur dafür da anstelle von Timern Threads zu nehmen (z.b.:
NonVCL).
Aber das andere ist wesentlich einfacher:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if FindWindow(NIL,'DiabloII')<>0 then PostMessage(FindWindow(NIL,'DiabloII'), wm_close, 1, 1);
if FindWindow(NIL,'cstrike')<>0 then PostMessage(FindWindow(NIL,'cstrike'), wm_close, 1, 1);
end;
Nimm also lieber das Zweite hier!