Tem como testar LPTx quando mapeado para o XP?

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1297
Registrado em: 06 Jul 2004 00:44
Contato:

Tem como testar LPTx quando mapeado para o XP?

Mensagem por ANDRIL »

Ola pessoal,

Sempre percebi que as funcoes ISPRINT() so testa a porta LPT1. Entao passei a usar a lib PRN_LPT.LIB para testar as portas LPT1...LPT3.

Fiz o mapeamento de rede buscando a impressora no micro q tem o XP e imprime normalmente porem se eu desligar a impressora e peço para imprimir de novo na impressora q esta no XP simplesmente aceita e nao retorna o status PORTA INVALIDA.

Tem alguma funcao q funcione corretamente quanto a isso no XP.

A funcao que eu uso é a: C_ISPRINT("LPT2",2,3).

Embora use a funcao não sei qual o significado dos parametros 2,3 se alguem puder esclarecer ficarei grato.


Até mais,
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Mensagem por Clipper »

Veja o que consta no NG :

DESCRIPTION

C_ISPRINT() checks whether a specified port and the printer
attached to the port are ready for printing. This can be used to
check an LPT or a COM port and any printer (dot matrix, laser, etc.)
attached to it.

SYNTAX

C_ISPRINT(port [,delay] [,count])

PARAMETERS

port (C) is the name of the LPT or COM port number and the attached
printer to check. Specify one of the full port names as follows:
LPT1, LPT2, COM1, COM2, etc. If port is not specified, LPT1 is
checked.

delay (N) is the number of seconds to delay after checking a COM
port before checking it again. The delay parameter allows the wait
to be increased if a time-out keeps occurring on a COM device. If
delay is not specified, the default of 1 second is used.

count (N) is the number of times a COM port should be checked
before returning the status. The count parameter allows the times
to check to be increased if a time-out keeps occurring on a COM
device. If count is not specified, the default of 3 times is used.

RETURNS

C_ISPRINT() returns true (.T.) if the specified port and the
attached printer are ready for printing. C_ISPRINT returns false
(.F.) if the port is not ready or the printer is not ready.

EXAMPLES

Código: Selecionar todos

 if !c_isprint()            && Check LPT1 port/printer
   ? "Printer Not Ready"
 endif
 ...
 ...
 if !c_isprint("COM1")      && Check COM1 port/printer
   ? "Printer Not Ready"
 endif
 ...
 ...
 if !c_isprint("COM1",2,4)  && Check COM1 port/printer
   ? "Printer Not Ready"    && Wait 2 seconds each time
 endif                      && and try 4 times.


Existe também a função C_ISLPT()

C_ISLPT()

DESCRIPTION

C_ISLPT() checks the specified LPT port to determine whether it is
ready to receive data.

NOTES

The C_ISLPT() function checks only the LPT port to determine if it
is ready. Depending on the type of printer connection, it may also
be necessary to check the printer itself to determine it's status.

SYNTAX

C_ISLPT(port)

PARAMETERS

port (N) is the LPT port number (1 = LPT1, 2 = LPT2, etc.) to check.

RETURNS

C_ISLPT() returns true (.T.) if the LPT port is ready, otherwise
false (.F.).

EXAMPLES

? c_islpt(1) --> .T. && LPT1 shows it is ready

Até logo.

Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1297
Registrado em: 06 Jul 2004 00:44
Contato:

Mensagem por ANDRIL »

Ola Marcelo,


Obrigado pela dica. Eu tinha os documentos dessa lib mais procurei no micro e acho q perdi entao nao me lembrava.

Vou tentar com a funcao C_ISLPT(port) mais se nao me engano eu tinha escolhido a C_ISPRINT(port [,delay] [,count]) por ter achado ela melhor na epoca.

Não custa tentar! Vou testar e coloco aqui o retorno.


Obrigado mais uma vez,
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Avatar do usuário
Augusto
Usuário Nível 3
Usuário Nível 3
Mensagens: 473
Registrado em: 26 Ago 2003 17:50
Localização: Maricá/RJ
Contato:

Mensagem por Augusto »

Clipper escreveu:C_ISPRINT()
Marcelo... Vc poderia me arrumar essa LIB e a NG tbm ??

Valeu !!
:xau Fui...
goulart@provsul.com.br

Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Mensagem por Clipper »

Prezado Augusto

Na verdade essa lib está "capada", essas funções são da CLIPON, se quiser ela pegue no link abaixo, vai com NG e tudo mais.

www.phrep.com.br/clipon.zip

Até logo.

Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Avatar do usuário
Augusto
Usuário Nível 3
Usuário Nível 3
Mensagens: 473
Registrado em: 26 Ago 2003 17:50
Localização: Maricá/RJ
Contato:

Mensagem por Augusto »

Valeu Marcelo... Já é....
:xau Fui...
goulart@provsul.com.br

Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1297
Registrado em: 06 Jul 2004 00:44
Contato:

Mensagem por ANDRIL »

Ola Pessoal,

Fiz os testes com as funcoes acima mais qdo o mapeamento esta buscando uma impressora no XP mesmo que a impressora esteja desligada todas as funcoes retornam .T. ou seja, como se estivesse on-line pronta para receber os dados.

Ja alterei para imprimir diretamente na impressora mais nao adianta. Como sempre, o XP dificultando nossas vidas.

Tambem notei que quando é feito um mapeamento por exemplo:

NET USE LPT2: \\SERVIDOR\EPSON

ele fica ativo na maquina ponto onde ele foi feito, entao é como as funcoes C_ISPRINT() E AS OUTRAS testassem na verdade este mapeamento retornando .T. pois na verdade a impressora mesmo esta desligada em \\SERVIDOR\EPSON.


Se alguem tiver conhecimento de outras funcoes q funcionem qdo é o XP ficarei grato de saber.


Obrigado a todos,
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
querentino
Usuário Nível 1
Usuário Nível 1
Mensagens: 25
Registrado em: 28 Jan 2009 19:53
Localização: Guarulhos - São Paulo

Tem como testar LPTx quando mapeado para o XP?

Mensagem por querentino »

Olá pessoal, desculpa abrir um tópico tão antigo, kkk
preciso de uma ajuda para testar lpt1 mapeado no XP.
Onde encontro essa Lib e como usar ela.

Uso Clipper 5.3b e Blinker 7.00

Agradeço a atenção de todos.
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Tem como testar LPTx quando mapeado para o XP?

Mensagem por Pablo César »

Olá pessoal, desculpa abrir um tópico tão antigo, kkk
Que nada, na verdade você não está abrindo novo tópico e esta prática aqui sua, é uma prática acertada. Não importa ressuscitar tópicos antigos, está certo você.
preciso de uma ajuda para testar lpt1 mapeado no XP
Antes de buscar uma possível solução para isso, posso te perguntar para que fim é isso ?
Onde encontro essa Lib e como usar ela.
Olha eu achei aqui nos meus arquivos, o CLIPON .LIB e .NG (do Norton Guide). Só que nunca usei e acho que muito provável não irá funcionar. Alguém que me corrija se eu estiver errado, mas a partir do XP isso não é mais utilizável.
Anexos
CLIPON.rar
(200.05 KiB) Baixado 272 vezes
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Tem como testar LPTx quando mapeado para o XP?

Mensagem por Clipper »

Prezado colega.

No XP ou versões mais atualizadas não funciona, vai sempre retornar .T.

Até logo.

Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Tem como testar LPTx quando mapeado para o XP?

Mensagem por Pablo César »

Pois é... tudo por causa do Spooler que passa a controlar a impressão, isto é, o SO passa a controlar e não a aplicação. Leia-se em: http://support.microsoft.com/kb/160129
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
querentino
Usuário Nível 1
Usuário Nível 1
Mensagens: 25
Registrado em: 28 Jan 2009 19:53
Localização: Guarulhos - São Paulo

Tem como testar LPTx quando mapeado para o XP?

Mensagem por querentino »

Como sempre obrigado a todos pela atenção e ajuda.

E vamos tentar outra forma então de contornar esse problema.
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Tem como testar LPTx quando mapeado para o XP?

Mensagem por Pablo César »

E vamos tentar outra forma então de contornar esse problema.
Por isso, só sempre a favor de criação de arquivo de impressão para evitar o re-processamento durante a elaboração dos relatórios e também para economizar tempo quando precisar re-imprimir por falha na impressora. Com isto também consegue-se a opção de visualizar a impressão na tela. Pense nisso !
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1297
Registrado em: 06 Jul 2004 00:44
Contato:

Tem como testar LPTx quando mapeado para o XP?

Mensagem por ANDRIL »

Em se tratando do XP e versões posteriores, acho que a única forma de contralarmos o status da impressão, seria criando um aplicativo que envio um arquivo para a porta desejada e que fizesse acesso ao spooler para obter informações sobre o arquivo enviado. Apos o seu aplicativo enviar a impressao, fazer um loop durante um certo tempo para verificar se deu erro ou se terminou a impressão. Não sei se alguém do forum já criou isso. Se tiver um aplicativo de linha de comando que consiga ler o spooler pode ser a saida, alias, não sei se a Wapi do nosso colega Maligno tem função específica para isso.

Ate+
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Tem como testar LPTx quando mapeado para o XP?

Mensagem por Pablo César »

acho que a única forma de contralarmos o status da impressão, seria criando um aplicativo que envio um arquivo para a porta desejada e que fizesse acesso ao spooler para obter informações
Eu pensei nisso também, mas não consegui fazer essa verificação nem mesmo em forma local. Isto é, a impressora conectada no mesmo computador que o aplicativo de verificação está sendo usado. As vezes funciona bem as vezes não, aliás tem exemplo disso mas não funciona 100% e pelo que tenho visto na internet, em nenhuma outra linguagem de programação isto funciona. Pelo menos até onde eu pesquisei.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Responder