VB .NET - Acessando e exibindo os processos em execução
Neste artigo veremos como acessar e exibir os processos em execução usando o VB .NET. |
Para exibir uma lista de processos que esta rodando na sua máquina local basta usar a classe System.Diagnostics.Process para acessar a coleção de objetos que representam todos os processos que rodam atualmente.
É o que vamos fazer neste artigo.
recursos
Criando o projeto Windows Forms
Abra o VS 2017 e no menu Project clique em New Project;
Selecione Visual Basic e Windows Desktop e a seguir escolha o template Windows Forms App(.NET Framework);
Informe o nome TaskManager e clique no botão OK.
A seguir no formulário padrão inclua os seguintes controles:
Disponha os controles conforme o leiaute abaixo:
Neste exemplo vamos implementar a funcionalidade de encerrar um processo selecionado.
Agora vamos ao código do formulário.
1 - Evento Load do formulário
Private Sub frmMain_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
txtNomeComputador.Text = System.Environment.MachineName.ToString
Call PreencherLista(txtNomeComputador.Text)
End Sub
|
Neste código atribuimos o nome do computador à caixa de texto e chamamos o método PreencherLista() passando o nome do computador.
2 - Método PreencherLista()
Sub PreencherLista(ByVal nomeComputador As String)
Dim Prc() As Process
Dim i As Integer
Dim lvwP As ListViewItem
Try
lvProcessos.Items.Clear()
Prc = Process.GetProcesses(nomeComputador)
For i = 0 To UBound(Prc)
lvwP = lvProcessos.Items.Add(Prc(i).ProcessName.ToUpper)
If nomeComputador <> System.Environment.MachineName Then
lvwP.SubItems.Add("Indisponível...")
lvwP.SubItems.Add("Indisponível...")
lvwP.SubItems.Add(Prc(i).Id)
Else
lvwP.SubItems.Add(Prc(i).MainWindowTitle)
lvwP.SubItems.Add(Prc(i).Responding)
lvwP.SubItems.Add(Prc(i).Id)
End If
Next
Catch
lvProcessos.Items.Add("Erro ao enumerar os items...")
End Try
End Sub
|
A classe System.Diagnostics.Process inclui um membro estático chamado GetProcesses() que retorna a coleção de objetos processos cada um representando um processo que esta em execução.
Os objetos Process incluem muitas propriedades e métodos que permitem a você efetuar o tratamento para cada processo dependendo do nível de autorização de acesso concedido pelo administrado do sistema.
Um exemplo é o método Kill que força o encerramento do processo. Quando um processo com uma interface gráfica esta em execução o seu loop de mensagens esta no estado de espera. O loop executa cada momento que uma mensagem Windows é enviada para o processo pelo sistema operacional. Para forçar o encerramento do processo você pode usar o método Kill.
Este método é executado de forma assíncrona. Depois de chamar o método Kill chame o método WaitForExit para esperar o processo encerrar ou verifique a propriedade HasExited para determinar se o processo foi encerrado.
3 - Evento Click do botão Encerrar Processo
Private Sub btnEncerrarProcesso_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles btnEncerrarProcesso.Click Dim Prc As Process
If txtNomeComputador.Text = System.Environment.MachineName.ToString Then |
Neste código obtemos o ID do processo através da seleção do usuário :
Prc = Process.GetProcessById(lvProcessos.SelectedItems(0).SubItems(3).Text)
A seguir chamamos o método Kill() para encerrar o processo.
Finalmente para atualizar a exibição dos processos temos o código abaixo no evento Click do botão Atualizar:
Private Sub
btnAtualizar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnAtualizar.Click txtNomeComputador.Text = txtNomeComputador.Text.ToUpper Call PreencherLista(txtNomeComputador.Text) End Sub |
Simplesmente chamamos novamente o método PreecherLista().
Executando projeto iremos obter:
Pegue o projeto implementado aqui: Gerenciador_Tarefas_VBNET.zip (sem as referências)
"Combati o bom combate, acabei a
carreira, guardei a fé.
Desde agora, a coroa da justiça me está guardada, a qual o Senhor, justo
juiz, me dará naquele dia;
e não somente a mim, mas também a todos os que amarem a sua vinda. "
2
Timóteo 4:7,8
Veja os
Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique
e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
ASP .NET Core 2 - MiniCurso Básico - Macoratti
ASP .NET Core - Macoratti
Criando um serviço do Windows - Macoratti
Exibindo os processo em execução - Macoratti.net
C# - Tratando com serviços do Windows - Macoratti
C# - Gerenciando Processos e Threads em Windows ... - Macoratti.net