Dúvida com DOSPRINTER

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Mário Isa
Usuário Nível 4
Usuário Nível 4
Mensagens: 907
Registrado em: 07 Jul 2004 13:54
Localização: Ilha Solteira-sp

Dúvida com DOSPRINTER

Mensagem 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
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Dúvida com DOSPRINTER

Mensagem 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"
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Mário Isa
Usuário Nível 4
Usuário Nível 4
Mensagens: 907
Registrado em: 07 Jul 2004 13:54
Localização: Ilha Solteira-sp

Dúvida com DOSPRINTER

Mensagem por Mário Isa »

não adiantou...
a janelinha preta aparece ....

colocando /MIN pelo menos ela aparece minimizada ....
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Dúvida com DOSPRINTER

Mensagem 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. )
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Dúvida com DOSPRINTER

Mensagem 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()
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Dúvida com DOSPRINTER

Mensagem 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.
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/
Mário Isa
Usuário Nível 4
Usuário Nível 4
Mensagens: 907
Registrado em: 07 Jul 2004 13:54
Localização: Ilha Solteira-sp

Dúvida com DOSPRINTER

Mensagem 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...
Avatar do usuário
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

Dúvida com DOSPRINTER

Mensagem 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.
Adalberto
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 01 Set 2007 01:09
Localização: Santa Cruz de la Sierra - Bolivia

Dúvida com DOSPRINTER

Mensagem 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
Mário Isa
Usuário Nível 4
Usuário Nível 4
Mensagens: 907
Registrado em: 07 Jul 2004 13:54
Localização: Ilha Solteira-sp

Dúvida com DOSPRINTER

Mensagem 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.
Adalberto
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 01 Set 2007 01:09
Localização: Santa Cruz de la Sierra - Bolivia

Dúvida com DOSPRINTER

Mensagem 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
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Dúvida com DOSPRINTER

Mensagem 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....
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