Página 2 de 2

Dúvida com DOSPRINTER

Enviado: 18 Dez 2018 09:19
por Mário Isa
bom dia..... gostaria de saber como é que vocês fazem para executar o DOSPRINT.EXE ...

NO meu caso eu executo:

Código: Selecionar todos

comanda := "dosprint.exe /SEL TLTERM1.txt"
run (comanda)
mas ... como utilizo modo GUI (gráfico) uma janela preta (o cmd) é acionado e fica lá enquanto a pessoa não clica o OK (já com a impressora selecionada)

Tem como evitar a telinha preta ??

:-o

Dúvida com DOSPRINTER

Enviado: 18 Dez 2018 09:47
por Jairo Maia
Olá Mário,

Tente acrescentar Start /B no início do comando. Exemplo:

Código: Selecionar todos

comanda := "Start /B dosprint.exe /SEL TLTERM1.txt"

Dúvida com DOSPRINTER

Enviado: 18 Dez 2018 14:05
por Mário Isa
não adiantou...
a janelinha preta aparece ....

colocando /MIN pelo menos ela aparece minimizada ....

Dúvida com DOSPRINTER

Enviado: 18 Dez 2018 18:27
por Jairo Maia
Olá Mario,

Não sei se está disposto a insistir nisso, mas você disse que usa GUI, então você está usando Harbour, é isso?

Se sim você já tentou com a função MyRun()? Ela foi disponibilizada aqui no fórum, e uso até hoje para abrir programas externos com parâmetros:

(PS: Não lembro quem disponibilizou)

Código: Selecionar todos

FUNC MYRUN( cComando, lWait )  // executa programa externo com parâmetros
 Local oShell, ret
 lWait := If( Empty( lWait ), .F., lWait )  // Se .T. aguarda o programa fechar, se .F. não aguarda...
 oShell := CreateObject( "WScript.Shell" )
 ret := oShell:Run( "%comspec% /c " + cComando, 0, lWait )
 oShell := Nil
Return If( ret = 0, .T., .F. )

Dúvida com DOSPRINTER

Enviado: 18 Dez 2018 19:21
por JoséQuintas
https://github.com/JoseQuintas/JoseQuin ... tbegin.prg

Valia também para o Clipper...
O que precisa é... encerrar a impressão... pode ser desligando da impressora.
SET PRINTER TO

Isso salva tudo que está pendente de salvar/imprimir.

Sobre executar... Talvez wapi_ShellExecute(), mas se dosprint é um programa DOS... vai sempre abrir janela DOS.

Teoricamente o que dosprint faz é o mesmo que wapi_PrintFileRaw() ou wapi_PrintDataRaw()

Dúvida com DOSPRINTER

Enviado: 18 Dez 2018 19:23
por JoséQuintas
Sobre o comando... o fórum não deixa postar.
De qualquer jeito é uma nova janela

Tendo que colocar diferente pro fórum aceitar o texto:

RUN ( "c m d / c start comando" )

o /b só vi agora. talvez dê certo com esse comando.

Dúvida com DOSPRINTER

Enviado: 19 Dez 2018 09:12
por Mário Isa
Jairo,

Quem disponibilizou esse código do Myrun()
foi o meu amigo Paiva de Uberlândia ....

Eu já o havia experimentado ... sem sucesso ...

agora peguei esse código do jeito q vc disponibilizou e tentei novamente....

mas não adianta ...

a pretinha está sempre lá ....

eu já dei o meu jeitinho, é claro.... tenho um outro processo (um outro programa, um outro .exe) que fica rodando em background ...... sem botão (oculto) ..... que é responsável por executar os comandos DOS para mim ..... (há troca de informações por .txt) ..... ele executa e não aparece janela preta ..... (mas ele também executa outras coisas) ....

mas gostaria de me livrar .... pois ele "come" memória...

Dúvida com DOSPRINTER

Enviado: 06 Fev 2019 19:54
por Mario Mesquita
Pessoal, boa noite!

Levantei o tópico por que estou com o mesmo problema. Estou usando um programa externo pra gerar QR-Code, já que o do HMG-Zebra tem um problema com texto. É um programa com tela gráfica mas que aceita linha de comando via RUN.

No HMG 3.0.46 não bota essa tela preta, mas no 3.4.4 aparece e ainda não consegui resolver isso.

Alguém descobriu algo que ajude a sumir com isso?

Desde já, agradeço a dica.

Abraço,
Mario.

Dúvida com DOSPRINTER

Enviado: 16 Fev 2019 22:26
por Adalberto
Amigos, buenas noches

Desde 2007 uso de esta manera, con todo éxito, ojalá les sea de utilidad.

Código: Selecionar todos

DO CASE
CASE (nAnchoHoja = 080); cCpi:= ' /CPI10' 
CASE (nAnchoHoja = 132); cCpi:= ' /CPI17'
CASE (nAnchoHoja > 132); cCpi:= ' /CPI22'
ENDCASE
//
// cCpi == Caracteres por pulgada
//
cRtf    :=  ' /PDF'         // Genera PDF 
cLuc   :=  ' /LUC'         // Fuente Lucida Console
cHoriz:= ' /LAND'        // Para impresion Horizontal
//
cParametros:= (cCpi + ' /CP850 /TOP0.5 /DELAY0' ;
		+ cRtf + cLuc + cHoriz + ' ' + cArchTxt)
//
// DELAY0 es para que DosPrinter libere el sistema
// antes de terminar de imprimir
// cArchTxt = Archivo de texto
//
cComando:= ('D:\MiCarpeta\DosPrinter.EXE' + cParametros)
RunCmd(cComando)
RETURN NIL

...

FUNCTION RunCmd(cComando)
LOCAL oShell:= CreateObject('WScript.Shell')
//
oShell:Run('%comspec% /c ' + cComando, 0, .T.)
RETURN NIL
Saludos, desde Santa Cruz de la Sierra - Bolivia

Adalberto

Dúvida com DOSPRINTER

Enviado: 17 Fev 2019 12:47
por Mário Isa
Sí, muy bien. la ventana negra no saltó al frente pero la continuación del programa queda en la dependencia de cerrar el programa que fue llamado por este comando. es necesario agregar start al principio del comando .. hice un intento cambiando la línea:

Código: Selecionar todos

oShell: Run ('%comspec% /c' + cComando, 0, .T.)
por

Código: Selecionar todos

oShell: Run ('start %comspec% /c' + cComando, 0, .T.)
pero ha fallado

segue o erro
Subsystem Call ....: WScript.Shell
System Code .......: 3
Default Status ....: .F.
Description .......: DISP_E_MEMBERNOTFOUND
Operation .........: RUN
Arguments .........: [ 1] = Type: C Val: start %comspec% /c calc.exe [ 2] = Type: N Val: 0 [ 3] = Type: L Val: .T.
Involved File .....:
Dos Error Code ....: 0

gracias por la contribuicion.

Dúvida com DOSPRINTER

Enviado: 25 Fev 2019 21:52
por Adalberto
Mario, buenas noches

El ejemplo que compartí me funciona muy bien, todos los dias desde 2007.
Yo voy a suponer que el reporte es extenso, mientras imrpime o visualiza el sistema es LIBERADO, con el parámetro /DELAY0 (DELAY CERO), por favor revisa si ese parámetro está bien escrito.

Atento saludo, Adalberto

Dúvida com DOSPRINTER

Enviado: 25 Fev 2019 23:38
por JoséQuintas
Mário Isa escreveu:pero ha falladosegue o erro Subsystem Call ....: WScript.ShellSystem Code .......: 3Default Status ....: .F.Description .......: DISP_E_MEMBERNOTFOUNDOperation .........: RUNArguments .........: [ 1] = Type: C Val: start %comspec% /c calc.exe [ 2] = Type: N Val: 0 [ 3] = Type: L Val: .T.Involved File .....: Dos Error Code ....: 0
Já falado em outros tópicos.
Como o XHarbour não é atualizado, cada LIB faz de seu próprio jeito, tem LIB que substitui o CreateObject() e tem LIB que cria outra função com outro nome.

Mas... aqui é sobre Clipper....