首页 | 社区 | 博客 | 招聘 | 文章 | 新闻 | 下载 | 读书 | 代码
亲,您未登录哦! 登录 | 注册

得到已安装的应用程序列表

打印文章

分享到:
procedure TForm1.Button1Click(Sender: TObject);

const CLAVE =
  '\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall';

var
  reg    : TRegistry;
  Lista  : TStringList;
  Lista2 : TStringList;
  i,n    : integer;

begin
  {Creamos cosas temporales}
  {Create temporal things}
  reg    := TRegistry.Create;
  Lista  := TStringList.Create;
  Lista2 := TStringList.Create;

  {Cargamos todas las subkeys}
  {Load all the subkeys}
  with Reg do
  begin
    RootKey := HKEY_LOCAL_MACHINE;
    OpenKey(CLAVE,false);
    GetKeyNames(Lista);
  end;

  {Cargamos todos los Nombres de valores}
  {Load all the Value Names}
  for i := 0 to Lista.Count -1 do
  begin
    reg.OpenKey(CLAVE + '\' +Lista.Strings[i],false);
    reg.GetValueNames(Lista2);

    {Mostraremos s髄o los que tengan 'DisplayName'}
    {We will show only if there is 'DisplayName'}
    n:=Lista2.IndexOf('DisplayName');
    if (n <> -1) and (Lista2.IndexOf('UninstallString')<>-1) then
    begin
      {DisplayName+UnInstallString}
      Memo1.Lines.Append ( reg.ReadString(Lista2.Strings[n])+'-'+
        reg.ReadString(Lista2.Strings[Lista2.IndexOf('UninstallString')]) );
    end;
  end;
  {Liberamos temporales}
  {Free temporals}
  Lista.Free;
  Lista2.Free;
  reg.CloseKey;
  reg.Destroy;
end; 

本栏文章均来自于互联网,版权归原作者和各发布网站所有,本站收集这些文章仅供学习参考之用。任何人都不能将这些文章用于商业或者其他目的。( Pfan.cn )

编程爱好者论坛

本栏最新文章