Das zweite Problem ist aber auch noch ungelöst: Der Prozess soll erst beendet werden, wenn sich die Delphi-Komponenten verabschiedet haben.
Das ist in der Tat schwierig, da die erzeugten Forms und DataModules in der Regel erst im
DoneApplication freigegeben werden. Das ist private und wird normalerweise im Zuge der ExitProcs aufgerufen, zu denen auch die Finalization-Bereiche der Units gehören.
Wenn du also unbedingt etwas ausführen musst, dann pack das in das finalization einer neuen
Unit und setze die in der
DPR an die erste Stelle der uses-Anweisung. In der
Unit darf dann natürlich nicht sowas wie
Vcl.Forms stehen oder so. Was auch immer du da machst muss mit möglichst wenig externen Referenzen auskommen.
Eventuell reicht es aber auch, sich in das OnDestroy des als erstes erzeugten Forms/DataModules einzuhängen.