Página 1 de 2

Distribución de cualquier fichero adjunto al programa en C/S

Publicado: 08 Ago 2006, 16:29
por Roberto Blasco
Un consejo.

Si queremos utilizar cualquier dll, archivo, plantilla o demás fichero que necesitemos en el cliente hay que utilizar el Objeto Binario, de esta forma evitamos la distribución de cualquier tipo de soporte para nuestro programa y podemos crear una actualización automática de versiones de todos esos archivos sin que el cliente tenga que intervenir en un proceso.

Un saludo. Roberto.

agradecimiento

Publicado: 08 Ago 2006, 18:30
por jaro4
de nuevo muchas gracias roberto por tu colaboracion con el foro, siempre ayudando

Publicado: 08 Ago 2006, 18:51
por cabella
Hola Roberto.

No te he entendido muy bien tu idea, podrías explicar el proceso un poco más detallado por favor???

Gracias Roberto.

Publicado: 08 Ago 2006, 19:20
por Roberto Blasco
Es muy sencillo, para que una dll funcione en C/S debe ser instalada en el directorio de sistema del cliente. Bueno, si incluímos en la aplicación una tabla de Objetos Binarios, con los campos objeto binario y ruta de instalación
p.e.:

%OB% = word.dll
%RUTA% = "C:\windos/system32"

en el inicio del Autoexec debemos lanzar un proceso que recorra la lista de los binarios, si hay algún archivo de los que están en la lista no se encuentra en el cliente, entonces lo exportamos a la ruta expecificada y ya tendremos distribuída la dll en el cliente.

Tan fácil como un nuevo registro con su ruta para añadir otro archivo en el cliente.

Un saludo. Roberto.

Muchas Gracias

Publicado: 08 Ago 2006, 22:13
por TARUGO
Muchas gracias por la informacion que nos has facilitado (y por las DLL de word y excel que en su día realizaste y nos ofrecistes a todos).
A mi me será de gran utilidad, ya que un cliente quiere que todos los informes de la aplicacion se abran primero en Word para poder realizar modificaciones antes de imprimirlos.

Una pregunta, las DLL deben instalarse en C:\Windows\System32 o en el directorio del navegador de velazquez C:\Archivos de Programa\Atica\Program

Publicado: 08 Ago 2006, 22:26
por Roberto Blasco
Cualquier dll para que la encuentre el sistema debe de estar en una ruta que éste conozca o en la ruta de la aplicación que la utiliza.
La ruta que Windows conoce por excelencia es c:\Windows\system32 (ahí debes copiar la dll)que es donde tienes que copiarla en el cliente, a no ser que modifiques su PATH (SET PATH)y apuntes adonde le hayas copiado la dll.

Un saludo. Roberto.

P.D. En definitiva y para no liarte en el directorio c:\Windows\System32 del cliente en sistemas Windows

Publicado: 08 Ago 2006, 22:31
por TARUGO
Muchas gracias por tu rapida respuesta.

Sin animo de abusar, una cuestion más. He hecho el proceso tal y como dices (aunque usando una variable global para determiar la ruta del directorio donde copiar el fichero) pero cuando me copia la DLL, el nombre me sale con "tropocientos" espacios en blanco y luego el word.dll ¿A que puede ser debido?

Publicado: 08 Ago 2006, 22:35
por jdseara
Roberto, muy buena solución. Gracias.

Publicado: 08 Ago 2006, 22:39
por Roberto Blasco
Efectivamente, no uses variables globales. La ruta donde quieras exportar el objeto binario debe estar en un campo de la propia tabla.

Tabla OB
-OB (Objeto Binario)
-Descripcion(Alfabético[100]) Opcional
-Ruta(Alfabético[500])

P.D. No nos olvidemos de incluir un proceso que se asegure que la ruta tiene la barra invertida "\" al final de la cadena, y si no la tiene la añade.

Un saludo. Roberto.

Publicado: 08 Ago 2006, 22:47
por TARUGO
Una vez más Infinidad de gracias. Efectivamente era tema de campo en lugar de variable.