Ir para conteúdo
Fórum Script Brasil
  • 0

Talvez Um While Resolva?


rodrigotnoma

Pergunta

No meu fonte tem um timer que fica verificando se a impressão foi solicitada:

Private Sub Timer1_Timer()

Dim hPrinter As Long, lNeeded As Long, lReturned As Long

Dim lJobCount As Long

For Each impressora In Printers

OpenPrinter impressora.DeviceName, hPrinter, ByVal 0&

EnumJobs hPrinter, 0, 99, 1, ByVal 0&, 0, lNeeded, lReturned

If lNeeded > 0 Then

ReDim byteJobsBuffer(lNeeded - 1) As Byte

EnumJobs hPrinter, 0, 99, 1, byteJobsBuffer(0), lNeeded, lNeeded, lReturned

If lReturned > 0 Then

lJobCount = lReturned

Else

lJobCount = 0

End If

Else

lJobCount = 0

End If

ClosePrinter hPrinter

Text1.Text = CStr(lJobCount)

Text2.Text = lReturned

Text3.Text = lNeeded

If Text1.Text = 1 Then

Form2.Show

Sleep (5000)

lNeeded = 0

lJobCount = 0

End If

End Sub

Tenho uma impressora colorida que demora mais para imprimir e os documentos ficam mais tempo na fila de impressão, assim o meu form2 é chamado mais de uma vez para a mesma impressão.

Tem alguma forma ou ideia de como posso fazer para meu codigo não entender a mesma solicitação como um novo pedido de impressão?

Talvez com um while????????

Obrigado

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Para o parâmetro pJob da função EnumJobs você pode passar uma estrutura na qual existe um membro que é um número de identificação do trabalho de impressão. De posse deste número você poderia fazer uma lista dos trabalhos que já foram detectados e desta maneira não repetir o processamento para um que já tenha passado.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Eu mesmo nunca fiz o que sugeri. Apenas te falei o que eu li (no API-Guide - de onde veio o exemplo acima, aliás) sobre esse parâmetro:

· pJob

[out] Pointer to a buffer that receives an array of JOB_INFO_1 or JOB_INFO_2 structures. The buffer must be large enough to receive the array of structures and any strings or other data to which the structure members point.

To determine the required buffer size, call EnumJobs with cbBuf set to zero. EnumJobs fails, GetLastError returns ERROR_INSUFFICIENT_BUFFER, and the pcbNeeded parameter returns the size, in bytes, of the buffer required to hold the array of structures and their data.

Ah, e uma busca rápido no Google me revelou um exemplo que pode ser interessante para o seu caso: http://www.shengfang.org/blog/p/GETJOBPRINTEREnumJobs.php

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Ola pessoal eu tambem gostaria de fazer um software para gerenciar impressões mas não sei por onde começar eu tentei usar este código ai em cima mas esta incompleto.

Será que algem pode almenos me dizer quais declarações API e/ou referencias que eu tenho que usar.

qualquer juda é valida obrigado!!!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...