Gostei da utilização do termo "modal". Ja tentou executar a sua aplicação desde um arquivo batch ? Ou utilizando o arquivo START do SO ?
Eu fiz uns testes e não và nada que estivesse prendendo minha aplicação principal, como você menciona. Olhe o meu exemplo:
? "pressione uma tecla para chamar o Word"
INKEY(0)
// cRoda:="START C:\ARQUIV~1\MICROS~2\OFFICE11\WINWORD.EXE"
// cRoda:="START /W C:\ARQUIV~1\MICROS~2\OFFICE11\WINWORD.EXE"
cRoda:="C:\ARQUIV~1\MICROS~2\OFFICE11\WINWORD.EXE"
RUN (cRoda)
? "Retornou a aplicacao Clipper"
INKEY(0)
No exemplo acima, o START.EXE precisei copiar para o diretório onde se encontra a aplicação e o checar o PATH onde se encontra o WINWORD.EXE.
Agora se você estava se referindo a manter o foco da sessão principal, então eu usaria o WINDOW2TOP(VAL(VMYHAND)) da WAPI.LIB do Maligno que retorna a aplicação, mas antes de usar essa função você precisaria antes de executar aplicação Windows, executar o GetMyHandle().
E se optar por utilizar a execução mediante o arquivo batch, daà terias que utilizar o WAPI em modo de linha de comando, veja esta mensgaem:
viewtopic.php?f=1&t=5708&p=24095#p24095Explique qual é a sua situação, pois eu com o primeiro exemplo que postei, não conseguà reproduzir a situação que você apresentou. E se houverem dúvidas, poderei lhe ajudar se postar com detalhes.