Tema: Flash Player
Ver Mensaje Individual
  #2  
Antiguo 10-03-2009
Avatar de Black_Ocean
Black_Ocean Black_Ocean is offline
Miembro
 
Registrado: nov 2006
Posts: 128
Reputación: 18
Black_Ocean Va por buen camino
Hola,

Cita:
Empezado por MAXIUM Ver Mensaje
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 Ver Mensaje
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.


-

Última edición por Black_Ocean fecha: 10-03-2009 a las 10:36:43.
Responder Con Cita