Creación de un CD o DVD ejecutable
Versión del sistema operativo: Windows Xp
Pregunta: ¿Cómo hago para crear un CD o DVD ejecutable?
Respuesta:
Los sistemas Windows (yo he probado con el Xp) poseen la capacidad de ejecutar automáticamente un dispositivo de almacenamiento (esto se conoce como autorun, autoplay).
Esta característica (auto-arranque) te permite crear CDs más dinámicos y atractivos.
Para realizar un CD (digo CD pero entiéndase de aquí en adelante cualquier dispositivo de almacenamiento a utilizar) ejecutable se lo puede hacer mediante programación o vía software (Ejemplo AutoPlay Media Studio).
En este apartado vamos a programar por nuestra propia cuenta pues no siempre se cuenta con el dinero suficiente para un programa de pago. En realidad no recuerdo si alguna vez utilice un programa free para realizar un autoejecutable así que aquello no tocare aquí.
Veamos…
CREAR UN ARCHIVO AUTORUN.INF
Al ingresar un medio de almacenamiento en tu unidad lectora está automáticamente busca (inicialmente) si en el contenido del CD existe el famoso Autorun.inf. En caso de que lo encuentre el cd se convertirá en ejecutable (teniendo en cuenta que el archivo autorun.inf está previamente programado). Este archivo es secuencial (los comandos se leen de arriba hacia abajo)
Los pasos para crear el autoru.inf son:
-Muestra las extensiones de los archivos
Doble clic a Mi PC/herramientas/opciones de carpeta/ficha ver/desmarca la opción ocultar las extensiones de archivo para tipos de archivo conocidos
Este paso nos servirá al momento de querer ver la extensión del archivo (que en nuestro caso será .inf)
-Abre un editor de texto (ejemplo en notepad)
Presiona la tecla Windows seguida de la letra R (Windows+R) o Inicio/Ejecutar en la ventana denominada “Ejecutar” escribe notepad y presiona intro (enter)
-Lo primero que debes escribir es [AutoRun] incluido los corchetes
-Lo guardas con la extensión .inf (aquí debes tener cuidado pues el notepad automáticamente pone la extensión .txt)
Para evitar este “inconveniente” procedes a borrar el contenido (*.txt) del combo Nombre y luego escribes Autorun.inf
Otra manera es evitando la extensión por default del notepad encerrando entre comillas el nombre (así “Autorun”) y luego buscas el archivo (en la ruta donde lo hayas guardado) y colocas por tu cuenta la extensión .inf, esto es imprescindible pues el archivo no cuenta con extensión.
Ver imágen1
Así debe quedar el nombre y la extensión (el icono que pone el WindowsXp es un documento con un pequeño disco amarillo, esto cambiará dependiendo de si tienes instalado un pack en tu máquina, en mi caso CrystalXp)
ASIGNAR UNA ETIQUETA AL CD
-Doble clic al archivo autorun.inf para abrirlo, o clic derecho opción abrir
-Debajo de [Autorun] escribe
Label=EtiquetaDelCd
Ejemplo:
Label=Cd_ejecutable o si quieres
Label=MiPrimerEjemplo o como deseas que se llame la etiqueta de tu Cd interactivo. (La etiqueta es el nombre que tiene el Cd al momento de introducirlo a la unidad lectora)
Esta es la sintaxis estándar utilizada para programar en el Autorun.inf (ósea Comando=Valor)
Imágen2 ASIGNAR UN ICONO AL CD
Listo hasta ahora sabemos como crear un autorun.inf y mediante programación en el mismo asignar una etiqueta al CD, pero vamos a hacerlo algo más interesante por ejemplo ponerle un icono al CD (a los lados de la etiqueta)
Puedes realizar este objetivo de 2 maneras posibles:
• Especificando un icono (.ico): Sintaxis.-
Icon=NombreDelIcono.ico
• Especificando un fichero contenedor de iconos: Sintaxis.
Icon=NombreDelFichero,#icono
Por ejemplo:
Si utilizamos el especificar un icono podemos realizar lo siguiente:
-Ubícate en el escritorio de Windows
-Presiona F3
-En el cuadro de búsqueda escribe *.ico
-Escoge un icono a tu gusto y si deseas cambias el nombre (no la extensión, debes dejarla como .ico), supongamos que el icono tiene el nombre (o se lo pusiste) de IconoEjemplo.ico
La programación en el Autorun.inf sería.
Icon=IconoEjemplo.ico (En el caso de que el icono este en el directorio raiz del cd)
-Incluye el icono de tu gusto dentro del CD (Copiarlo)
Si utilizamos especificando un fichero contenedor de iconos
Aquí hablamos de archivos .exe o .dll que incluyen iconos.
Ejemplo:
Winamp: C:\Archivos de programa\Winamp\winamp.exe (winamp.exe contendrá los iconos)
C:\WINDOWS\system32\SHELL32.dll (SHELL32.dll contendrá los iconos)
Puedes utilizar cualquier archive .exe o .dll contenedor de iconos.
Imágen3
Por ejemplo si quieres acceder al primer icono del archivo winamp.exe sería así la sintaxis:
Icon=winamp.exe,0
Sí…..el primer icono con el número 0, al segundo con el número 1 y así sucesivamente. Además la lectura es de arriba hacia abajo. Por ejemplo para acceder al icono de la carpeta cerrada dentro de Shell32.dll sería la sintaxis siguiente:
Icon=winamp.exe,3
Así que atención con la lectura de los iconos en archivos contenedores y sobre todo al momento de grabarlos en el CD
no debes cortarlos (pues no tendríamos el ejecutable del winamp o en el caso de la DLL borraríamos el shell32.dll que es vital para el sistema) sino copiarlos.
NOTA: En caso de no funcionar el ejecutable verifica que el valor de la propiedad autorun sea 1
Código:
Inicio/Ejecutar/regedit
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Cdrom
Luego verifica que la propiedad Autorun tenga valor 1
COMANDOS AVANZADOS • La instrucción Icon
Había indicado anteriormente que la sintaxis para incluir un icono que se encuentra dentro del CD (directorio raíz) es la siguiente Icon=IconoEjemplo.ico
Esto no necesariamente debe ser así. Por ejemplo ¿Cómo incluyo un icono que se encuentra en una ruta determinada dentro del CD?
Icon=Ruta\IconoEjemplo.ico (En el caso de poseer una ruta). Si dentro del disco posees una carpeta llamada “CarpetIcon” y dentro de esta el icono llamado “Malla.ico” sería la sintaxis así:
Icon=CarpetIcon\Malla.ico
¿Cómo hago para llamar a un icono que no este grabado en el CD?
Como si fuera poco podemos acceder a unidades externas no propias del CD, ejemplo:
Icon=C:\CarpetIcon\Malla.ico (el icono deberá estar en la unidad de disco local C de una máquina). Esto puede llegar a ser complicado dado que puede que no funcione en todos los PCs o incluso en el nuestro si eliminamos el icono de nuestra unidad local. Una salida factible para usar este método es trabajar en base a variables de entorno, por ejemplo, se asume que shell32.dll está "normalmente" en C:\Windows\system32, pero puede que un usuario tenga un sistema personalizado o que haya modificado la ubicación de las carpetas mediante variables de entorno, en este caso y si quisiéramos cargar un ícono contenido en shell32 sin importar las modificaciones del usuario, usaríamos la variable de entorno %PATH% quedando de esta forma algo como
Icon=%PATH%\shell32.dll,3
Pueden ver una lista completa de las variables de entorno
acá • La instrucción Open
Open es una instrucción que permite abrir o ejecutar un determinado archivo.
La sintaxis es:
Open=ArchivoEjecutable.exe parámetros (los parámetros son necesarios en determinados casos)
Veamos algunos ejemplos:
Open=VOLEY.exe Open=C:\Archivos de programa\Microsoft Office\Office\Winword.exe Informacion.doc
En Office12 la ruta la debes cambiar por: "C:\Archivos de programa\Microsoft Office\Office12\WINWORD.EXE" (instalación por default->puede cambiar en el caso de que tu unidad local no sea la C o bien hayas especificado otra ruta al momento de la instalación)
Explico un poco:
En el primer caso abro un juego llamado VOLEY (con extensión .exe) que se encuentra en el directorio raíz del CD
En el segundo caso Abro Microsoft Word 2003 y cargo un documento que se encuentra en el directorio raíz del CD llamado Información (con extensión .doc). A diferencia del caso anterior aquí utilizo parámetros.
• La instrucción ShellExecute
Si la instrucción Open te pareció interesante, pues déjame decirte que esta te dejara asombrado/a
A ver imaginemos supongamos que en el CD tienes incluido un archivo de Word llamado “ForLats.doc” en la carpeta “HiKlon” si utilizas la instrucción open el archivo tendrías que abrirlo de la siguiente manera:
Open=C:\Archivos de programa\Microsoft Office\Office\Winword.exe F:\HiKlon\ ForLats.doc
Mal el código y no es que no funcione lo que pasa es que no es muy eficiente. Supongamos que ingrese el CD en otra unidad lectora en mi máquina simplemente no funcionaría por ya no ser la unidad F:
Y no se diga si lo ejecutamos en otra máquina, ojala tu suerte sea grande para que funcione (solo si la unidad de disco es también F:)
Bueno al menos es la manera que yo conozco hacerlo mediante el Open.
Lo que diferencia a ShellExecute de Open es que la primera tiene la facilidad de indicarle al sistema que ejecute un archivo en base a una asociación creada, es decir, si pedimos mediante ShellExecute que se ejecute un archivo .txt y ese archivo ya está asociado al Notepad o Block de notas, entonces no es necesario indicar la ruta del programa que deberá ejecutar el archivo .txt
La sintáxsis es esta:
ShellExecute=Archivo.extensión
Así el ejemplo anterior quedaría de la siguiente forma:
ShellExecute=HiKlon\ForLats.doc NOTA: El archivo a ejecutar/abrir mediante el comando ShellExecute debe estar asociado a alguna aplicación de Windows. Además si incluyes en un mismo Autorun.inf los comandos Open y ShellExecute siempre se ejecutara el que ocupe la posición más baja.
Bueno aquí termino espero que les sirva: No toco el tema del menú contextual en un disco ejecutable, pero creo que con esto ya puedes sorprender y crear el ejecutable….
By: <<Kevin Mero>>
-Y recuerda incluir todo en el disco de forma ordenada según hagas referencia en el código del Autorun.inf-