Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   incrustar una web local en un ejecutable (https://www.clubdelphi.com/foros/showthread.php?t=86905)

cocute 21-10-2014 17:31:29

incrustar una web local en un ejecutable
 
Algún modo simple de incrustar una web local en un ejecutable?
la web consta de varios archivos en subcarpetas, con java, imágenes y demás,

Con lo cual lo de crear un archivo rc no se si se puede, porque luego para acceder a esos archivos
el index.html no se si los vería

gracias

dec 22-10-2014 05:21:39

Hola,

Una técnica más o menos viable (porque depende al final del sitio web en cuestión, por ejemplo, hay algunos problemas con "Flash") es utilizar los "Asynchronous Pluggable Protocols" que ofrece Windows en Internet Explorer, así como en los "TWebBrowser" que podemos usar en Delphi. Existe un componente para Delphi que te puede ayudar en la cuestión. Esto es lo que yo uso en mi programa HTML Compiler con aceptables resultados. Puedes buscar más información sobre "Asynchronous Pluggable Protocols" y Delphi, puesto que recuerdo que existe más información que, ahora mismo, no puedo "enlazarte".

Añadir que en este caso estoy hablando como si se tratase de "incrustar" un sitio web y mostrar el mismo sin necesidad de extraer antes los archivos. Si esto último no fuese un problema el asunto sería bastante más sencillo: podrías incrustar en tu programa un archivo Zip que contuviese los archivos a extraer, hacerlo cuando lo necesitases, y, simplemente, navegar hasta el archivo "index.html" de tu sitio web usando sin más un componente "TWebBrowser". Para incrustar el archivo Zip podrías usar recursos, tal como para incrustar cualquier otro tipo de archivo.

roman 22-10-2014 06:20:18

Cita:

Empezado por dec (Mensaje 483490)
Una técnica más o menos viable (porque depende al final del sitio web en cuestión, por ejemplo, hay algunos problemas con "Flash") es utilizar los "Asynchronous Pluggable Protocols" que ofrece Windows en Internet Explorer, así como en los "TWebBrowser" que podemos usar en Delphi. Existe un componente para Delphi que te puede ayudar en la cuestión. Esto es lo que yo uso en mi programa HTML Compiler con aceptables resultados. Puedes buscar más información sobre "Asynchronous Pluggable Protocols" y Delphi, puesto que recuerdo que existe más información que, ahora mismo, no puedo "enlazarte".

v:-)v

// Saludos

dec 22-10-2014 17:17:32

Hola,

Nada Román... también en esto me limité a copiar como un bellaco. Otro programa similar al que yo he llevado a cabo usaba lo mencionado arriba y es que, parece ser, en realidad no hay otra forma de hacerlo, es decir, es la única forma de trabajar con "streams" en lugar de archivos locales, de manera que dichos "streams" pueden ya proceder de donde sea menester, en el caso que nos ocupa de un "recurso" incrustado en el ejecutable. De manera que viendo que esa era la única solución, al menos que yo sepa, el resto fue más o menos sencillo, sobre todo usando el componente para Delphi que he enlazado arriba. Ningún mérito, pues, al menos en este punto. :)

cocute 02-11-2014 17:42:40

Gracias el HTML Compiler sería buena opción si solo necesitase convertir una web a ejecutable,
pero mi programa lleva más cosas que el navegador.

Lo más simple que he encontrado es usar programas virtualizadores que te meten todo en un ejecutable
tipo el Enigma Virtual Boxm (gratis), Molebox (de pago)....... hay muchos mas, que creo que en tiempo de ejecución extraen los ficheros en un directorio temporal.

http://enigmaprotector.com/en/aboutvb.html
http://www.molebox.com/

dec 02-11-2014 18:23:23

Hola,

Yo no sugerí tanto usar mi programa, pero, lo que se usa en mi programa, que no es lo mismo. Tú preguntaste por "Algún modo simple de incrustar una web local en un ejecutable" y eso es lo que mi programa hace. Por lo demás, no sé bien a qué te refieres con que tu programa "lleva más cosas que el navegador". De hecho mi programa no sólo añade la página o aplicación HTML sino todos los archivos contenidos en el mismo directorio que el "index.html" de dicha página o aplicación web, así como el contenido de los subdirectorios. No sé si te refieres a algo así cuando dices que tu programa "lleva más cosas que el navegador".

mamcx 02-11-2014 18:39:19

Y que tal incrustar un servidor web? Eso es algo simple. Creas un servidor web, le asignas un puerto y el resto es indentico a como si fuera conexion a internet.

De hecho, actualmente es muy popular embeder un servidor web para hacer desarrollo local, sin pasar por Apache o similares. Eso mismo hago en mi app principal, donde el exe es un servidor web independiente y uso scripts de python que le hablan a este. Zero problemas en los años que llevo haciendo eso. Y es muy facil.

P.D: Es una muy buena idea dejar de pensar en los protocolos de internet como cosa que solo existe en los servidores "grandes". Web es MUY simple: TCP (u otro!) + HTTP + Lo que te de la gana. NO esta amarrado a navegadores, lenguajes, nada. Es solo protocolo http y listo.

cocute 02-11-2014 19:41:01

Cita:

Empezado por dec (Mensaje 484141)
Hola,

Yo no sugerí tanto usar mi programa, pero, lo que se usa en mi programa, que no es lo mismo. Tú preguntaste por "Algún modo simple de incrustar una web local en un ejecutable" y eso es lo que mi programa hace. Por lo demás, no sé bien a qué te refieres con que tu programa "lleva más cosas que el navegador". De hecho mi programa no sólo añade la página o aplicación HTML sino todos los archivos contenidos en el mismo directorio que el "index.html" de dicha página o aplicación web, así como el contenido de los subdirectorios. No sé si te refieres a algo así cuando dices que tu programa "lleva más cosas que el navegador".

GRacias, es cierto que el programa que decias hace perfectamente lo que pedía, la verdad es que no lo especifiqué que la web debía ser cargada en twebbrowser,
pero lo que me refiero es que el twebbrowser es una parte del programa, el cual tiene un explorador de archivos y algunos botones y otras cosas.

dec 02-11-2014 19:48:49

Hola,

Cita:

Empezado por cocute (Mensaje 484143)
GRacias, es cierto que el programa que decias hace perfectamente lo que pedía, la verdad es que no lo especifiqué que la web debía ser cargada en twebbrowser,
pero lo que me refiero es que el twebbrowser es una parte del programa, el cual tiene un explorador de archivos y algunos botones y otras cosas.

Pero no lo entiendo. Recuerda que mi respuesta no era: usa mi programa, sino, implementa en tu programa lo que yo hago en el mío. Esto podría servirte para incrustar una página web, tal como decías, pero, no te impide añadir a tu programa tantos controles como quieras además del "TWebBrowser".

cocute 02-11-2014 21:31:42

Cita:

Empezado por dec (Mensaje 484144)
Hola,
Pero no lo entiendo. Recuerda que mi respuesta no era: usa mi programa, sino, implementa en tu programa lo que yo hago en el mío. Esto podría servirte para incrustar una página web, tal como decías, pero, no te impide añadir a tu programa tantos controles como quieras además del "TWebBrowser".

Ok, ahora lo pillo, que no había leido bien tu mensaje,
pensaba que me habías recomendado el html compiler no que era tu programa y que habias hecho algo parecido.
Buscaré información sobre el tema del Asynchronous Pluggable Protocols en delphi que lo de usar programas de esos virtualizadores que he nombrado antes no me convence mucho.
Gracias y disculpas por el malentendido.

dec 02-11-2014 22:23:00

Hola,

Cita:

Empezado por cocute (Mensaje 484146)
Ok, ahora lo pillo, que no había leido bien tu mensaje,
pensaba que me habías recomendado el html compiler no que era tu programa y que habias hecho algo parecido.
Buscaré información sobre el tema del Asynchronous Pluggable Protocols en delphi que lo de usar programas de esos virtualizadores que he nombrado antes no me convence mucho.
Gracias y disculpas por el malentendido.

Nada, hombre, no tienes que disculparte. Echa un vistazo más arriba: enlazo un componente que te hará más sencillo trabajar con los "Asynchronous Pluggable Protocols". ;)


La franja horaria es GMT +2. Ahora son las 22:14:05.

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