A possible way this task can be accomplished: on exit application #1 sends a specified window message to application #2. Upon receiving this message, application #2 exits (VFP9 required).
On start application #2 must issue BINDEVENT with some of its window handles (_screen.HWnd, application.HWnd or form's HWND) to make that window message trigger a certain exiting procedure.
Somehow, application #1 must obtain the window handle of application #2. After having started, application #2 can pass this handle to application #1 using interprocess communication, for example a mailslot with predefined name or global atom.
* * *
Also consider DDE approach, when application #2 becomes DDE server and application #1 is DDE client.