Como testar as portas paralelas de impressora?

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
clodoaldomonteiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 821
Registrado em: 30 Dez 2006 13:17
Localização: Teresina-PI
Contato:

Como testar as portas paralelas de impressora?

Mensagem 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.
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: Como testar as portas paralelas de impressora?

Mensagem 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,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Como testar as portas paralelas de impressora?

Mensagem 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...
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder