Auf den Thread Titel bezogen, füge
TerminateOtherInstances;
dem
OnFormCreate
zu.
Delphi-Quellcode:
procedure TForm1.TerminateOtherInstances;
var
szClass : pchar;
sTitle : string;
h : THandle;
begin
sTitle := Application.Title;
GetMem(szClass, 256);
GetClassName(Application.Handle, szClass, 255);
Application.Title := 'Dummy Caption';
h := FindWindow(szClass, pchar(sTitle));
while h <> 0 do
begin
PostMessage(h, WM_QUIT, 0, 0);
Application.ProcessMessages;
h := FindWindow(nil, pchar(sTitle));
end;
Application.Title := sTitle;
FreeMem(szClass, 256);
end;
edit
Hinweis: Das funktioniert nur für Applikationen die immer den gleichen Application.Title besitzen!