Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

adjuntar un archivo a un exe en visual Basic

Estas en el tema de adjuntar un archivo a un exe en visual Basic en el foro de Visual Basic clásico en Foros del Web. Cómo adjuntar un archivo a un exe en visual Basic. es decir que en mi exe se guarde otro archivo. como ase el PictureBox que ...
  #1 (permalink)  
Antiguo 20/04/2005, 17:29
Avatar de VisualGuallabo  
Fecha de Ingreso: marzo-2005
Mensajes: 288
Antigüedad: 19 años, 1 mes
Puntos: 2
adjuntar un archivo a un exe en visual Basic

Cómo adjuntar un archivo a un exe en visual Basic. es decir que en mi exe se guarde otro archivo. como ase el PictureBox que una vez colocada una imagen en el ya no tienes que distribuir dicha imagen con tu aplicación.
o como es el caso de la ocx del flash.ocx que tiene una propiedad llamada EmbedMovie que si la estableses a true te incrusta la pelicula plash a la aplicación es decir ya no tienes que distribuirla ya que se encuentra dentro de exe
__________________
"No hay lenguaje de programación potente que sea inferior a otro semejante cuando existe un buen programador que lo defiende"

Yosvanis Cruz Alias VisualGuallabo
Ycruz
  #2 (permalink)  
Antiguo 20/04/2005, 18:02
Avatar de Jad-Neo  
Fecha de Ingreso: octubre-2004
Mensajes: 344
Antigüedad: 19 años, 6 meses
Puntos: 0
De esta forma...

En Visual C++ crea un archivo RES de recursos y allá incrusta el archivo que desees, después en VB, agrega el archivo RES; supongo que ya sabes como; y con la función LoadResData o algo así, carga la matriz de bytes a una variable String. Para exportar el archivo en tiempo de ejecusión solo debes hacer lo siguiente en una función:

Dim i$, Cont&
i=LoadResData("Nombre del dato, velo en Visual C++, en la carpetita el archivo incrustado")
Open App.Path & "\Archivo" For Access Binary Write As #1 'Nombre del archivo incrustado en VC++
For Cont=1 To LenB(i)
Put #1, Cont, MidB$(i, Cont, 1) 'Ahora no me acuerdo bien pero puede cambiar el MidB por otra estructura mas compleja
DoEvents
Next Cont
Close #1

Espero te sirva, cualquier duda me mandas un mensaje privado.
  #3 (permalink)  
Antiguo 21/04/2005, 00:31
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Si no tenes VC++ y queres editar/crear archivos de recursos tambien podes usar el ResHacker: http://www.users.on.net/johnson/resourcehacker/
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #4 (permalink)  
Antiguo 21/04/2005, 13:37
Avatar de VisualGuallabo  
Fecha de Ingreso: marzo-2005
Mensajes: 288
Antigüedad: 19 años, 1 mes
Puntos: 2
Pero lo que deseo incrustar es otro exe dentro de mi aplicación. probare creando un recurso los rescursos yo los he utilizado pero para imagenes y textos y sonidos wav. espero que me funcione con un exe grasias Jad-Neo y Eternal Idol
__________________
"No hay lenguaje de programación potente que sea inferior a otro semejante cuando existe un buen programador que lo defiende"

Yosvanis Cruz Alias VisualGuallabo
Ycruz
  #5 (permalink)  
Antiguo 21/04/2005, 13:43
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
¿Un exe en otro exe? Mmm... Rara vez se tiene que hacer eso. Especifica un poco más si puede ser: Quién debe ejecutarse primero, qué debe hacer el "primero" o el "último"... Si lo que quieres es meter un exe en VB para luego al ejecutar el VB guardar ese exe en el disco (o sea sacarlo del propio EXE para crear otro EXE) y así ejecutar éste, pues también dilo.
  #6 (permalink)  
Antiguo 21/04/2005, 17:16
Avatar de VisualGuallabo  
Fecha de Ingreso: marzo-2005
Mensajes: 288
Antigüedad: 19 años, 1 mes
Puntos: 2
Si lo que quiero es meter un exe en mi proyecto de VB para cuando lo compile se guarde dentro de mi aplicación luego al ejecutar mi aplicación hecha VB poder guardar ese exe en el disco (o sea sacarlo del propio EXE hecho en Vb para crear otro EXE) y así ejecutar éste.

¿Si puedes echarme una mano te lo agradesco mucho?. con lo de los recursos no doy pie con bola.
Grasias por la aclaración MaxExtreme
__________________
"No hay lenguaje de programación potente que sea inferior a otro semejante cuando existe un buen programador que lo defiende"

Yosvanis Cruz Alias VisualGuallabo
Ycruz
  #7 (permalink)  
Antiguo 22/04/2005, 02:21
Avatar de VisualGuallabo  
Fecha de Ingreso: marzo-2005
Mensajes: 288
Antigüedad: 19 años, 1 mes
Puntos: 2
si alguien sabe aserlo mediante los recursos que me pase un ejemplito
__________________
"No hay lenguaje de programación potente que sea inferior a otro semejante cuando existe un buen programador que lo defiende"

Yosvanis Cruz Alias VisualGuallabo
Ycruz
  #8 (permalink)  
Antiguo 22/04/2005, 06:29
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Mmm O sea, inclusión en el exe de una cadena de bytes para luego guardarlo al disco y ejecutarlo.

En C es fácil hacerlo dado que puedes guardar cadenas en forma númerica (hexadecimal). En VB no sé si se puede, pero debes hacerlo así porque los EXE llevan bytes no representables y que dudo que VB te deje. El editor Hex WorkShop te exporta los archivos con ese formato, por ejemplo:

Código:
// Generated by BreakPoint Software's Hex Workshop v3.11
//   http://www.hexworkshop.com
//
// Source: unexecualquiera.EXE
//   Time: 22/04/2005 14:33
// Offset: 0 / 0x00000000
// Length: 128 / 0x00000080


unsigned char rawData[128] = {
    0x4D, 0x5A, 0x90, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 
    0xB8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x00, 
    0x0E, 0x1F, 0xBA, 0x0E, 0x00, 0xB4, 0x09, 0xCD, 0x21, 0xB8, 0x01, 0x4C, 0xCD, 0x21, 0x54, 0x68, 
    0x69, 0x73, 0x20, 0x70, 0x72, 0x6F, 0x67, 0x72, 0x61, 0x6D, 0x20, 0x63, 0x61, 0x6E, 0x6E, 0x6F, 
    0x74, 0x20, 0x62, 0x65, 0x20, 0x72, 0x75, 0x6E, 0x20, 0x69, 0x6E, 0x20, 0x44, 0x4F, 0x53, 0x20, 
    0x6D, 0x6F, 0x64, 0x65, 0x2E, 0x0D, 0x0D, 0x0A, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    } ;
Eso sería el principio de un archivo exe. Intenta emular eso en VB. Si no, en un archivo de recursos es la única salida viable que veo.
  #9 (permalink)  
Antiguo 25/04/2005, 17:11
Avatar de VisualGuallabo  
Fecha de Ingreso: marzo-2005
Mensajes: 288
Antigüedad: 19 años, 1 mes
Puntos: 2
Ya ise el archivo de recurso pero cual seria el codigo para extraerlo y guararlo en el disco duro. y disculpa pero da respuestas mas combincentes y con algo de codigo.
__________________
"No hay lenguaje de programación potente que sea inferior a otro semejante cuando existe un buen programador que lo defiende"

Yosvanis Cruz Alias VisualGuallabo
Ycruz
  #10 (permalink)  
Antiguo 25/04/2005, 17:36
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Cita:
Iniciado por VisualGuallabo
Ya ise el archivo de recurso pero cual seria el codigo para extraerlo y guararlo en el disco duro. y disculpa pero da respuestas mas combincentes y con algo de codigo.
- Ya te han ayudado sobre el archivo de recursos y cómo extraerlo en este mismo post.
- Ya te he dado otra posible solución...
- Mi respuesta es convincente. Más claro, agua.
- Busca y cúrratelo un poquito antes de pedir el código
  #11 (permalink)  
Antiguo 27/04/2005, 22:43
Avatar de VisualGuallabo  
Fecha de Ingreso: marzo-2005
Mensajes: 288
Antigüedad: 19 años, 1 mes
Puntos: 2
Lo estraigo con ese codigo pero el que guarda no sirve.

Ayuda un ejemplo a [email protected]
__________________
"No hay lenguaje de programación potente que sea inferior a otro semejante cuando existe un buen programador que lo defiende"

Yosvanis Cruz Alias VisualGuallabo
Ycruz
  #12 (permalink)  
Antiguo 28/04/2005, 11:41
 
Fecha de Ingreso: abril-2005
Ubicación: Guayaquil
Mensajes: 4
Antigüedad: 19 años
Puntos: 0
Por favor traten señores de ser un poco mas tolerante con las cosas que dicen no olviden que todos pensamos diferentes y eso se ve haste en la forma de programar.
Be well!!
  #13 (permalink)  
Antiguo 12/05/2005, 19:17
Avatar de Jad-Neo  
Fecha de Ingreso: octubre-2004
Mensajes: 344
Antigüedad: 19 años, 6 meses
Puntos: 0
Este es el código corregido del principio, ya verificado y corregido.
Dim i$, Cont&
i=LoadResData("Nombre del dato, velo en Visual C++, en la carpetita el archivo incrustado")
Open App.Path & "\ArchivoEXE.exe" For Access Binary Write As #1 'Nombre del archivo incrustado en VC++
For Cont=1 To LenB(i)
Put #1, Cont, AscB(MidB$(i, Cont, 1)) 'Corrección del anterior
DoEvents
Next Cont
Close #1

Notificame cuando ya te funcione el código.
  #14 (permalink)  
Antiguo 13/05/2005, 10:33
Avatar de VisualGuallabo  
Fecha de Ingreso: marzo-2005
Mensajes: 288
Antigüedad: 19 años, 1 mes
Puntos: 2
Lo boy a probar penas que lo prueve te aviso.
Grasias socio.
__________________
"No hay lenguaje de programación potente que sea inferior a otro semejante cuando existe un buen programador que lo defiende"

Yosvanis Cruz Alias VisualGuallabo
Ycruz
  #15 (permalink)  
Antiguo 13/05/2005, 12:00
Avatar de VisualGuallabo  
Fecha de Ingreso: marzo-2005
Mensajes: 288
Antigüedad: 19 años, 1 mes
Puntos: 2
Grasiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ssssssssssssss.
Eres lo maximo me as resulto un gran problema.
no se como darte un millon de grasias. ojala pueda ayudarte en alguna de tus preguntas amigo.
Me funciono lo que tienes un error en el codigo pero no importa ya lo resolbi.
el error es que se pone Binary Access y no Access Binary es desir lo imbertiste pero un error se le ba acualquiera.
muchas grasias socio. el codigo me quedo asi-

Dim i$, Cont&
i = LoadResData(1, "YCC_EXE")
Open App.Path & "\ArchivoEXE.exe" For Binary Access Write As #1
For Cont = 1 To LenB(i)
Put #1, Cont, AscB(MidB$(i, Cont, 1)) 'Corrección del anterior
DoEvents
Next Cont
Close #1

Funciona grasia ti.

De nuevo muchas grasias Jad-Neo
__________________
"No hay lenguaje de programación potente que sea inferior a otro semejante cuando existe un buen programador que lo defiende"

Yosvanis Cruz Alias VisualGuallabo
Ycruz
  #16 (permalink)  
Antiguo 23/03/2009, 07:39
Avatar de culd  
Fecha de Ingreso: noviembre-2003
Mensajes: 959
Antigüedad: 20 años, 6 meses
Puntos: 19
Respuesta: adjuntar un archivo a un exe en visual Basic

Estem, yo adjunte el .res directamente desde vb... Y lo guardo con el numero "101" entonces hago asi...

Código:
i = LoadResData(101, "YCC_EXE")
Y me tira:

No se ha encontrado el recurso con el identificador 101


EDITO: Osea agrego el complemento de recursos en vb... Voy a "recursos personalizados" selecciono el .exe y me carga un archito que dice 101...

Última edición por culd; 23/03/2009 a las 07:58
  #17 (permalink)  
Antiguo 23/03/2009, 08:52
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: adjuntar un archivo a un exe en visual Basic

Hola, culd.

Si lo haces desde el Complemento de Recursos, para recuperarlo debes usar:
Código vb:
Ver original
  1. i = LoadResData(101, "Custom")
Saludos .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #18 (permalink)  
Antiguo 23/03/2009, 09:00
Avatar de culd  
Fecha de Ingreso: noviembre-2003
Mensajes: 959
Antigüedad: 20 años, 6 meses
Puntos: 19
Respuesta: adjuntar un archivo a un exe en visual Basic

Cita:
Iniciado por David el Grande Ver Mensaje
Hola, culd.

Si lo haces desde el Complemento de Recursos, para recuperarlo debes usar:
Código vb:
Ver original
  1. i = LoadResData(101, "Custom")
Saludos .
Si ya lo habia notado, thanks
  #19 (permalink)  
Antiguo 20/04/2009, 23:23
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Respuesta: adjuntar un archivo a un exe en visual Basic

Que tal he intentado abrir el archivo.exe con la funcion shell y con la api shellexecute pero no he podido abrir el .exe adjunto en el archivo.res como debo hacerlo correctamente

saludos
  #20 (permalink)  
Antiguo 21/04/2009, 10:07
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: adjuntar un archivo a un exe en visual Basic

Hola, franko1809.

Debes recuperarlo y escribir dentro de otro archivo el ejecutable.

P.S.: Es mejor que abras un nuevo tema para explicar tu pregunta, así podremos ayudarte mejor.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 22:06.