Como enumerar os produtos de software que podem ser desinstalados em um computador

Traduções deste artigo Traduções deste artigo
ID do artigo: 821775 - Exibir os produtos aos quais esse artigo se aplica.

NESTA TAREFA

importante : Este artigo contém informações sobre como modificar o registro. Antes de modificar o registro, certifique-se de backup e certifique-se que você saiba como restaurar o registro se ocorrer um problema. Para obter informações sobre como fazer backup, restaurar e editar o registro, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
256986Descrição do registro do Microsoft Windows
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Este artigo passo a passo descreve como enumerar os produtos de software que podem ser desinstalados examinando a seguinte chave do registro em um computador:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
Este artigo também inclui uma listagem de código de exemplo que ilustra os conceitos descritos no artigo.

Observação Talvez seja necessário ter credenciais administrativas no seu computador para acessar determinadas chaves do Registro.

Requisitos

A lista a seguir descreve o hardware recomendado, software, infra-estrutura de rede e service packs que você precisa:
  • Microsoft Windows 2000, Microsoft Windows XP ou Microsoft Windows Server 2003
  • Microsoft Visual Basic .NET ou Microsoft Visual Basic 2005
Este artigo pressupõe que você esteja familiarizado com os seguintes tópicos:
  • Programação com o Visual Basic .NET ou Visual Basic 2005
  • O registro do sistema

Criar um aplicativo de console

  1. Inicie o Microsoft Visual Studio .NET ou Microsoft Visual Studio 2005.
  2. No menu arquivo , aponte para novo e, em seguida, clique em Project .
  3. Em Project Types , clique em Projetos do Visual Basic .

    Observação No Visual Studio 2005, clique em Visual Basic em Project Types .
  4. Em modelos , clique em Aplicativo de console .
  5. Na caixa nome , digite SoftwareDemo e, em seguida, clique em OK . Por padrão, Module1.vb é criado.
  6. Para importar o namespace Microsoft.Win32 que contém classes que fazer alterações no registro do sistema, adicione o seguinte código na parte superior da janela código:
    Imports Microsoft.Win32

Abrir a subchave de registro de desinstalação

Aviso : se você usar o Editor do Registro incorretamente, poderá causar problemas sérios que talvez exijam a reinstalação do sistema operacional. A Microsoft não garante que você pode resolver problemas resultantes do uso incorreto do Editor do Registro. Use o Editor do registro por sua própria conta e risco.

A lista de produtos de software instalado está localizada no seguinte caminho do Registro:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
Para acessar a lista de produtos de software instalado, abra essa subchave do Registro, adicionando o seguinte código ao método Main :
' Open the Uninstall registry subkey.
Dim Key As RegistryKey = Registry.LocalMachine.OpenSubKey _
   ("SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", False)

Recuperar uma lista de produtos de software instalado

Para recuperar a lista de produtos de software instalado como uma matriz de seqüências de caracteres, adicione o seguinte código após o código que você adicionou na seção "Abrir a subchave de registro de desinstalação" deste artigo:
' Retrieve a list of installed software products.
' This list also includes some software products that are not valid.
Dim SubKeyNames() As String = Key.GetSubKeyNames()

Livrar-se de produtos de software que não são válidos

A lista de produtos de software que recuperados na seção anterior possui alguns produtos que não são válidos. Para eliminar um desses produtos, elimine os produtos que não têm um valor DisplayName . Para fazer isso e para exibir a lista válida de produtos de software instalado, adicione o seguinte código após o código que você adicionou na seção "Recuperar uma lista de produtos de software instalado" deste artigo:
' Declare a variable to iterate through the retrieved list of 
' installed software products.
Dim Index As Integer
' Declare a variable to hold the registry subkey that corresponds 
' to each retrieved software product.
Dim SubKey As RegistryKey
Console.WriteLine("The following software products are installed on this computer:")
Console.WriteLine("")
' Iterate through the retrieved software products.
For Index = 0 To Key.SubKeyCount - 1
   ' Open the registry subkey that corresponds to the current software product.
   ' SubKeyNames(Index) contains the name of the node that corresponds to the 
   ' current software product.
   SubKey = Registry.LocalMachine.OpenSubKey _
      ("SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" + "\" _
         + SubKeyNames(Index), False)
   ' Verify that the DisplayName exists. If the DisplayName does not exist, 
   ' return a null string. If the returned value is a null string, the 
   ' DisplayName does not exist, and the software product is not valid.
   If Not SubKey.GetValue("DisplayName", "") Is "" Then
      ' The current software product is valid.
      ' Display the DisplayName of this valid software product.
      Console.WriteLine(CType(SubKey.GetValue("DisplayName", ""), String))
   End If
Next

Listagem de código completo (Module1.vb)

Option Strict On

Imports Microsoft.Win32

Module Module1

    Sub Main()

        ' Open the Uninstall registry subkey.
        Dim Key As RegistryKey = Registry.LocalMachine.OpenSubKey _
           ("SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", False)
        ' Retrieve a list of installed software products.
        ' This list also includes some software products that are not valid.
        Dim SubKeyNames() As String = Key.GetSubKeyNames()
        ' Declare a variable to iterate through the retrieved list of 
        ' installed software products.
        Dim Index As Integer
        ' Declare a variable to hold the registry subkey that correspond
        ' to each retrieved software product.
        Dim SubKey As RegistryKey
        Console.WriteLine("The following software products are installed on this computer:")
        Console.WriteLine("")
        ' Iterate through the retrieved software products.
        For Index = 0 To Key.SubKeyCount - 1
            ' Open the registry subkey that corresponds to the current software product.
            ' SubKeyNames(Index) contains the name of the node that corresponds to the 
            ' current software product.
            SubKey = Registry.LocalMachine.OpenSubKey _
               ("SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" + "\" _
                  + SubKeyNames(Index), False)
            ' Verify that the DisplayName exists. If the DisplayName does not exist, 
            ' return a null string. If the returned value is a null string, the 
            ' DisplayName does not exist, and the software product is not valid.
            If Not SubKey.GetValue("DisplayName", "") Is "" Then
                ' The current software product is valid.
                ' Display the DisplayName of this valid software product.
                Console.WriteLine(CType(SubKey.GetValue("DisplayName", ""), String))
            End If
        Next

        Console.WriteLine("Press ENTER to quit.")
        Console.ReadLine()

    End Sub

End Module

Verifique se o código funciona

  1. No menu Build , clique em Build Solution .
  2. Para executar o aplicativo, clique em Iniciar no menu Debug . Uma janela de console é exibida com uma lista dos produtos de software instalado.
  3. Para sair do aplicativo, pressione ENTER.

Referências

Para obter mais informações, visite os seguintes sites do Microsoft Developer Network (MSDN) da:
http://msdn2.microsoft.com/en-us/library/ms724871.aspxhttp://msdn2.microsoft.com/en-us/library/microsoft.win32(vs.71).aspx

Propriedades

ID do artigo: 821775 - Última revisão: quarta-feira, 16 de maio de 2007 - Revisão: 4.2
A informação contida neste artigo aplica-se a:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Palavras-chave: 
kbmt kbvs2005swept kbvs2005applies kbregistry kbsample kbprogramming kbhowtomaster KB821775 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 821775

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com