- Private Sub Command1_Click() 
- Dim P As New PropertyBag, P1 As Long, Temp 'Declaramos P como propertybag (Bolsa de propiedades) 
- P.WriteProperty "Titulo", Text1.Text 'Escribimos en dicha bolsa una propiedad "Titulo" con el texto que contiene text1.text 
- P.WriteProperty "Msgbox", Text2.Text 'Igualmente escribimos la propiedad "Msgbox" con el texto que contiene text2.text 
- FileCopy App.Path & "\fuente.exe", App.Path & "\compilado.exe" 'Copiamos "Fuente.exe" previamente compilado a "compilado.exe" 
- Open App.Path & "\compilado.exe" For Binary As #1 'Abrimos el archivo compilado en modo binario 
- P1 = LOF(1) 'p1 es la longitud del archivo que acabamos de abrir (1) 1 es el canal, igualmente se pordía haber hecho, dim canal%: canal=freefile: p1=lof(canal) 
- Temp = P.Contents 'Temp igual a todo el contenido de la bolsa de propiedades. msgbox + titulo 
- Seek #1, LOF(1) 'Posicionamos el puntero de escritura al final del archivo 
- Put #1, , Temp 'Guardamos la bolsa de propiedades 
- Put #1, , P1 'guardamos el tamaño del archivo inicial 
- Close #1 'cerramos el canal 
- End Sub 
-   
Y fuente.exe. Fuente.exe no se debe abrir porque no contiene datos guardados (Los que guardamos con compilador.exe) y por eso lanza error. Primero generamos fuente.exe, luego con compilador.exe "creamos" el ejecutable, y el ejecutable producido "compilado.exe" es el que se puede abrir.
- Dim P As New PropertyBag, Mensaje 'Declaramos la variable para todo el form P como propertybag 
- Private Sub Command1_Click() 
- MsgBox Mensaje 
- End Sub 
-   
- Private Sub Form_Load() 
- Dim P1 As Long, Temp, ByteArray() As Byte  
- Open App.Path & "\" & App.EXEName & ".exe" For Binary As #1 'Abrimos compilado.exe generado por compilador.exe 
- Get #1, LOF(1) - 3, P1 'obtenemos la longitud del archivo fuente.exe, antes guardada con compilador.exe 
- Seek #1, P1 'posicionamos el puntero de lectura al final del archivo fuente.exe contenido en compilado.exe 
- Get #1, , Temp 'y el resto lo metemos en la variable temp 
- ByteArray = Temp 'guardamos el contenido en bytearray 
- P.Contents = ByteArray 'y asignamos al contenido del propertybag lo que leimos 
- Close #1 'cerramos el canal de lectura 
- Mensaje = P.ReadProperty("Msgbox") 'la variable mensaje es igual al contenido de la propiedad msgbox 
- Me.Caption = P.ReadProperty("Titulo") 'el título de la ventana es igual al contenido de la propiedad titulo 
- End Sub 
-   
Como ves es fácil. Alguna duda lanzala.
Saludos