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

Timer Sera que Ajuda?


rodrigotnoma

Pergunta

Tenho em meu form, um botao onde possui o seguinte codigo:

Private Sub Command1_Click()

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

Dim lJobCount As Long

OpenPrinter Printer.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)

If Text1.Text = 1 Then

Form2.Show

End If

End Sub

So que para verificar se a condição existe tenho ficar pressionando o button, como posso fazer para que a cada 1 seg o meu sistema verificar sozinho ou seja, como se ele ficasse monitorando essa condição.

Sera que a melhor opção é com o timer? Se for vai consumir muito processamento do meu pc?

Obrigado pela ajuda.

Rodrigo

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

Fiz dessa forma, mas o form2 não apareceu quando mandei imprimir

Private Sub Form_Load()

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

Dim lJobCount As Long

OpenPrinter Printer.DeviceName, hPrinter, ByVal 0&

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

Do

DoEvents

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

If CStr(lJobCount) = 1 Then

Form2.Show

End If

Loop

End Sub

Fiz alguma coisa de errado?

Obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

ponha o timer e na propriedade Interval dele digite 1000 (1000 milissegundos = 1 segundo).

ai ponha o seu codigo no evento Timer do Timer:

Private Sub Timer1_Timer
Dim hPrinter As Long, lNeeded As Long, lReturned As Long
Dim lJobCount As Long
OpenPrinter Printer.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)
If Text1.Text = 1 Then
Form2.Show
End If
End Sub[/code]

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,3k
×
×
  • Criar Novo...