Página 1 de 1

Como testar as portas paralelas de impressora?

Enviado: 28 Jan 2010 16:03
por clodoaldomonteiro
Hoje existe muitos computadores que não teem porta paralela e quando colocamos nos fontes os comandos "SET PRINTER TO LPT1", o sistema retorna um erro.

Quando eu usava o GASPro 4.0 chamara uma função, "IMPOK()" para testar se a porta está presente no computador, mas no xHarbour to apanhando um pouco paras fazer isso.

Já tentei usar a função IsPrinter(), mas não consegui nada.

Queria então uma fonção que lesse quais as portas existentes no computador, tais como, LPT, COM, USB.

Grato pela atenção.

Re: Como testar as portas paralelas de impressora?

Enviado: 28 Jan 2010 19:16
por Toledo
Clodoaldo, dê uma olhada nas função PrinterPortToName().

Código: Selecionar todos

function main()
LOCAL x_print:= PRINTERPORTTONAME( "lpt1:" )
IF !EMPTY( x_print )
 set printer to (x_print)
ELSE
 Alert( "Não tem impressora em LPT1: " )
ENDIF
RETURN

Código: Selecionar todos

function Main()
LOCAL aPrinters := {}
LOCAL i, cPrinter, cPort
FOR i:=1 TO 5
   cPort    := "LPT" + LTrim( Str(i) ) + ":"
   cPrinter := PrinterPortToName( cPort )
   IF !Empty( cPrinter )
      AAdd( aPrinters, { cPort, cPrinter } )
   ENDIF
NEXT
IF Empty( aPrinters )
   ? "Nenhuma impressora encontrada"
ELSE
   AEval( aPrinters, {|a| Qout( a[1], a[2] ) } )
ENDIF
RETURN
Abraços,

Re: Como testar as portas paralelas de impressora?

Enviado: 31 Jan 2010 10:16
por sygecom
Olá Clodoaldo,
Desculpe mas tenho um ponto de vista diferente para esses casos, eu deixo o usuário escolher a impressora que ele vai imprimir e não me preocupo com esse tipo de coisa, ou seja pode inclusive acontecer de um usuário mandar imprimir nota em uma jato de tinta ou um relatório nas notas fiscais, isso quem tem que cuidar é ele e não meu sistema.
Para isso gero tudo como era no Clipper mesmo com:
SET PRINTER TO arquivo.txt
E no final da geração do arquivo mando aparecer uma janela perguntando a impressora e mando via:
PrintFileRaw( "nome da impressora", "arquivo.txt", "Impressao Pelo Sistema" )
Pense nisso...