Gostaria muito de uma ajuda em meu soft,já coloquei em varios foruns e até agora não consegui a resposta, vamos ver se aqui encontro algum help.
Tenho um código onde meu form fica rodando em segundo plano.Tem um time monitorando a impressão, assim que alguém solicita a impressão ele abre uma janela solicitando alguns dados que serão gravados em bd.Ele esta fazendo isto normalmente, só que tenho 2 problemas.
-Se por um acaso, por exemplo: acabou o papel da impressora, aquele trabalho fica na fila de impressão, o form sera chamado ate que alguém coloque papel e não é isso que eu quero, eu desejo que o form seja chamado somente uma vez(não sei se existe algum identificador exclusivo para cada impressão).
Pergunta
Guest --Magneto --
Bom dia...
Gostaria muito de uma ajuda em meu soft,já coloquei em varios foruns e até agora não consegui a resposta, vamos ver se aqui encontro algum help.
Tenho um código onde meu form fica rodando em segundo plano.Tem um time monitorando a impressão, assim que alguém solicita a impressão ele abre uma janela solicitando alguns dados que serão gravados em bd.Ele esta fazendo isto normalmente, só que tenho 2 problemas.
-Se por um acaso, por exemplo: acabou o papel da impressora, aquele trabalho fica na fila de impressão, o form sera chamado ate que alguém coloque papel e não é isso que eu quero, eu desejo que o form seja chamado somente uma vez(não sei se existe algum identificador exclusivo para cada impressão).
-Capturar o número de paginas impressas.
Aqui esta o codigo:
----------------------------------------------------------------
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
Do While lJobCount = 1
Loop
lNeeded = 0
lJobCount = 0
End If
Next
End Sub
------------------------------------------------------
Obrigado pela atenção.
Rodrigo
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
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.