Oi Billy, desculpe se estou sendo chato, mas a minha intenção é poder ajudá-lo. Permita-me fazer algumas perguntas:
- no servidor, existem várias pastas, uma para cada terminal;
- nessa pasta, o batch faz a ativação da LPT1 ou não, e chama o programa;
1. É dizer para cada terminal tem uma pasta ?
2. Se for assim, tem uma batch para cada terminal, diferenciando quando este tiver uma impressora local conectado à CPU ?
- nesse batch que chama o programa, ele ativa somente a porta LPT1 que necessitará para seus serviços de impressão da seguinte forma, se tiver impressora escrava:
NET USE LPT1 /DELETE
NET USE LPT1 \\numero_de_IP_do_terminal\sua_impressora_escrava
ESTOQUE.EXE
Em negrito, você quis dizer quando não tiver impressora local ?
- se não tiver, chama o programa, não ativando LPT1 nenhuma, passando a usar a LPT1 que estiver em vigor, no momento;
Outra vez em negrito, você quis dizer quando tiver impressora local ?
- outras impressões tais como boletos bancários, e outros mais especÃficos são dirigidos à impressoras LASER, jato de tinta
com respeito as outras impressões:
1. Você se refere às aplicações que não utilizam LPT1 ? Isto é, são impressão em USB através de aplicativos GUI ?
2. Existem duas impressoras para outras impressões ? Estas são do tipo "padrão", isto é: são as impressoras default para o resto dos terminais ?
3. Qual é a porta escolhida para os terminais que precisam imprimir "outras impressões" ?
4. Esses terminais que precisam imprimir "outras impressões" também precisam imprimir no aplicativo em Clipper ?
- ou seja, em última palavra, não há meios (pelo menos que saibamos) de haver diversas LPT1 ativadas
Não vejo ainda impossibilidade de isto ocorrer sempre e quando for respeitado o devido mapeamento para cada terminal. A sugestão é:
1. Se o terminal 2 precisa imprimir em aplicativo em Clipper e "outras impressões" e não tiver nenhum impressora conectada a ele, então faça uma batch para que capture a impressora matricial em LPT2 e capturar a LPT1 para o resto das impressões. Veja exemplo:
NET USE LPT1 \\numero_de_IP_do_terminal_que_é_servidor_de_impressão\nome_impressora_laser_ou_jato_tinta
NET USE LPT2 \\numero_de_IP_do_terminal_que_é_servidor_de_impressão\nome_impressora_matricial
2. Se o terminal 3 precisa imprimir em aplicativo em Clipper e "outras impressões" e tiver alguma impressora conectada a ele (no exemplo abaixo, a impressora a laser está conecta fisicamente a ele), então faça uma batch para que capture apenas a que está faltando. Veja exemplo:
NET USE LPT2 \\numero_de_IP_do_terminal_que_é_servidor_de_impressão\nome_impressora_matricial
3. Se o terminal 4 precisa imprimir em aplicativo em Clipper e "outras impressões" e tiver todas as impressoras conectadas a ele (a impressora a laser e a matricial estão conectas fisicamente a ele), então faça uma batch apenas para chamar sua aplicação e certifique-se que a instalação dfa matricial estiver instalada na porta LPT2.
Outras questões que ficaram pouco esclarecidas:
1. Pode capturar em vez do endereço de IP como nome do terminal ? Dá para mudar isso ?
2. Você pode mudar sua aplicação Clipper para que imprima sempre em LPT2 ?
3. Nessa rede, cada terminal quando executa o NET USE, não se comporta apenas para esse terminal ? Isto é, utilizando o NET USE no terminal 3, acaba influenciando a saÃda no terminal 4 ?
Eu acredito que a impressões do seu aplicativo Clipper devem ser feitas em LPT2, a fim de utilizar uma porta exclusiva para esse fim. Deixando a "default" para impressões comuns. Só para reforçar... é muito conveniente que para cada terminal tenha seu batch especÃfico, mesmo que venha a repetir alguns comandos o importante ´pe fazer sempre a captura na porta de forma FIXA ou DEFINITIVA. Evite fazer re-capturamentos ou re-mapeamentos de impressoras, ja que a sua rede está instável com respeito a impressões. Outra coisa que ajuda muito é direcionar toda impressão para arquivo e depois direcinála no spooler da impressora, isso evita muitos contra-tempos.
Gostaria que você respondesse a todas minhas perguntas na ordem que foram feitas para poder eu entender. Desculpe a minha insistência.