Página 1 de 1

Problema ao abrir PDF automaticamente

Enviado: 06 Mai 2019 08:09
por tonicm
Gero um PDF em harbour e abro o mesmo automaticamente (através da minha aplicação) com a aplicação predefinida no windows.
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.

Código: Selecionar todos

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 ) ) );
}

Código: Selecionar todos

wapi_ShellExecute(, , cFile)

Código: Selecionar todos

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

Problema ao abrir PDF automaticamente

Enviado: 06 Mai 2019 09:48
por Kapiaba
Que ferramentas você usa?

Problema ao abrir PDF automaticamente

Enviado: 06 Mai 2019 10:22
por tonicm
Kapiaba escreveu:Que ferramentas você usa?
Não percebi bem a pergunta.

Método de trabalho:
- Harbour 3.4.0dev (5d4d604) (2017-07-02 23:32)
- Crio o PDF com o PageScript32 - compilo assim: ps32.hbc
- A aplicação grava o PDF numa pasta específica e depois executa um dos comandos que mencionei para abrir o PDF

Problema ao abrir PDF automaticamente

Enviado: 06 Mai 2019 12:31
por Kapiaba
Não manjo de harbour, mas veja se assim vai ou ache o comando equivalente em Harbour.
Tem que funcionar.

Código: Selecionar todos

   ShellExecute(GetActiveWindow(),"open",'"'+cNomePDF+'"', 0 )
Abs.

Problema ao abrir PDF automaticamente

Enviado: 06 Mai 2019 12:57
por Kapiaba

Problema ao abrir PDF automaticamente

Enviado: 06 Mai 2019 14:14
por tonicm
Kapiaba escreveu:Não manjo de harbour, mas veja se assim vai ou ache o comando equivalente em Harbour.
Tem que funcionar.
Obrigado pela ajuda Kapiaba. :-Y
Esses exemplos já tinha pesquisado, e usei conforme está no meu primeiro tópico.

Pelos testes que fiz, este problema só acontece caso o adobe já esteja aberto antes de iniciar a aplicação.
Acho que tem alguma coisa a haver com o facto de estar a fazer a operação "open" e o adobe já estar aberto.

Problema ao abrir PDF automaticamente

Enviado: 06 Mai 2019 17:00
por Itamar M. Lins Jr.
Ola!
Já usou o hb_processRun() ?

Saudações,
Itamar M. Lins Jr.

Problema ao abrir PDF automaticamente

Enviado: 06 Mai 2019 17:11
por Kapiaba
Se o problema, é o adobe, use o SUMATRAPDF.EXE ou o PDFMACHINE versão grátis.

De uma olhada aqui:

https://pctoledo.org/forum/viewto ... df#p119033

Abs.

Problema ao abrir PDF automaticamente

Enviado: 07 Mai 2019 15:10
por tonicm
Itamar M. Lins Jr. escreveu:Ola!
Já usou o hb_processRun() ?

Saudações,
Itamar M. Lins Jr.
Se o adobe não estiver aberto quando executo a aplicação, funciona tudo bem.
Se o adobe já estiver aberto, a aplicação bloqueia.
Kapiaba escreveu:Se o problema, é o adobe, use o SUMATRAPDF.EXE ou o PDFMACHINE versão grátis.

De uma olhada aqui:

viewtopic.php?f=4&t=18704&p=119033&hilit=sumatrapdf#p119033

Abs.
Usamos o adobe e não posso alterar para outra aplicação.
Qualquer coisa diferente e os clientes já não sabem trabalhar.
Mas penso que vai dar o mesmo problema.

Problema ao abrir PDF automaticamente

Enviado: 07 Mai 2019 17:09
por Jairo Maia
tonicm escreveu:Qualquer coisa diferente e os clientes já não sabem trabalhar.
Não conheço bem o Adobe, eu já disse isso antes que desaconselho o uso do Adobe.

A pergunta é: Ele não tem alguma opção de abrir apenas uma instância? Se sim, creio que poderia alterar para permitir abrir várias estâncias do Adobe.