Danke euch beiden funktioniert genau so wie ich mir das Vorgestellt habe!
Für Leute die sowas nochmal brauchen:
Im Hauptprogramm:
Delphi-Quellcode:
...
public
{ Public-Deklarationen }
procedure WndProc(var Msg: TMessage); override;
...
procedure TForm1.WndProc(var Msg: TMessage);
begin
if Msg.Msg = WM_QUIT then
begin
//Irgendwelche Aktionen durchführen
end;
inherited;
end;
Und im Programm mit dem man Beenden will (Findwindow am besten mit XSpy o.ä.) :
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
wnd: HWND;
begin
wnd := FindWindow('namederform', 'namedesprogramms');
if wnd <> 0 then
begin
Sendmessage(wnd,WM_QUIT,0,0);
end;
end;
Gruß
P.S. Wenn ich ich WM_Quit nur an diese Form sende, dann gibt es doch keine Konflikte mit anderen Programmen oder? Also nich das irgendein anderes Programm dadurch beednet wird...