Ver Mensaje Individual
  #2  
Antiguo 24-12-2019
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.806
Reputación: 22
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
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;
Responder Con Cita