Obtener la lista de aplicaciones instaladas

Software\Microsoft\Windows\CurrentVersion\UnInstall

Aquí os dejo el código fuente:
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Registry; const sUninstall = 'Software\Microsoft\Windows\CurrentVersion\UnInstall'; procedure TForm1.GettAppInstalled(hKey: Cardinal; memoResult: TMemo); function PrintVersion(version: string): string; begin if version = '' then result := '' else result := ' - ' + version; end; var RegList: TStrings; i: Integer; sVersion: string; Registry: TRegistry; begin RegList := TStringList.Create; Registry := TRegistry.create(); Registry.RootKey := hKey; if Registry.OpenKey(sUninstall, False) then begin Registry.GetKeyNames(RegList); Registry.CloseKey; for i := 0 to RegList.Count - 1 do begin if Registry.OpenKey(sUninstall + '\' + RegList[i], False) then begin sVersion := ''; if Registry.ValueExists('DisplayVersion') then sVersion := 'Version ' + Registry.ReadString('DisplayVersion'); if CheckBox1.checked then Memo1.lines.Add(RegList[i] + PrintVersion(sVersion)) else if AnsiPos('{', RegList[i]) = 0 then Memo1.lines.Add(RegList[i] + PrintVersion(sVersion)); Registry.CloseKey end; end; end; FreeAndNil(Registry); FreeAndNil(RegList); end; procedure TForm1.Button1Click(Sender: TObject); begin Memo1.lines.Clear; Memo1.lines.add('************ HKEY_LOCAL_MACHINE ************'); GettAppInstalled(HKEY_LOCAL_MACHINE, Memo1); Memo1.lines.add('********************************************'); Memo1.lines.add('************ HKEY_CURRENT_USER ************'); GettAppInstalled(HKEY_CURRENT_USER, Memo1); Memo1.lines.add('********************************************'); end;
Y una muestra de la aplicación:

Ahora mediante la aplicación, podemos seleccionar todo el texto y copiarlo y guardarlo donde queramos, de ésta manera podemos saber que aplicaciones tenemos instaladas en nuestro equipo de manera rápida y fácil. La aplicación funciona perfectamente para Windows XP y Vista.
Comments
Post a Comment