Utilização do Dosprinter internamente no código do programa

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

marcelomteles
Usuário Nível 1
Usuário Nível 1
Mensagens: 28
Registrado em: 12 Dez 2013 01:46
Localização: são bernardo do campo

Utilização do Dosprinter internamente no código do programa

Mensagem por marcelomteles »

Pessoal bom dia,

Tenho que resolver um pequeno problema em meu sistema e preciso a princípio imprimir uma imagem de fundo no relatório. Sei que podem existir opções melhores e mais fáceis, agradeço se me indicarem quais são, mas aproveitando alguns tópicos aqui do Fórum sobre a utilização do Dosprinter, experimentei este programa e inicialmente, para resolver rapidamente meu problema e posterior partir para uma solução talvez melhor e mais elaborada, esta me atendendo.

O problema é que quando utilizo o dosprinter via prompt, ele funciona muito bem, mas quando utilizo via código do meu prg, ou trava ou não acontece nada. Abaixo a linha de código que estou utilizando dentro do meu prg:

!dosprinter "ARQ.PRN" /IMAGE'FIGURA.JPG,240,180,165'

Estou utilizando o Dosprinter 3.6, Harbour 3.2.

Estou enviando o arquivo prg (desenvolvido no gaspro) para que me orientem em que ponto devo inserir a chamada do Dosprinter, pois já o coloquei em vários pontos e o programa não é chamado.

Por favor comentem e me ajudem sobre a utilização do Dosprinter, mas também gostaria de receber outros sugestões para posterior modificação da solução.

Obrigado.

Marcelo
Anexos
SPS_R033.PRG
(5.64 KiB) Baixado 123 vezes
Marcelo
Harbour 3.2.0
marcelomteles
Usuário Nível 1
Usuário Nível 1
Mensagens: 28
Registrado em: 12 Dez 2013 01:46
Localização: são bernardo do campo

Utilização do Dosprinter internamente no código do programa

Mensagem por marcelomteles »

Kapiaba nom dia,

Eu já havia consultado esta postagem e não consegui evoluir na solução do meu problema. Vou consulta-lo novamente e revisar meu código, mesmo assim aguardo novas propostas de soluções de nossos outros colegas e outras sugestões.

Obrigado


Marcelo
Marcelo
Harbour 3.2.0
clauberromao
Usuário Nível 1
Usuário Nível 1
Mensagens: 24
Registrado em: 17 Mai 2018 19:54
Localização: sobral/ceara

Utilização do Dosprinter internamente no código do programa

Mensagem por clauberromao »

Olá Marcelo Boa Noite !!!
Utilizo o DosPrinter Há Tempos, internamente dentro do sistema, nunca me incomodou uma tela do dos que aparece quando utilizo o Run para executar o DosPrinter, mas um cliente reclamou e pediu que retirasse a tela. alguem ja conseguiu fazer isso ???
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Utilização do Dosprinter internamente no código do programa

Mensagem por asimoes »

Olá,

Tenta esse código:

cParameter = parâmetros para rodar o DosPrinter

A função vai executar o DosPrinter e não vai mostrar a tela dos

Código: Selecionar todos

Execute( "DosPrinter.exe", cParameter, .T.)

FUNCTION Execute( cProgram, cParameter, lEspera ) 
LOCAL oShell, lOk := .T., nStyle, oErro

   lEspera := Hb_DefaultValue(lEspera, .T.)
   
   BEGIN SEQUENCE WITH __BreakBlock()
      oShell := Win_OleCreateObject( "WScript.Shell" )
   RECOVER
      lOk := .F.
   END
   IF lOk
      BEGIN SEQUENCE WITH __BreakBlock()
         /*
         intWindowStyle
         Description
         0  Hides the window and activates another window.
         1  Activates and displays a window. If the window is minimized or maximized, the system restores it to its original size and position. An application should specify this flag when displaying the window for the first time.
         2  Activates the window and displays it as a minimized window.
         3  Activates the window and displays it as a maximized window.
         4  Displays a window in its most recent size and position. The active window remains active.
         5  Activates the window and displays it in its current size and position.
         6  Minimizes the specified window and activates the next top-level window in the Z order.
         7  Displays the window as a minimized window. The active window remains active.
         8  Displays the window in its current state. The active window remains active.
         9  Activates and displays the window. If the window is minimized or maximized, the system restores it to its original size and position. An application should specify this flag when restoring a minimized window.
         10 Sets the show-state based on the state of the program that started the application. 
         */
         nStyle := 0//1
         oShell:Run(cProgram + " " + cParameter, nStyle, lEspera) 
      RECOVER
         lOk := .F.
      END
      oShell := Nil
   ENDIF
   
RETURN lOk
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Utilização do Dosprinter internamente no código do programa

Mensagem por JoséQuintas »

teste usando start /min

RUN ( "start /min dosprint.exe arquivo.prn" )
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder