争怎路由网/网站教程/内容

得到已安装的应用程序下文

网站教程2024-07-15 阅读
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; 

……

相关阅读