uses ComObj, ActiveX;
function aktiv(ProgID: string): Boolean;
var
rclsid: TGUID;
ppunk: IUnknown;
begin
rclsid := ProgIDToClassID(ProgID);
result := GetActiveObject(rclsid, nil, ppunk) = 0;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
if aktiv('Word.Application') then
{Excel.Application, Outlook.Application, Access.Application usw.}
ShowMessage('Die Anwendung läuft bereits.')
else ShowMessage('Die Anwendung läuft zur Zeit nicht.')
end;