VB .NET - Exibindo a memória disponível e o uso do processador

 Neste artigo eu vou mostrar como calcular e exibir a memória usada e a disponível e o percentual de uso do processador em uma aplicação Windows Forms usando a linguagem VB .NET.

Neste artigo eu vou usar objeto My.Computer, que permite obter propriedades para manipular os componentes do computador, como áudio, o relógio, o teclado, o sistema de arquivos e assim por diante, para obter informações da memória e do processador usado.

Mais especificamente estarei usando os recursos de My.Computer.Info que fornece propriedades para obter informações sobre a memória do computador, assemblys carregados, nome e sistema operacional.

As propriedades disponíveis da classe ComputerInfo são:

AvailablePhysicalMemory Obtém a quantidade total de memória física para o computador.
AvailableVirtualMemory Obtém a quantidade total de espaço de endereçamento virtual livre do computador.
InstalledUICulture Obtém a cultura UI atual instalada com o sistema operacional.
OSFullName Obtém o nome completo do sistema operacional.
OSPlatform Obtém o identificador de plataforma para o sistema operacional do computador.
OSVersion Obtém a versão do sistema operacional do computador.
TotalPhysicalMemory Obtém a quantidade total de memória física para o computador.
TotalVirtualMemory Obtém a quantidade total de espaço de endereço virtual disponível para o computador.

Vamos usar também a classe PerformanceCounter que representa um componente contador de desempenho do Windows NT.

O componente PerformanceCounter pode ser usado tanto para ler contadores predefinidos com customizados e publicar dados de desempenho para contadores personalizados.

O contador é o mecanismo por que os dados de desempenho são coletados.

O Registro armazena os nomes de todos os contadores, cada qual está relacionado a uma área específica da funcionalidade do sistema. Os exemplos incluem o tempo ocupados de um processador, o uso de memória, ou o número de bytes recebidos sobre uma conexão de rede.

Para ler um contador de desempenho, crie uma instância da classe PerformanceCounter , defina CategoryNameCounterName, e, opcionalmente, as propriedades InstanceName ou MachineName e em seguida, chame o método de NextValue para tomar a leitura do contador de desempenho.

Recursos usados :

Implementando a leitura de desempenho da memória e CPU

Abra o VS Express 2013 for Windows Desktop e clique em New Project;

A seguir selecione a linguagem Visual Basic e o template Windows Forms Application;

Informe o nome MetricaCPU e clique no botão OK;

A seguir selecione o  formulário padrão form1.vb e altere o seu nome para frmAlunos e a seguir inclua, a partir da ToolBox, os seguintes controles:

Defina as seguintes propriedades do formulário form1.vb:

Defina o leiaute do formulário conforme a figura abaixo:
 

Declare logo após a declaração formulário as variáveis total e cpu que iremos usar no projeto:

Dim total As Integer
Dim cpu As Integer

A seguir defina o código a seguir no evento Load do formulário para obter o nome do sistema operacional usado:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      lblSistema.Text = My.Computer.Info.OSFullName & " " & My.Computer.Info.OSPlatform
End Sub

No evento Tick do controle Timer1 defina o código a seguir que obtém a memória física usada e calcula o desempenho da CPU usando o componente PerformanceCounter:   

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
   total = Val(My.Computer.Info.TotalPhysicalMemory) / 1024 / 1024
   lblTotalMemoria.Text = total & " MB"
   lblMemoriaDisponível.Text = (Int(Val(My.Computer.Info.AvailablePhysicalMemory) / 1024 / 1024)) & " MB"
   lblMemoriaUsada.Text = total - Val(lblMemoriaDisponível.Text) & " MB"
   pgbMemoria.Maximum = Val(lblTotalMemoria.Text)
   pgbMemoria.Value = Val(lblMemoriaUsada.Text)
   cpu = PerformanceCounter1.NextValue
   lblProcessador.Text = cpu & " %"
End Sub

No evento Tick do controle Timer2 temos o código exibe na ProgressBar o uso do processador: 

 Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
    pgbProcessador.Value = cpu
       If pgbProcessador.Value < cpu Then
                pgbProcessador.Value += 1
       ElseIf pgbProcessador.Value > cpu Then
               pgbProcessador.Value -= 1
       End If
End Sub

Executando o projeto iremos obter:

Pegue o projeto completo aqui:    Metrica_CPU.zip

Bons códigos...

Porque eu, pela lei, estou morto para a lei, para viver para Deus.
Já estou crucificado com Cristo; e vivo, não mais eu, mas Cristo vive em mim; e a vida que agora vivo na carne, vivo-a pela fé do Filho de Deus, o qual me amou, e se entregou a si mesmo por mim.

Gálatas 2:19-20

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 ?


             Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter
 

Referências:


José Carlos Macoratti