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.
Como testar as portas paralelas de impressora?
Moderador: Moderadores
- clodoaldomonteiro
- 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?
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
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Re: Como testar as portas paralelas de impressora?
Clodoaldo, dê uma olhada nas função PrinterPortToName().
Abraços,
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
RETURNCó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
RETURNToledo - 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
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
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Como testar as portas paralelas de impressora?
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...
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
xHarbour.org + Hwgui + PostgreSql