AJUDA COM CODIGO [PROCESSO]
to usando o seguinte codigo num timer:
esse codigo verifica se um processo ta aberto ou nao, porem eu preciso que ele exiba a msgbox apenas 1 vez e que ainda continue verificando se o programa esta aberto, tentei de varias formas que achei que dava certo e nada...
alguem sabe uma maneira de fazer isso?
des de ja vlw galera
Dim myprocesses As Process()
Dim PROCESSOPENED As Boolean = False
myprocesses = Process.GetProcessesByName([Ô]calc[Ô])
If myprocesses.Length > 0 Then
msgbox([Ô]Rodando[Ô])
else
msgbox([Ô]Fechado[Ô])
end if
esse codigo verifica se um processo ta aberto ou nao, porem eu preciso que ele exiba a msgbox apenas 1 vez e que ainda continue verificando se o programa esta aberto, tentei de varias formas que achei que dava certo e nada...
alguem sabe uma maneira de fazer isso?
des de ja vlw galera
vamos la eu fiz assim e deu certo aqui ! na primeira parte usando um botao !
e se for trabalhar com ele dentro de um timer, coloque assim
o Codigo esta comentado.
Abraços
Public Class Form1
Dim blnMensagemNegativo As Boolean
Dim blnMensagemPositivo As Boolean
Dim blnProcessoRodando As Boolean
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
For Each processo As Process In Process.GetProcesses()
[ô]Verifica se o Notepad esta aberto
If processo.ProcessName = [Ô]notepad[Ô] Then
[ô]diz que ele esta rodando e envia a mensagem
blnProcessoRodando = True
EnviaMensagem()
Exit Sub
End If
Next processo
[ô]se ele nao saiu da sub ele nao encontrou o processo entao ele diz que o processo nao esta rodando e chama as messagebox
blnProcessoRodando = False
EnviaMensagem()
End Sub
Private Sub EnviaMensagem()
If blnProcessoRodando = True And blnMensagemPositivo = False Then
[ô]aqui verifico se o processo esta rodando e se a mensagem nao foi dada
[ô]dai eu troco os valores, mensagem positivo sim e mensagem negativo nao
MessageBox.Show([Ô]O processo esta rodando !!![Ô])
blnMensagemPositivo = True
blnMensagemNegativo = False
End If
If blnProcessoRodando = False And blnMensagemNegativo = False Then
[ô]aqui verifico se o processo não esta rodando e se a mensagem nao foi dada
[ô]dai eu troco os valores, mensagem negativo sim e mensagem positivo nao
MessageBox.Show([Ô]O processo não esta rodando !!![Ô])
blnMensagemNegativo = True
blnMensagemPositivo = False
End If
End Sub
End Class
e se for trabalhar com ele dentro de um timer, coloque assim
Public Class Form1
Dim blnMensagemNegativo As Boolean
Dim blnMensagemPositivo As Boolean
Dim blnProcessoRodando As Boolean
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Timer1.Start()
End Sub
Private Sub EnviaMensagem()
Timer1.Stop()
If blnProcessoRodando = True And blnMensagemPositivo = False Then
[ô]aqui verifico se o processo esta rodando e se a mensagem nao foi dada
[ô]dai eu troco os valores, mensagem positivo sim e mensagem negativo nao
Application.DoEvents()
MessageBox.Show([Ô]O processo esta rodando !!![Ô])
blnMensagemPositivo = True
blnMensagemNegativo = False
End If
If blnProcessoRodando = False And blnMensagemNegativo = False Then
[ô]aqui verifico se o processo não esta rodando e se a mensagem nao foi dada
[ô]dai eu troco os valores, mensagem negativo sim e mensagem positivo nao
Application.DoEvents()
MessageBox.Show([Ô]O processo não esta rodando !!![Ô])
blnMensagemNegativo = True
blnMensagemPositivo = False
End If
Timer1.Start()
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
For Each processo As Process In Process.GetProcesses()
[ô]Verifica se o Notepad esta aberto
If processo.ProcessName = [Ô]notepad[Ô] Then
[ô]diz que ele esta rodando e envia a mensagem
blnProcessoRodando = True
EnviaMensagem()
Exit Sub
End If
Next processo
[ô]se ele nao saiu da sub ele nao encontrou o processo entao ele diz que o processo nao esta rodando e chama as messagebox
blnProcessoRodando = False
EnviaMensagem()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Timer1.Stop()
End Sub
End Class
o Codigo esta comentado.
Abraços
cara é isso mesmo!!! muito obrigado!
Tópico encerrado , respostas não são mais permitidas