No meu caso tenho adobe acrobat reader.
Quando o adobe não está em uso, o PDF é aberto automaticamente com o adobe.
No entanto se o adobe estiver em execução (com outro PDF), já não abre o PDF gerado, tenho de esperar algum tempo ou sair da aplicação.
Já tentei de várias maneiras, mas acontece sempre isso.
Anexo 3 maneiras que utilizei.
SwapOut(cFile)
FUNCTION SwapOut( cProgram, cParameter )
SHELLEXECUTE( 0, 0, cProgram, cParameter, 0, 1 )
RETURN( NIL )
HB_FUNC( SHELLEXECUTE )
{
hb_retnl( ( LONG ) ShellExecute( ( HWND ) hb_parnl( 1 ),
hb_parc( 2 ), hb_parc( 3 ), hb_parc( 4 ), hb_parc( 5 ),
hb_parni( 6 ) ) );
}
wapi_ShellExecute(, , cFile)
Abre_arquivo( cFile )
FUNCTION Abre_arquivo( cHelpFile )
LOCAL nRet, cPath, cFileName, cFileExt
HB_FNameSplit( cHelpFile, @cPath, @cFileName, @cFileExt )
nRet := _OpenHelpFile( cPath, cHelpFile )
RETURN nRet
#pragma BEGINDUMP
#pragma comment( lib, "shell32.lib" )
#include "hbapi.h"
#include <windows.h>
HB_FUNC( _OPENHELPFILE )
{
HINSTANCE hInst;
LPCTSTR lpPath = (LPTSTR) hb_parc( 1 );
LPCTSTR lpHelpFile = (LPTSTR) hb_parc( 2 );
hInst = ShellExecute( 0, "open", lpHelpFile, 0, lpPath, SW_SHOW );
hb_retnl( (LONG) hInst );
return;
}
#pragma ENDDUMP