Hacer portable una aplicación con AutoIt

Agosto 2017


Introducción

Este tutorial te permitirá seguir paso a paso la creación de un instalador para una aplicación que normalmente no es portable, y que modifica el registro del sistema al instalarse. A modo de ejemplo haremos portable el programa FlashGet utilizando las siguientes herramientas:

Portable Regshot
AutoIt

Nota: Si el programa posee un driver, no podrá ser hecho portable con este método.
Si el programa posee archivos en el directorio de Windows o en otros directorios del sistema, tampoco podrá ser hecho portable.
Si es necesario guardar una dll/ocx, tampoco podrá ser hecho portable.

Para aquellos que el registro del sistema y la programación les asusta, les recomiendo esta aplicación.

II) Etapa previa

Para ver las claves modificadas o creadas en el registro del sistema al instalar FlashGet, debemos hacer una “imagen” del registro antes de la instalación y compararla al registro después de la instalación del programa. Para ello, utilizaremos el programa Regshot hecho portable por Framasoft.
  • Ejecuta Portable Regshot
  • Dale clic al botón 1st shot: se efectuará una primera imagen del registro del sistema.
  • Instala FlashGet
  • Dale clic al botón 2nd shot: se efectuará la segunda imagen del registro.
  • Luego dale clic al botón cOmpare.


Regshot generará un informe (en formato txt o html de acuerdo a la opción que se haya elegido):

En la sección de claves añadidas (Key added) nota que aparecen varias claves empezando por HKU (HKEY_CURRENT_USER) y HKLM (HKEY_LOCAL_MACHINE).
  • Luego abre el editor del registro: menú Inicio > Ejecutar > escribe regedit
  • Luego dirígete a la clave HKEY_CURRENT_USER\Software\JetCar\:
  • Haz clic sobre la clave y selecciona Exportar. En la ventana que aparece ponle como nombre portable.reg y haz clic en Guardar.
  • Crear una nueva carpeta con el nombre “temp” en la carpeta donde se encuentra la clave exportada.
  • Copia la clave en la nueva carpeta “temp”
  • Haz clic derecho sobre la clave copiada, selecciona Modificar y pon el símbolo “-“ delante de cada HKU:
  • Guarda “portable.reg” luego cierra el bloc de notas.

Hacer portable la aplicación (creación del script)

Copia la carpeta de instalación del programa (por lo general se encuentra en "C:\Archivo de programa" en la carpeta donde pusiste “portable.reg” y modifica el nombre de la carpeta de la aplicación (en nuestro caso “FlashGet”) y ponle “App”

Ahora esto se complica un poco:
Habrá que hacer un script (con nuestro editor de texto favorito) y transformarlo luego en archivo ejecutable, utilizando Aut2Exe.

Este es el script estándar para portabilizar una aplicación con este método:
RunWait("App\appname.exe")
RunWait('regedit.exe /s /e "' & @ScriptDir & '\Portable.reg" "HKEY_CURRENT_USER\Software\JetCar"')
RunWait("regedit.exe /s Portable2.reg", @ScriptDir)
  • En la segunda línea: en vez de "appname.exe" pon el nombre del ejecutable de la aplicación.
  • En la tercera línea: cambia "HKEY_CURRENT_USER\Software\JetCar" con la clave del registro utilizada por la aplicación.


Guarda este script y por ejemplo ponle de nombre Portable_FlashGet.au3 (la extensión ".au3" es primordial).

Ahora vamos a convertir nuestro script en ejecutable: para ello, ejecuta Auto2exe, luego selecciona el script Portable_FlashGet.au3, cambia el directorio de destino para apuntar a la raíz del directorio donde has puesto "Portable.reg", y cambia eventualmente el icono. Haz clic en covert, y después de algunos segundos, el ejecutable estará creado.

Aun no hemos terminado: ahora debes modificar el nombre del archivo "Portable.reg" que se encuentra en “temp” y ponerle como nombre "Portable2.reg" > luego debes moverlo a la raíz de la aplicación portable:

Otros enlaces de interés

Consulta también

Publicado por Carlos-vialfa. Última actualización: 11 de octubre de 2016 a las 17:16 por Carlos-vialfa.
El documento «Hacer portable una aplicación con AutoIt» se encuentra disponible bajo una licencia Creative Commons. Puedes copiarlo o modificarlo libremente. No olvides citar a CCM (es.ccm.net) como tu fuente de información.