Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

wagnerln

Controle de Impressão no windows

Recommended Posts

Olá pessoal,Desenvolvi um programa semelhante ao que foi postado aqui para visualizar os jobs de impressão que estão na fila das impressoras(sistema de gerenciamento de cota de impressão). O programa faz a leitura da fila e baseado no numero de páginas de impressão, o sistema permite ou não a impressão do usuário. Bom, para isso, preciso ficar verificando todo o tempo as filas e o problema é que esse looping, esta consumindo 60% de processamento da máquina, então gostaria de saber se existe alguma maneira do meu programa ficar dormindo e ser avisado quando a uma nova impressão, ou melhor, alguma mudança nas filas, pois se o usuário deleta o job, eu volto o numero de paginas retiradas.Desde ja agradeço a todos.Abraço Wagner :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode ao invés de deixar o loop em execução o tempo todo inserir um Timer para fazer a verificação a cada 30 seg. (por exemplo), Isso no caso de ter algum alerta... se não, nem é viavel essa verificação temporaria.O mais importante éNo Activate do Form Principal ele tambem fazer a verificação 1 vez, eai enquanto o cara estiver com a tela aberta você faz a verificação +- a cada 5 seg.. Ai no Evento Deactivate você volta o Timer da verificação para 30 seg., ou desativa ele se for o caso!Digo isso, por que ja fis um sistema de envio de mensagens interna (via BD), e essa rotina funcionou perfeitamente.Ok, qualquer coisa duvida posta ai.. falowww até mais!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela sua resposta mas no meu caso, eu tenho que verificar as filas o tempo todo, pois se um usuário manda uma impressão de 1 pagina, o servidor processa e manda pra impressora rapidamente e tenho que interceptar esse job para verificação das páginas, então, a verificação a cada 30 segundos ou 5, não daria serto. Foi por isso que perguntei se tem alguma forma de deixar meu programa dormindo e quando tivesse uma nova impressão, ele fosse avisado para monitorar a fila.Novamente agradeço.Abraços wagner

Você pode ao invés de deixar o loop em execução o tempo todo inserir um Timer para fazer a verificação a cada 30 seg. (por exemplo), Isso no caso de ter algum alerta... se não, nem é viavel essa verificação temporaria.O mais importante éNo Activate do Form Principal ele tambem fazer a verificação 1 vez, eai enquanto o cara estiver com a tela aberta você faz a verificação +- a cada 5 seg.. Ai no Evento Deactivate você volta o Timer da verificação para 30 seg., ou desativa ele se for o caso!Digo isso, por que ja fis um sistema de envio de mensagens interna (via BD), e essa rotina funcionou perfeitamente.Ok, qualquer coisa duvida posta ai.. falowww até mais!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Wagner,

 

seguinte, tb estou atraz de algo assim... Ate onde eu consegui entender, podemos capturar os eventos do spool. Ai, com isso podemos startar uma rotina capturando as informações das impressoras.

 

Agora, como faz para criar esse evento eu nao sei.. achei o seguinte site que mostra como, mas nao consegui entender nada, nem evoluir com o assunto...

 

Mas ateh onde eu entendi, ele usa as apois do windows para criar as rotinas de evento baseado no spool.

 

segue ai os links q eu achei.. e se você consegui desvendar os misterios, por favor, me ajude tb XD

meu e-mail eh andreygalassi@yahoo.com.br

 

Monitoring a Printer Queue from VB.NET

http://www.codeproject.com/KB/printing/printwatchvbnet.aspx

 

Como referência extra

Printing Architecture

http://www.codeproject.com/KB/printing/wpa.aspx

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.