DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

Lista de Programas Instalados

Veja neste artigo como podemos obter a lista de programas instalados no seu computador.

Olá galera, vamos a este artigo onde vou mostrar como podemos obter a lista de todos os softwares instalados no computador.

Para isso vamos precisar de um TButton e um TListView.

Inicialmente vamos precisar declarar Uses em Registry.

Não se preocupe com a configuração do TListView, pois isso será feito através do código listado logo abaixo.

No evento onClick do TButton implemente o seguinte código.

Listagem 1: Implementação no onClick do TButton
procedure TForm1.Button1Click(Sender: TObject);
const
  UNINST_PATH = 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall';
var
  Registro: TRegistry;
  Chaves: TStringList;
  xListItem: TlistItem;
  I: integer;
  xNomeSoftware, xCaminhoRemover: string;
begin

  ListView1.ViewStyle := vsReport;
  ListView1.Columns.add;
  ListView1.Columns.add;
  ListView1.Columns[0].caption := 'Nome do Programa';
  ListView1.Columns[1].caption := 'Caminho pra Remover';
  ListView1.Columns[0].Width := 300;
  ListView1.Columns[1].Width := 300;

  Registro := TRegistry.Create;
  with Registro do
    try
      with ListView1.Items do
        try
          BeginUpdate;
          Clear;
          RootKey := HKEY_LOCAL_MACHINE;
          if OpenKeyReadOnly(UNINST_PATH) then
          begin
            Chaves := TStringList.Create;
            try
              GetKeyNames(Chaves);
              CloseKey;
              for I := 0 to Chaves.Count - 1 do
                if OpenKeyReadOnly(Format('%s\%s', [UNINST_PATH, Chaves[I]])) then
                  try
                    xNomeSoftware   := ReadString('DisplayName');
                    xCaminhoRemover := ReadString('UninstallString');
                    if xNomeSoftware <> '' then
                    begin
                      xListItem         := Add;
                      xListItem.Caption := xNomeSoftware;
                      xListItem.subitems.Add(xCaminhoRemover);
                    end;
                  finally
                    CloseKey;
                  end;
            finally
              Chaves.Free;
            end;
          end;
        finally
          ListView1.AlphaSort;
          EndUpdate;
        end;
    finally
      CloseKey;
      Free;
    end; 

Veja o Resultado



Fico por aqui e até o próximo artigo

Um abraço
Wesley Y
www.lithic.com.br




    2 COMENTÁRIOS

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Suellen Ap Colangelo
No caso seriam apenas os programas do windows instalados?
Para criar uma entrada no registro que o painel de controle ache e permita desinstalar o programa apontando para um uninstall qual seria o caminho no Reg?


em 27/2/2012 15:45 - Responder

 

[Comentário do autor]   Wesley Yamazack
Olá Suelle, seria justamente os programas instalados e registrados no Windows.
Para outros programas dai teríamos que ver melhor o registro, qual o SO e dai estudar para ver onde cada programa fica "registrado".

Blz?

Obrigado pelo comentário, um abraço.


em 1/3/2012 22:29 - Responder
 



Publicidade
Autor
Wesley Yamazack

Graduado em Analise de Sistemas, no ramo de desenvolvimento há mais de 6 anos, onde atuou em empresas de diversos seguimentos como financeiro, comercial, estacionamento, etc. Atualmente analista desenvolvedor terceirizado da Marinha do Brasil, além de desenvolver projetos através da minha empresa Li...


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
1   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03