Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Flash Player (https://www.clubdelphi.com/foros/showthread.php?t=63760)

MAXIUM 02-03-2009 02:20:20

Flash Player
 
Como puedo saber si se encuentra instalado Flash Player en un sistema Windows y además saber su versión.

Lo pregunto para saber como incluir el instalador de flashplayer en InnoSetup.

Black_Ocean 10-03-2009 09:24:42

Hola,

Cita:

Empezado por MAXIUM (Mensaje 339781)
Como puedo saber si se encuentra instalado Flash Player en un sistema Windows y además saber su versión.

Bueno, le he realizado el código en Inno setup para detectar la versión de Adobe Flash instalada en el equipo, Ponga estas líneas en la sección CODE de su script de Inno Setup:

Código Delphi [-]
function ObtenerVersionFlash(var BufVersion, BufArchivo: string): Boolean;
var
  ArchivoOCX: string;
  Version: string;
begin
  Result := False;
  Version := '';
  if RegQueryStringValue(HKEY_CLASSES_ROOT, 'CLSID\{D27CDB6E-AE6D-11cf-96B8-444553540000}\InprocServer32', '', ArchivoOCX) = true then
  begin
    ArchivoOCX := RemoveQuotes(ArchivoOCX);
    if FileExists(ArchivoOCX) = true then
      if GetVersionNumbersString(ArchivoOCX, Version) = true then
      begin
        BufVersion := Version;
        BufArchivo := ArchivoOCX;
        Result := True;
      end;
   end;   
end;

function InitializeSetup(): Boolean; //Evento predefinido de inicialización del asistente de Inno Setup
var
  VersionFlash, RutaFlash: string;
begin
  if ObtenerVersionFlash(VersionFlash, RutaFlash) = true then
  begin
    MsgBox('Versión de Adobe Flash instalado en su equipo: ' + VersionFlash + #10 + 'Ruta completa del componente: ' + RutaFlash, mbConfirmation, MB_OK);
    Result := true;
  end  
  else
  begin
    MsgBox('No se ha podido detectar la versión de Adobe Flash instalada en su equipo.' + #10#10 + 'Por favor, descargue el componente desde el sitio Web oficial de Adobe y vuelva a ejecutar este asistente.', mbCriticalError, MB_OK);
    Abort;
  end;  
end;

Pruebe este código con Windows Vista, por que sólo lo he testeado para Windows 98, ME, 2000 y XP


Cita:

Empezado por MAXIUM (Mensaje 339781)
Lo pregunto para saber como incluir el instalador de flashplayer en InnoSetup.

Para este caso, descargue el instalador de Adobe Flash para IE/Firefox a su disco duro desde el sitio de Adobe, y luego, especifíquelo en la sección FILES de su script de Inno Setup como se indica en el ejemplo siguiente:
Código:

[Files]
Source: Flash_Player_10_ActiveX_instalador.exe; DestDir: {tmp}; DestName: FlashPlayerTMP.exe; Flags: ignoreversion deleteafterinstall

Y luego añada las siguientes líneas en las la sección CODE de su script de Inno Setup:

Código Delphi [-]
procedure CurStepChanged(CurStep: TSetupStep); //Evento predefinido del asistente de Inno Setup que en nuestro caso, ocurrirá cuando la copia de archivos sea finalizada, es decir que, cuando termine de copiar los archivos, ejecutará e instalará el componente flash como última tarea de la instalación.
var
  CodSalida: integer;
begin
  if CurStep = ssPostInstall then
    if Exec(ExpandConstant('{tmp}\FlashPlayerTMP.exe'), '/s', '', SW_HIDE, ewWaitUntilTerminated, CodSalida) = False then
      //Poner acá mensaje de error si la función Exec devuelve False o manipular el valor que se devuelve en CodSalida o simplemente dejarlo así
end;


Para cualquier otra duda con Inno Setup, no dude en hacerla acá, ya que domino bastante este compilador de instalaciones a base de pascal scripts.

Obviamente, usted adaptará el código que le he facilitado a sus necesidades =)

Tambien si tiene una alguna duda de este código para Delphi, consultela ;)


Buena suerte y cordiales saludos.


-

Black_Ocean 12-03-2009 01:01:36

Estimado MAXIUM,

¿Revisó el código que le he señalado? Lo pregunto porque es bueno dejar los topics como resueltos y también porque le puede servir a otro usuario que venga al foro con esta misma incógnita para Inno Setup. ;)

Saludos cordiales.


La franja horaria es GMT +2. Ahora son las 08:48:40.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi