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 125 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: 20415
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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