Determinar si está instalado flash OCX?
-
19-08-2019 - |
Pregunta
¿Cuál es la mejor manera de determinar si el flash ocx está instalado en Innosetup (o en cualquier otro instalador)? No quiero intentar instalarlo yo mismo, simplemente obligaré al usuario a ir al sitio flash e instalarlo, solo quiero asegurarme de que esté instalado flash.ocx (versión 9+).
¿Es suficiente verificar HKEY_CLASSES_ROOT \ ShockwaveFlash.ShockwaveFlash y verificar que CurVer > = 9? ¿Hay una mejor manera de probar esto?
Solución
Agregue una función en la sección de código para verificar si puede crear una instancia del control Flash, de esta manera:
function IsFlashInstalled(): boolean;
var
V: Variant;
begin
try
V := CreateOleObject('ShockwaveFlash.ShockwaveFlash.9');
Result := True;
except
Result := False;
end;
end;
Consulte los diversos ejemplos en el paquete Inno Setup sobre cómo usar su propia función para mostrar un cuadro de mensaje al usuario, cancelar la instalación, abrir el sitio Flash en el navegador predeterminado o lo que quiera hacer.
Otros consejos
Manera fácil sin probar / excepto
function IsFlashInstalled: Boolean;
var ClassID : TCLSID;
begin
Result := Succeeded(CLSIDFromProgID('ShockwaveFlash.ShockwaveFlash', ClassID));//Use CreateComObject() instead...
end;