Página 1 de 2
Erro de isprinter()
Enviado: 18 Out 2007 10:13
por juniorcamilo
Amigos não entendo, c nao tiver nenhuma impressora instalada no XP e vc tentar imprimir (ou c mesmo a impressora estiver off line) e antes usar o comando isprinter() trava a aplicação e nao retorna .f. para avisar que impressora esta desligado ou desconectada.. O que fazer????
Enviado: 18 Out 2007 10:29
por ederxc
como voce esta enviando para impressora , se no estiver enviando na porta LPT2: não funciona , esta função apenas faz tratamento com a LPT1:
Enviado: 18 Out 2007 10:34
por Maligno
A função PrintReady(), da CATools, é um pouco mais flexível neste caso. Ela permite testar outras portas, além da LPT1.
Enviado: 18 Out 2007 10:37
por Pablo César
Mas se for impressora de rede, então esqueça de testar se a impressora está habilitada ou não. Ao menos com ISPRINTER e PRINTREADY, digo. E se não me engano em XP essas funções não funcionam muito bem (acho que eu ja lí algo similar aqui no fórum).
Enviado: 18 Out 2007 10:40
por Maligno
Se a impressora está em rede não dá pra testar. É só pra impressora local. Aliás, meu conselho é: esqueça esse tipo de teste. Uma hora vai usar uma impressora remota, seja de forma direta ou pelo spooler. Então, se não dá pra testar todas, é melhor já esquecer disso de uma vez. Eu já nem uso mais.
Enviado: 18 Out 2007 10:46
por alaminojunior
Realmente, é um recurso interessante porém, com o uso de impressoras remotas e instaladas no XP, 2000, etc... tudo se esvai.
Melhor mesmo é gritar pro cara mais perto da impressora: "PODE MANDAAAAR"
Enviado: 18 Out 2007 10:50
por Pablo César
Eu também acho. Esse negócio de avisar ao usuário que a impressora está desligada... já é coisa para levar o usuário de maozinhas dadas (não é crítica a ninguém em especial, somente é uma opinião de conceitos). Outra coisa que acho válido é a criação de arquivo de impressão e não jogar a impressão diretamente à impressora, porque dessa maneira evitaria lentidão e tráfego "amarrado" durante a impressão. Mas é claro, esse é outro conceito de impressão que a maioria não está acostumado a imprimir (a de colocar na fila de imressão, no spooler me refiro).
Enviado: 18 Out 2007 10:52
por Maligno
Melhor mesmo é gritar pro cara mais perto da impressora: "PODE MANDAAAA
Vixe! Haja fôlego.

))))))))
Enviado: 18 Out 2007 10:55
por Maligno
Pablo César escreveu:Outra coisa que acho válido é a criação de arquivo de impressão
Sem falar que também facilita a questão do preview. Pra quem usa isso, claro.
Enviado: 18 Out 2007 10:59
por Pablo César
Ahh sim do preview e também para não causar re-processamento para elaborar o mesmo relatório quando a impressora falha durante a impressão (engasga papel, falta de tinta, etc...)
Enviado: 18 Out 2007 11:01
por Maligno
Apesar do spooler ser uma porcaria, ainda é um recurso interessante. E sendo ele o meio de impressão, infelizmente não dá pra testar a impressora. Acharia realmente muito bom se fosse possível, mas não dá. É sacrificar uma coisa pra obter outra.
Enviado: 18 Out 2007 11:15
por Pablo César
realmente muito bom se fosse possível, mas não dá. É sacrificar uma coisa pra obter outra.
Dá até acho que daria mas como você disse seria sacrificar uma coisa por outra.
A idéia de monitorar se a impressora está habilitada em impressoras de rede, poderia ser feito um aplicativo que criasse um arquivo.OK a todo instante e de outras estações verificar se tal arquivo está atualizado. Mas de todas forma isso não seria a melhor forma de fazer, pois a hora de cada computador pode estar diferente (mesmo que tenha sido sincronizada com o comando NET TIME, como eu acostumo fazer).
Enviado: 18 Out 2007 11:17
por Maligno
poderia ser feito um aplicativo que criasse um arquivo
Acho que, pelo teor gambiarrístico, o crime não compensaria.

Enviado: 18 Out 2007 11:23
por Pablo César
hihihi na verdade tudo que possa ser feito não passaria de uma embaranhado de gambiarras para obter um informação que não é local. Por falar disso, você acha Maligno que é possível acionar de uma estação a execução de um aplicativo mas que por exemplo trabalhasse de forma local (onde o aplicativo se encontra) ?. Isto é, de uma estação eu chamo um aplicativo que crie um arquivo cujo conteúdo é o resultado do ISPRINTER ou PRINTREADY (vamos dizer) mas que esse aplicativo seja executado na estação X ? Sempre e quando o aplicativo esteja na estação X, é claro.
Enviado: 18 Out 2007 11:25
por alaminojunior
Infelizmente tudo depende do fator humano, até mesmo se o programador fosse o "Murphi" ainda existiria algum impasse.
Por isso sou a favor do grito. Acredito que ele, o Murphi, faria até mais, como por exemplo, colocar uma impressora para cada micro.