Когда вы запустите второе окно, передайте дескриптор первому. Примерно так:
RUN window.w persistent set hSecondHandle.
RUN getHandle in hSecondHandle (INPUT {&window-name}:HANDLE.
В этой второй программе getHandle выглядит так:
PROCEDURE getHandle:
DEFINE INPUT PARAMETER ipHandle AS HANDLE.
ASSIGN hCallerHandle = ipHandle. /* hCallerHandle needs to be defined outside the procedure */
END PROCEDURE.
И, наконец, всякий раз, когда вы хотите завершить sh первую программу, просто код: ПРИМЕНИТЬ "ЗАКРЫТЬ" к hCallerHandle.