Olá Mario,
Não sei se está disposto a insistir nisso, mas você disse que usa GUI, então você está usando Harbour, é isso?
Se sim você já tentou com a função MyRun()? Ela foi disponibilizada aqui no fórum, e uso até hoje para abrir programas externos com parâmetros:
(PS: Não lembro quem disponibilizou)
FUNC MYRUN( cComando, lWait ) // executa programa externo com parâmetros
Local oShell, ret
lWait := If( Empty( lWait ), .F., lWait ) // Se .T. aguarda o programa fechar, se .F. não aguarda...
oShell := CreateObject( "WScript.Shell" )
ret := oShell:Run( "%comspec% /c " + cComando, 0, lWait )
oShell := Nil
Return If( ret = 0, .T., .F. )