Eine weitere Alternative wäre auch Programm B mit einem
Mutex zu versehen(und damit nur eine einzelne Instanz davon zu erlauben) und die Parameter des "neuen Startversuchs" an die schon existierende Instanz zu schicken(Hat den Vorteil, dass du nur Programm B ändern musst)
Beispiel wie sows geht gibt's z.B. hier:
https://delphidabbler.com/articles/article-13