Explicación : Básicamente lo que intentaremos lograr con este manual es adjuntar archivos con cualquier tipo de extensión (.mp3, .mpq, .exe, .gif, .rar, etc) dentro de nuestro programa. Un ejemplo de la situación para utilizarlo sería el crear un Software que permita instalar algunos programas, los cuales podrían estar en la carpeta de nuestro Software, o utilizar este método para incluirlo dentro y nada de carpetas o archivos sueltos. La idea del manual es que lo pueda utilizar hasta la persona que no tiene conocimientos en Visual Basic, creo que incentiva más.
Se necesita: -Visual Basic 6.0 -Visual C++ (Preferentemente 6.0, yo utilizo ese) Bueno, primero que nada hagamos un code, el cual utilizaremos de ejemplo para nuestro Software, se utilizarán herramientas muy sencillas para el ejemplo. Bloc de Notas y Calculadora de Windows suponiendo que serían archivos que no los tendrían todos los ordenadores de Windows, tan solo son de ejemplo. En un formulario nuevo llamado Form1, tan solo agregaremos:
-2 OptionButton (optBloc y optCalc)
-1 CommandButton
Guardaremos el proyecto para utilizarlo mas adelante. Por ahora lo dejaremos sin código hasta tener nuestro recurso. Bien, ahora abrimos el bloc de notas (Inicio/Ejecutar/Notepad.exe) y así como nos abre en blanco lo Guardamos Como(Archivo/Guardar Como...) "Programas.res", importantísimo que sea con la extensión .res, sin eso no funcionará. Luego, con previamente Visual C++ 6.0 instalado le hacemos doble click al "Programas.res" así como ejecutamos diariamente cualquier archivo. Se nos abrirá el Visual C++ 6.0 con nuestro archivo ahí dentro. Le damos click derecho en algún espacio en blanco y tocamos "Import...". Tendrémos que seleccionar nuestro archivo a continuación.
IMPORTANTE: La ventana que se ejecuta tiene 3 propiedades:
Nombre:
Tipo: Icons(.ico)
Open: Auto
Y en "Tipo" viene marcado por defecto "Icons(.ico)" Deberemos cambiar esa opción por la de todos los archivos para no tener problemas de extensión al buscar nuestro archivo, que la propiedad quede así:
Nombre:
Tipo: Todos los Archivos(*.*)
Open: Auto
Una vez realizado ese cambio, buscaremos el archivo que queremos ejecutar a nuestro proyecto en Visual Basic y clickearemos "Import", en este ejemplo utilizaré el "notepad.exe" que se encuentra en "C:\WINDOWS". Veremos que sale una ventana de esta forma:
En la propiedad "Resource Type" escribiremos una breve descripción de nuestro archivo sin espacios preferiblemente y clickearemos 'OK'. Por ejemplo yo pondré: Resource Type: Bloc Y saldrá una ventana con muchos caracteres ASCII, los cuales no se podrán interpretar a simple vista, por lo tanto cerraremos la ventana de los caracteres ASCII. Nos quedará algo así a continuación :
Ya tenemos agregado el Bloc de Notas a nuestro recurso, pero como en el ejemplo utilizaré 2 recursos, falta la calculadora. Volveré a repetir la parte de: -Click Derecho/Import... -Buscaré Calc.exe que se encuentra en "C:\WINDOWS\system32" en este caso -Pondré como descripción "Calc" Y luego de hacer eso me quedará algo así:
IMPORTANTE: Recordar el numero que le fue asignado a cada aplicación agregada a nuestro res, en mi caso Bloc(101) y Calc(102). Y obviamente guardar los cambios en el "Programas.res".
La parte de utilizar el Visual C++ 6.0 ya está completa, ahora tan solo queda programar en Visual Basic. Abriremos el proyecto que guardamos anteriormente y agregaremos nuestro "Programas.res", en la ventana de proyect, ubicado a la derecha de nuestro proyecto, donde se visualizan los Form que tenemos(en nuestro caso 1) haremos "Click Derecho/Add/Add File..."
Y buscaremos a continuación el "Programas.res", una vez hecho eso veremos a la derecha una carpeta(debajo del form) llamada "Related Documents" y con "Programas.res" en su interior. Bien, ahora agregaremos en el formulario (cualquier parte en blanco, no en el botón ni en el Form Load) el siguiente código:
Código:
Public Sub ARes(NumRES As Integer, RutaCopy As String)
Dim File() As Byte
If Dir(RutaCopy) = "" Then
File = LoadResData(NumRES, "DESCRIPCION")
Open RutaCopy For Binary Access Write As #1
Put #1, , File
Close #1
End If
End Sub
NOTA: en la línea:
Código:
File = LoadResData(NumRES, "DESCRIPCION")
Cambiaremos "DESCRIPCION" por la breve descripción que dimos anteriormente en la propiedad "Resource Type", en el Visual C++. También, en mi caso que tengo 2 programas dentro del recurso, agregaremos nuevamente ese código pero cambiando el nombre del Sub, me refiero a esto:
Código:
Public Sub ARes
Como no permitirá tener 2 "Public Sub ARes", cambiaremos por "BRes" y si tenemos otro por "CRes" y así sucesivamente para tenerlos de forma ordenada. Cambiaremos la parte que acabo de explicar y también la descripción de la línea:
Código:
File = LoadResData(NumRES, "DESCRIPCION")
Luego de hacer eso, haremos doble click en nuestro Botón del Formulario(Command1) y pondremos el siguiente código:
Código:
Private Sub Command1_Click()
If optBloc.Value = True Then
ARes 101, App.Path & "\NOTEPAD.exe"
Shell ("NOTEPAD.exe")
ElseIf optCalc.Value = True Then
BRes 102, App.Path & "\Calc.exe"
Shell ("Calc.exe")
End If End
Sub
El código es largo e inentendible para alguien que recién comienza con Visual Basic 6, así que pasaré a explicar cada línea de código:
Código:
If optBloc.Value = True Then
Verifico si clickearon en el OptionButton para Ejecutar el Bloc de Notas(optBloc) y si lo clickearon pasa a la siguiente línea:
Código:
ARes 101, App.Path & "\NOTEPAD.exe"
Esta linea se modifica según la aplicación que tengamos, en mi caso yo puse ARes por que anteriormente en "Public Sub" está declarado así el "Bloc" y 101 que es el número que les dije que recuerden en Visual C++. También debemos modificar "\NOTEPAD.exe" por "\NOMBREDELEXE.exe". Esta línea hará que se extraiga el "\NOTEPAD.exe" de nuestro recurso, a la carpeta donde estamos utilizando nuestro programa. La siguiente línea ejecutará nuestro archivo extraído anteriormente:
Código:
Shell ("NOTEPAD.exe")
Lo que sigue del código es la repetición del anterior, modificando la parte de "BRes" y cambiando 101 por 102, así como estaba en el Visual C++.
-----------------------------------------------------------------------------------------------------
Eso es todo, una breve explicación para meter recursos a su proyecto en VB 6. Espero que les haya servido el tutorial ya que llevó su tiempo y esfuerzo hacerlo, unas 3 horas, pero creo que no explicar este tipo de cosas y guardarlas solo para uno mismo no es lo correcto. Subí el proyecto a Rapidshare y Megaupload para que puedan descargarlo y verlo si tienen dudas.
Descarga vía Rapidshare
Código:
http://rapidshare.com/files/211897502/Tutorial_Recursos_by_M.Black.rar
Descarga vía Megaupload
Código:
http://www.megaupload.com/?d=2SP88CZR
----------------------------------------------------------------------------------------------------
Son libres de redistribuirlo por todas las webs que quieran pero, por favor, ponerme como autor y no robarse el material
-----------------------------------------------------------------------------------------------------
Si les gustó, agradezcan.
Un saludo y no duden en postear dudas en caso de tenerlas.