BARRA DE PROGRESSAO
Gostaria de saber como fazer para saber o tempo da impressão, mostrando uma progressão.
Véio, é meio complicado, mas dá para fazer por API. Cara, quem gerencia impressão no Windows é o próprio windows, via spool de impressão. A aplicação envia um arquivo para impressão, mas ele não vai nunca direto para a impressora. vai para esse spool.
Então, o lance que você quer só pode ser feito se você conseguir pegar os dados de percentual impresso direto da impressora e a sua barra sempre deve ter o MAX em 100.
A função principal para isso é a EnumJobs (Private Declare Function EnumJobs Lib "winspool.drv" Alias "EnumJobsA" (ByVal hPrinter As Long, ByVal FirstJob As Long, ByVal NoJobs As Long, ByVal Level As Long, pJob As Any, ByVal cdBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long), mas porque é que falei que é complicado: Porque tem uma estrutura diferente de informações de impressão para cada tipo (versão) de sistema operacional. No 98, por exemplo, o status da impressora é o terceiro parà ¢metro, enquanto no 2000 é o quarto e no XP, tem uma estrutura separada só para isso.
Dá uma olhada no http://www.mentalis.org/ e baixa o APIGUDE dos caras, que é uma mão na roda.
Então, o lance que você quer só pode ser feito se você conseguir pegar os dados de percentual impresso direto da impressora e a sua barra sempre deve ter o MAX em 100.
A função principal para isso é a EnumJobs (Private Declare Function EnumJobs Lib "winspool.drv" Alias "EnumJobsA" (ByVal hPrinter As Long, ByVal FirstJob As Long, ByVal NoJobs As Long, ByVal Level As Long, pJob As Any, ByVal cdBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long), mas porque é que falei que é complicado: Porque tem uma estrutura diferente de informações de impressão para cada tipo (versão) de sistema operacional. No 98, por exemplo, o status da impressora é o terceiro parà ¢metro, enquanto no 2000 é o quarto e no XP, tem uma estrutura separada só para isso.
Dá uma olhada no http://www.mentalis.org/ e baixa o APIGUDE dos caras, que é uma mão na roda.
Tópico encerrado , respostas não são mais permitidas