VB.NET  - Verificando se uma aplicação esta instalada


 

Verificar se uma aplicação esta instalada usando o VB.NET é muito simples: Basta verificar o registro do Windows.

 

O Namespace Microsoft.Win32 fornece a classe Registry  que vou usar para fazer esta verificação. (Na verdade o Namespace Microsoft.Win32 fornece dois tipos de classes : aquelas que tratam eventos disparados pelo sistema operacional e aquelas que manipula o registro.)

 

Abaixo as classes fornecidas pelo Namespace Microsoft.Win32.

 

Classe Descrição
PowerModeChangedEventArgs Fornece dados para o evento
Registry Fornece as Registrykeys que acessam valores e sub-chaves no registro.
RegistryKey Representa um nó de nível chave no registro.
SessionEndedEventArgs Fornece dados para o evento SessionEnded .
SessionEndingEventArgs Fornece dados para o evento SessionEnding .
SystemEvents Fornece um conjunto de eventos de sistema global .
TimerElapsedEventArgs Fornece dados para o evento TimerElapsed .
UserPreferenceChangedEventArgs Fornece dados para o evento UserPreferenceChanged
UserPreferenceChangingEventArgs Fornece dados para o evento UserPreferenceChanging

 

A classe Registry fornece um conjunto de chaves raiz padrão encontradas no registro das máquinas Windows. O registro é um banco de dados que armazena informações sobre aplicações, usuários e configurações.

 

Para maiores informações sobre o registro leia o artigo :  VB .NET - Trabalhando com o registro do Windows.

 

Voltando ao nosso artigo iremos escrever uma função que recebe como parâmetro o nome da aplicação que desejamos verificar se esta instalada e a seguir faz a verificação pela chave no registro do Windows.

 

O código da função é dado a abaixo :

 

 Function IsAplicacaoInstalada(ByVal pSubKey As String) As Boolean

        Dim isInstalada As Boolean = False

        ' Declara uma variável do tipo RegistryKey chamada raizRegistryKey
        ' Atribuir a chave do ClassRoot do Registro para uma variavel  raizRegisteryKey
        Dim classesRootRegistryKey As RegistryKey = Registry.ClassesRoot

        ' Declara uma variavel do tipo RegistryKey chamada subKeyRegistryKey.
        ' Chama o metodo OPenSubKey de raizRegistryKey passando o parametro na pSubKey nesta funcao
        ' Atribuir o resultado retornado a suKeyRegistryKey.

        Dim subKeyRegistryKey As RegistryKey = classesRootRegistryKey.OpenSubKey(pSubKey)

        ' Se subKeyRegistryKey tem um valor atribuido...
        If Not subKeyRegistryKey Is Nothing Then
            ' A chave existe e a aplicação esta instalada
            isInstalada = True
           ' Fecha o subKeyRgisteryKey.
            subKeyRegistryKey.Close()
        End If
 
        Return isInstalada
    End Function

 

 

Agora é só você usar a função informando o nome da aplicação. Uma das formas seria você criar um novo projeto no VB.NET e no formulário padrão incluir uma caixa de texto - txtAplicacao - e um botão de comando - btnVerificar -.

 

Inclua a função no formulário e a seguir no evento clique do botão de comando - btnVerificar - inclua o seguinte código :

 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnVerificar.Click

Dim msg As String
 

If (IsAplicacaoInstalada(txtAplicacao.Text).ToString) Then

     msg = " << Esta instalada >> "

Else

    msg = " << NÃO esta instalada >> "

End If

    MessageBox.Show(" A aplicação " & txtAplicacao.Text & msg)

End Sub

 

Após informar o nome da aplicação e clicar no botão você obterá:

 

 

Obs: Como sugestão para testes use : Excel.Application , Access.Application, PowerPoint.Application ,PBrush, etc.

 

Eu sei , é apenas VB.NET , mas eu gosto..

 

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