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?

¿Fue útil?

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;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top