Uso da LPT1 em rede TCP/IP
Enviado: 24 Jun 2009 08:57
Obrigado Billy pelos esclarecimentos. Puxa ! Muito estranho isso da rede TCP/IP fazer isso. Sempre achei que tratar tudo com IP fixos, seria a forma mais segura para encaminhar algo. Então ja que estamos falando de IPs... tenho outra sugestão a te fazer. Considerando que existe uma batch para cada terminal (ou até mesmo para um grupo de terminais com as mesmas caracterísitcas) em vez de capturar mande todas as impressões através do IP + impressora correspondentes a esse terminal. Claro, você vai me dizer como diferenciar os diversos endereços e nomes de impressoras para os diversos terminais. Então em vez de capturar as impressoras crie uma ou até mesmo duas variáveis que diga que aquele terminal deverá imprimir na impressora X. Uma vez tendo na variável de ambiente em cada terminal, indicando caminho e nome da impressora, você passaria a ler essa variável através da função cPorta:=GETENV(<nome_da_variavel_de_ambiente>). E para os casos em que somente devem mandar para LPT1 por este seria um terminal com impressora local, daí você asigna a essa mesma variável o valor de "LPT1", depois para imprimir é só copiar o arquivo de impressão para a variável cPorta. Mas em definitiva, não capture mais as impressoras, trate de imprimir direto através dos IPs ou salvo nos casos em LPT1 quando tem impressora local.
Faça então um teste com um aplicativo feito em Clipper numterminal que não tenha impressora local (ou escrava como você acostuma dizer):
cPorta:="\\999.999.99.9\impressora_escrava_desse_IP"
MEMOWRIT("TESTE.TXT","Teste de impressão")
COPY ("TESTE.TXT") TO (cPorta)
Se o resultado era o esperado, você vai ter esse trabalho, mas o importante que não irá ser necessário a captura de impressora. É inviável pedir paa os usuários não entrarem até que outro possa completar a impressão...
Você também checou se não há algum conflito de IP na rede, isto é, dois terminais com o mesmo IP ? Ou até mesmo desgnar o I errado pensando que ese pertence a tal ? Desculpe fazer esta pergunta, mas as vezes o erro pode estar em algo tão óbvio...
Bom boa sorte ! Espero que você consiga !
Faça então um teste com um aplicativo feito em Clipper numterminal que não tenha impressora local (ou escrava como você acostuma dizer):
cPorta:="\\999.999.99.9\impressora_escrava_desse_IP"
MEMOWRIT("TESTE.TXT","Teste de impressão")
COPY ("TESTE.TXT") TO (cPorta)
Se o resultado era o esperado, você vai ter esse trabalho, mas o importante que não irá ser necessário a captura de impressora. É inviável pedir paa os usuários não entrarem até que outro possa completar a impressão...
Você também checou se não há algum conflito de IP na rede, isto é, dois terminais com o mesmo IP ? Ou até mesmo desgnar o I errado pensando que ese pertence a tal ? Desculpe fazer esta pergunta, mas as vezes o erro pode estar em algo tão óbvio...
Bom boa sorte ! Espero que você consiga !