Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   versiones y actualizaciones para un ejecutable (https://www.clubdelphi.com/foros/showthread.php?t=94361)

MesiasPeru 24-12-2019 05:26:15

versiones y actualizaciones para un ejecutable
 
hola me gustaria crear un ejecutable con una version... digamos proyecto V 1.0, y ponerlo en mi blog para que otros usuarios lo descarguen, pero algun tiempo despues ese proyecto yo deba actualizarlo a V 1.1

como debo de hacerce para que la V1.0 ya no se pueda ejecutar debido a que existe otra version nueva la V 1.1

duilioisola 24-12-2019 09:47:21

En tu ejecutable guardas una constante llamada version.
En tu blog agregas una página que indique la versión activa
Desde tu aplicación, haces una llamada a esa página y comparas la respuesta con la constante.

Código Delphi [-]
const Version = '1.0';

function EsVersionValida: boolean;
var
  HTMLBody : string;
  IdHTTP : TIdHTTP;
  Peticion : string;
begin
  // Pagina que respondera solo con texto.
  // El texto será la version activa de la aplicación
  // El formato de versión será M.m (Ejemplo: 1.0)
  Peticion := 'http://www.miblog.com/version_activa.php';

  // Inicializamos resultado por si no podemos conectar o hay algún otro problema
  Result := false;

  // ¿Estamos conectados a Internet?
  if WinInet.InternetGetConnectedState(nil, 0) then
  begin
    IdHTTP := TIdHTTP.Create(Application);
    try
      try
        HTMLBody := IdHTTP.Get(Peticion);
        // Limpio caracteres raros
        HTMLBody := StringReplace(HTMLBody, '?', '', [rfReplaceAll]);
      except
        on e: Exception do
        begin
          // Si hay algun problema lo trato como un error de internet
          HTMLBody := '404';
        end;
      end;
      HTMLBody := Trim(HTMLBody);

      // Esta web devuelve por ejemplo "1.0"
      Result := (Version = HTMLBody);
    finally
      IdHTTP.Free;
    end;
  end;
end;

[...]

procedure TFMMain.FormActivate(Sender: TObject);
begin
  if (not EsVersionActiva) then
  begin
    ShowMessage('No es la última versión. Descargue nuevamente la aplicación. Gracias!');
    Close;
  end;
end;


La franja horaria es GMT +2. Ahora son las 21:28:41.

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