Hier noch der Knackpunkt: das Programm "Active" stellt fest ob ein Programm aktiv ist.
Habe ich in einem Forum gefunden.
Delphi-Quellcode:
//******************************************************************************
//********************** Abfrage ob Programm aktiv ist *************************
//******************************************************************************
Function aktiv(ProgID: String): Boolean;
Var
rclsid: TGUID;
ppunk: IUnknown;
Begin
rclsid := ProgIDToClassID(ProgID);
result := GetActiveObject(rclsid, Nil, ppunk) = 0;
End;