Página 1 de 1

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

Enviado: 27 Jul 2015 11:08
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

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

Enviado: 27 Jul 2015 12:44
por Kapiaba

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

Enviado: 28 Jul 2015 09:23
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

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

Enviado: 17 Mai 2018 20:03
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 ???

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

Enviado: 17 Mai 2018 20:23
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

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

Enviado: 17 Mai 2018 21:01
por JoséQuintas
teste usando start /min

RUN ( "start /min dosprint.exe arquivo.prn" )