Fórum Impressora on-line (como saber se a impressora está on-line #177383
25/08/2003
0
Machado
Curtir tópico
+ 0Posts
28/08/2003
Allen74
Para uma impressora local, você poderia utilizar funções da BIOS (mais precisamente a INT $17) para que fosse retornado os bits de status da impressora que poderiam indicar se a impressora está online.
Ocorre que o acesso direto ao hardware, com citado acima não é permitido em sistemas operacionais com tecnologia NT, como o Windows/NT/2000/XP. Nestes sistemas operacionais, somente o SPOOL de impressão tem permissão para acesso e conhecimento do status da impressora.
Sendo assim, principalmente para uma impressora na rede (que logicamente não propaga o status da impressora para os computadores cliente), é impossível saber se a mesma está online sem antes tentar enviar um trabalho de impressão para o Spool.
Pesquisando um pouco sobre este assunto, encontrei um site contendo diversas referências interessantes sobre o delphi, especificamente sobre Delphi e impressoras, neste link:
http://homepages.borland.com/efg2lab/Library/Delphi/Printing/
Mais especificamente sobre a detecção de impressoras online, nesta mesma página, encontrei as seguintes referências:
Traduzindo um trecho do segundo post de Peter Bellow (só para quem não sabe, faz parte do Team B, equipe do Delphi na Borland):
Neste mesmo artigo ele fornece um exemplo de código fonte que consulta os trabalhos de impressão existentes utilizando as duas chamadas à API do Win32 citadas. Com uma consulta ao help da API do Windows (win32.hlp) você pode descobrir os códigos e status retornados por estas bibliotecas.
Não sei quais são suas necessidades específicas, mas mesmo que você verificasse que uma impresora está online não há como garantir que ela não terá problemas no meio da impressão. Assim, a forma mais inteligente é deixar o trabalho para o spool e consultá-lo sobre o status do trabalho quando for de interesse.
Gostei + 0
28/08/2003
Machado
Gostei + 0
28/08/2003
Allen74
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)