Hola Antonio.
Aca te pongo una version un poco modificada de la conocida versión del código.
Código Delphi
[-]
uses Registry;
function isAppInstalled(AppName: string): Boolean;
const
CLAVE = '\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall';
var
Reg: TRegistry;
L1,L2 : TStringList;
j,dn,us: integer;
begin
Reg:= TRegistry.Create;
L1:= TStringList.Create;
L2:= TStringList.Create;
try
Reg.RootKey:= HKEY_LOCAL_MACHINE;
Reg.OpenKey(CLAVE, False);
Reg.GetKeyNames(L1);
Result:= False;
for j := 0 to L1.Count-1 do
begin
Reg.OpenKeyReadOnly(CLAVE+'\'+L1.Strings[j]);
Reg.GetValueNames(L2);
if(L2.IndexOf('DisplayName')<> -1)and
(L2.IndexOf('UninstallString')<> -1)and
(Reg.ReadString('DisplayName')=AppName) then
Result:= True;
end;
finally
L1.Free;
L2.Free;
Reg.Free;
end;
end;
Devuelve verdadero si encuentra el nombre de la aplicación.
Saludos.