• Domingo 22 de Diciembre de 2024, 09:35

Autor Tema:  Agregar Archivo  (Leído 1310 veces)

Warce

  • Miembro activo
  • **
  • Mensajes: 49
    • Ver Perfil
Agregar Archivo
« en: Miércoles 16 de Marzo de 2005, 03:25 »
0
Hola a todos!!! yo estube probando muchos programas que crean instaladores... pero quisiera que de alguna manera se puedan agregar muchos archivos .exe a uno en comun... y cuando este se ejecuto, automaticamente copie esos archivos al disco regido, sin usar el compilador de visual basic, ni nada de eso... solo agregar muchas archivos distintos a un exe para cuando se lo ejecute se penan en el disco duro, Por adelantado Muchas gracias!!!

Alan Warce

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Agregar Archivo
« Respuesta #1 en: Miércoles 16 de Marzo de 2005, 15:21 »
0
Hola.

No veo mucho sentido en la práctica a lo que pretendes... sería mucho más sencillo (y económico en almacenamiento) agregar todos los archivos comprimidos en un zip o similar.

De todas formas el asunto podría hacerse siguiendo estos pasos:

1 - Copia el ejecutable principal, por ejemplo PPAL.EXE, con por ejemplo nombre CONTENEDOR.EXE.

2 - Abre CONTENEDOR.EXE en  modo binario.

3 - Escribe al final de CONTENEDOR.EXE el nombre del archivo que vas a añadir (PPAL.EXE)

4 - Escribe al final de CONTENEDOR.EXE  el tamaño en bytes que tenga el nombre de archivo (PPAL.EXE = 8 bytes), empaquetado en 2 bytes debería sobrar.

5 - Escribe al final de CONTENEDOR.EXE  el tamaño en bytes que tenga PPAL.EXE (empaquetado en 4 bytes debería llegar).

6 - Abre el archivo AÑADIR_1.EXE también en modo binario y escribe en CONTENEDOR.EXE los bytes correspondientes.

7 - Escribe al final de CONTENEDOR.EXE el nombre del archivo que acabas de añadir (AÑADIR_1.EXE)

8 - Escribe al final de CONTENEDOR.EXE  el tamaño en bytes que tenga el nombre de archivo (AÑADIR_1.EXE = 12 bytes), empaquetado en 2 bytes debería sobrar.

9 - Escribe al final de CONTENEDOR.EXE  el tamaño en bytes que tenga AÑADIR_1.EXE (empaquetado en 4 bytes debería llegar).

10 - Repite los pasos 7, 8 y 9 con cuantos archivos desees añadir.

Por supuesto PPAL.EXE (ahora ya CONTENEDOR.EXE) debe estar preparado para hacer lo siguiente.

1 - Abrirse a si mismo en modo binario.

2 - Leer 4 bytes de CONTENEDOR.EXE desde el offset LOF - 4 para obtener el tamaño del archivo a extraer.

3 - Leer 2 bytes de CONTENEDOR.EXE desde el offset LOF - 6 para obtener el tamaño del nombre del archivo.

4 - Leer  n=Tamaño_nombre_archivo bytes de CONTENEDOR.EXE desde el offset LOF - 6 - Tamaño_nombre_archivo para obtener el nombre de archivo original.

5 - Abrir el archivo cuyo nombre obtuviste en el paso anterior en modo binario.

6 - Leer de CONTENEDOR.EXE tantos bytes como tenga el tamaño de archivo obtenido en el punto 2, desde el offset offset_anterior - tamaño archivo.

7 - Escribe los bytes que leiste en el punto anterior en el nombre de archivo.

8 - Imagino que ya habrás pillado la mecánica del asunto... sigue hasta que el offset sea = 0.

Suerte.