none
[Ayuda] Si es distinto al servidor la información consultada en URL, mostrar un form RRS feed

  • Pregunta

  • Hola,

    En primer lugar me gustaría consultar un fichero en mi servidor, por ejemplo .txt o .ver de formato. En este enlace dentro de ese fichero en texto plano contiene una información, por ejemplo 19.2.3a.

    Lo que quiero saber si es distinto en un fichero local o en un registro del sistema, mostrar el formulario. Cuando lo muestre, guardar esa información, ya que si es distinto al del servidor, mostrar ese form.

    Simplemente si es distinto al del servidor o el valor es Nothing, mostrar dicho formulario.

    Gracias

    lunes, 8 de octubre de 2018 14:36

Respuestas

  • Buenas,

    No acabo de entender eso de consultada en URL, te refieres a tener un servidor remoto al que te conectes para comprobar el fichero o a un servidor en red local?

    Atte


    Jorge Turrado Ferrero

    Mis repositorios en GitHub

    Mi Blog


    Ranking GitHub Euskadi
    Ranking GitHub Alava

    No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.

    • Propuesto como respuesta Pablo Rubio martes, 9 de octubre de 2018 15:19
    • Votado como útil Symantecc miércoles, 10 de octubre de 2018 7:07
    • Propuesto como respuesta Pablo Rubio miércoles, 10 de octubre de 2018 15:39
    • Votado como útil Symantecc jueves, 11 de octubre de 2018 8:46
    • Propuesto como respuesta Pablo Rubio jueves, 11 de octubre de 2018 15:05
    • Marcado como respuesta Pablo Rubio jueves, 11 de octubre de 2018 21:24
    martes, 9 de octubre de 2018 8:44
  • Buenas,

    El problema es que via internet no puedes acceder a ficheros sin usar un servidor web o ftp (salvo que utilices una vpn para hacer red local). Para lo que planteas, sería necesario crear una api que te provea de la versión, o por contra, otra opción es bajarte la actualización siempre en segundo plano, comprobar la versión del fichero descargado y el propio, y en caso de ser necesario lanzar el formulario y actualizarte.

    Atte


    Jorge Turrado Ferrero

    Mis repositorios en GitHub

    Mi Blog


    Ranking GitHub Euskadi
    Ranking GitHub Alava

    No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.

    • Propuesto como respuesta Pablo Rubio jueves, 11 de octubre de 2018 15:06
    • Marcado como respuesta Pablo Rubio jueves, 11 de octubre de 2018 21:24
    miércoles, 10 de octubre de 2018 16:18
  • Buenas,

    La idea entonces es:

    • Abrir la aplicación
    • En un Thread aparte, descargarse el ejecutable con un nombre diferente desde internet
    • Comprobar las dos versiones y compararlas
    • En caso de no coincidir, llamar a un segundo programa que haga los cambios de nombres de ficheros y relance el ejecutable
    • En caso de coincidir, borrar el ejecutable descargado

    Para el tema de la descarga:

    How to download a file from a URL in C#?

    Para el tema de comprobación de versiones:

    How to get .exe file version number from file path

    Para el segundo programa (el que renombre y relance), bastaría con una aplicación de consola que haga algo así:

    using System.Diagnostics;
    using System.IO;
    using System.Threading;
    
    namespace Ejemplo
    {
        class Program
        {
            static void Main(string[] args)
            {
                Thread.Sleep(1000);  //Le damos 1 segundo para que cierre del todo el programa
                string rutaEjecutable = "Ruta del ejecutable 'viejo'";
                string rutaActualizacion = "Ruta del ejecutable actualizado";
                File.Delete(rutaEjecutable); //Borra el exe viejo
                File.Move(rutaActualizacion, rutaEjecutable); //Cambia el nombre del exe actualizado por el del viejo
                Process.Start(rutaEjecutable); //Lanza el exe de nuevo
            }
        }
    }

    En caso de tener problemas con el programar que actualiza los exe porque el exe a borrar este en uso, se puede hacer mas robusto, pero como idea es suficiente.

    Esto es suponiendo que el programa actualizado ya lo tienes en alguna web de donde descargarlo, si no es así, tendríamos que hacer el web API también que te de la versión y provea del nuevo exe, pero entonces lo uniríamos todo en el mismo sitio y no haría falta descargar el exe de primeras.

    Atte


    Jorge Turrado Ferrero

    Mis repositorios en GitHub

    Mi Blog


    Ranking GitHub Euskadi
    Ranking GitHub Alava

    No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.

    • Propuesto como respuesta Pablo Rubio jueves, 11 de octubre de 2018 15:06
    • Marcado como respuesta Pablo Rubio jueves, 11 de octubre de 2018 21:24
    jueves, 11 de octubre de 2018 11:09

Todas las respuestas

  • ¿Alguien podría ayudarme?

    Gracias

    martes, 9 de octubre de 2018 7:57
  • Buenas,

    No acabo de entender eso de consultada en URL, te refieres a tener un servidor remoto al que te conectes para comprobar el fichero o a un servidor en red local?

    Atte


    Jorge Turrado Ferrero

    Mis repositorios en GitHub

    Mi Blog


    Ranking GitHub Euskadi
    Ranking GitHub Alava

    No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.

    • Propuesto como respuesta Pablo Rubio martes, 9 de octubre de 2018 15:19
    • Votado como útil Symantecc miércoles, 10 de octubre de 2018 7:07
    • Propuesto como respuesta Pablo Rubio miércoles, 10 de octubre de 2018 15:39
    • Votado como útil Symantecc jueves, 11 de octubre de 2018 8:46
    • Propuesto como respuesta Pablo Rubio jueves, 11 de octubre de 2018 15:05
    • Marcado como respuesta Pablo Rubio jueves, 11 de octubre de 2018 21:24
    martes, 9 de octubre de 2018 8:44
  • Hola, lo que quiero hacer es buscar la información (como si fuese la versión del programa) en el servidor. Si dicha versión es distinta al parametro que tengo guardado en el sistema, muestro el form y actualizo dicha información. Por lo cual, si una vez actualizado es igual al del servidor, no muestro nada a no ser que sea distinto al del servidor.
    miércoles, 10 de octubre de 2018 7:08
  • Buenas,

    El problema es que via internet no puedes acceder a ficheros sin usar un servidor web o ftp (salvo que utilices una vpn para hacer red local). Para lo que planteas, sería necesario crear una api que te provea de la versión, o por contra, otra opción es bajarte la actualización siempre en segundo plano, comprobar la versión del fichero descargado y el propio, y en caso de ser necesario lanzar el formulario y actualizarte.

    Atte


    Jorge Turrado Ferrero

    Mis repositorios en GitHub

    Mi Blog


    Ranking GitHub Euskadi
    Ranking GitHub Alava

    No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.

    • Propuesto como respuesta Pablo Rubio jueves, 11 de octubre de 2018 15:06
    • Marcado como respuesta Pablo Rubio jueves, 11 de octubre de 2018 21:24
    miércoles, 10 de octubre de 2018 16:18
  • Hola Jorge, gracias por responder de nuevo.

    La opción que intento hacer sería la segunda pero no se desarrollarla. Seria cuestión de descargar ese fichero y comprobarlo como si fuese una actualización.

    jueves, 11 de octubre de 2018 6:51
  • Buenas,

    La idea entonces es:

    • Abrir la aplicación
    • En un Thread aparte, descargarse el ejecutable con un nombre diferente desde internet
    • Comprobar las dos versiones y compararlas
    • En caso de no coincidir, llamar a un segundo programa que haga los cambios de nombres de ficheros y relance el ejecutable
    • En caso de coincidir, borrar el ejecutable descargado

    Para el tema de la descarga:

    How to download a file from a URL in C#?

    Para el tema de comprobación de versiones:

    How to get .exe file version number from file path

    Para el segundo programa (el que renombre y relance), bastaría con una aplicación de consola que haga algo así:

    using System.Diagnostics;
    using System.IO;
    using System.Threading;
    
    namespace Ejemplo
    {
        class Program
        {
            static void Main(string[] args)
            {
                Thread.Sleep(1000);  //Le damos 1 segundo para que cierre del todo el programa
                string rutaEjecutable = "Ruta del ejecutable 'viejo'";
                string rutaActualizacion = "Ruta del ejecutable actualizado";
                File.Delete(rutaEjecutable); //Borra el exe viejo
                File.Move(rutaActualizacion, rutaEjecutable); //Cambia el nombre del exe actualizado por el del viejo
                Process.Start(rutaEjecutable); //Lanza el exe de nuevo
            }
        }
    }

    En caso de tener problemas con el programar que actualiza los exe porque el exe a borrar este en uso, se puede hacer mas robusto, pero como idea es suficiente.

    Esto es suponiendo que el programa actualizado ya lo tienes en alguna web de donde descargarlo, si no es así, tendríamos que hacer el web API también que te de la versión y provea del nuevo exe, pero entonces lo uniríamos todo en el mismo sitio y no haría falta descargar el exe de primeras.

    Atte


    Jorge Turrado Ferrero

    Mis repositorios en GitHub

    Mi Blog


    Ranking GitHub Euskadi
    Ranking GitHub Alava

    No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.

    • Propuesto como respuesta Pablo Rubio jueves, 11 de octubre de 2018 15:06
    • Marcado como respuesta Pablo Rubio jueves, 11 de octubre de 2018 21:24
    jueves, 11 de octubre de 2018 11:09