Cristalab

Maximizar, centrar y extender un .EXE de Flash con Actionscript

Por: Sebaslynx
30 de Agosto del 2006
55,893 visitas

Este tutorial tiene como fin ayudar a quienes necesiten perfeccionar o aumentar las posibilidades de las presentaciones .EXE hechas en Flash, sobre todo para CDs Multimedia.

Extending Flash son una serie de aplicaciones realizadas para ampliar los recursos de las presentaciones ejecutables de Flash y nos permiten lograr resultados que antes no conseguíamos.

Las posibilidades que nos van a ofrecer son:

¿Cómo empezar?

Para empezar hay que descargar los programas de Extending Flash incluidos con los archivos de éste tutorial (abajo).

De todos modos se puede descargar el software de Extending Flash y su información original (en inglés) en su sitio web: http://www.extendingflash.com

¿Cómo funciona esto?

//Podemos poner éste código en un frame de la presentación para que se ejecute 
//automático o en cierto evento de botón.

fscommand("EXEC","aplicacion.bat");

Todas estas aplicaciones necesitan ser ejecutadas con parámetros, si no se especifica ninguno, fallarán de modo silencioso, sin acontecer nada...

¿Cómo Mover cualquier ventana que tenga cierto “keyword” al fondo en el “orden z”?

Para esto vamos a usar la aplicación BOTTOM. En el evento de un botón ponemos lo siguiente:

on(release) {
	fscommand("EXEC","bottom.bat");
}

Entramos en el directorio “fscommand” y, si no lo tenemos hecho, creamos con el Bloc de Notas un archivo llamado “bottom.bat”, que tiene que tener la siguiente línea:

start bottom.exe Flash

start bottom.exe : Hace que se reproduzca el archivo.

Flash : Ésta palabra es la que se usa como pattern o guía para saber cual es la ventana/s a la que se le va a aplicar la acción anterior.

Por defecto, las presentaciones que hagamos con Flash, van a tener como título: Macromedia Flash Player 8.0 . Por lo que al encontrar la palabra Flash, entre otras, en el título, ya va a ser suficiente para que se apliquen las opciones de estado de ventana.

En lo personal, yo nunca dejo éste título, sino que lo cambio por un título más apropiado para mi presentación con RES HACK (Resource Hacker).

Recordar entonces, si hacen esto también, de cambiar Flash por una palabra correspondiente al nuevo título.

Por ejemplo yo usé de título la frase “Las Canciones de Daniel”. Y mi archivo .BAT quedó así:

start bottom.exe Canciones

Como resultado la/s ventana/s que tengan la “palabra clave” van a quedar en el fondo del eje z.

El Tutorial de Quitando "Acerca de Macromedia..." de los proyectores de Flash publicado por Cristalab tiene una buena referencia del uso de RES HACK.

¿Cómo Mover cualquier ventana que tenga cierto “keyword” al frente en el “orden z” y anclarlo?

Para esto vamos a usar la aplicación TOPMOST. En el evento de un botón ponemos lo siguiente:

on(release) {
	fscommand("EXEC","topmost.bat");
}

Y en el archivo .BAT la siguiente línea:

start topmost.exe Flash

Recordar que Flash es la palabra clave de la ventana que queremos afectar.

¿Cómo centrar en la pantalla una ventana de Flash?

Para esto vamos a usar la aplicación CENTER. En el evento de un botón ponemos lo siguiente:

on(release) {
	fscommand("EXEC","center.bat");
}

Y en el archivo .BAT la siguiente línea:

start center.exe Flash

Recordar que Flash es la palabra clave de la ventana que queremos afectar.

¿Cómo cambiar el estado de una ventana a maximizado, minimizado o normal?

Para esto vamos a usar la aplicación WINSTATE. En el evento de un frame o en la acción de un botón ponemos lo siguiente:

fscommand("EXEC","winstate.bat");

Y en el archivo .BAT una de las siguientes líneas:

start winstate.exe max Flash(para maximizar la pantalla) start winstate.exe min Flash (para minimizar la pantalla) start winstate.exe show Flash (para restaurar tamaño original de la pantalla)

Recordar que Flash es la palabra clave de la ventana que queremos afectar.

¿Cómo cerrar una ventana que tenga cierto titulo?

Para esto vamos a usar la aplicación KILL. En el evento de un botón ponemos lo siguiente:

on(release) {
	fscommand("EXEC","kill.bat");
}

Y en el archivo .BAT la siguiente línea:

start kill.exe Internet

Recordar que Internet es la palabra clave de la ventana que queremos afectar. Con esto podemos cerrar una ventana de Internet Explorer que hayamos abierto anteriormente, por ejemplo.

¿Cómo invocar acciones Shell (Comandos de DOS) para un archivo específico?

Para esto vamos a usar la aplicación INVOKE. En el evento de un botón ponemos lo siguiente:

on(release) {
	fscommand("EXEC","invoke.bat");
}

Y en el archivo .BAT la siguiente línea (Solo copia el texto en azul, no el negro):

start invoke.exe open file.pdf (Abrirá el archivo PDF que definamos con su visualizador por defecto. Si no hay ninguno instalado o no es compatible, INVOKE fallará sin mostrar resultados)

start invoke.exe print file.txt (enviará el archivo file.txt a la impresora predeterminada usando el programa de archivos .TXT, Block de Notas por defecto)

start invoke.exe open http://www.cristalab.com (es una alternativa al método getURL().)

Para ver que opciones pueden ser llamadas por INVOKE para cada archivo, como por ejemplo: open, explore (para carpetas), print, install o edit. Podés fijarte en el menú de una carpeta en:

Herramientas > Opciones de Carpeta > Tipos de Archivos > Elegir el tipo de archivo que querés ver las opciones > Opciones Avanzadas.

¿Cómo Ejecutar el protector de pantalla actual?

Para esto vamos a usar la aplicación SAVER. En el evento de un botón ponemos lo siguiente:

on(release) {
	fscommand("EXEC","saver.bat");
}

Y en el archivo .BAT la siguiente línea:

start saver.exe

Esto ejecuta el protector de pantalla actual. Esto te provee de una forma de probar tu protector de pantalla.

¿Cómo cambiar el Fondo de Pantalla, Papel Tapiz o WallPaper?

Para esto vamos a usar la aplicación WALLPAPR. En el evento de un botón ponemos lo siguiente:

on(release) {
	fscommand("EXEC","wallpapr.bat");
}

Y en el archivo .BAT la siguiente línea:

start wallpapr.exe (Sin especificar ningún archivo, se borra el fondo de pantalla)

start wallpapr.exe tile c:\\image.bmp (Define image.bmp como fondo de pantalla, con la opción “tile” aparecerá como motivos repetidos)

start wallpapr.exe center c:\\image.bmp (Define image.bmp como fondo de pantalla, con la opción “center” aparecerá centrado)

start wallpapr.exe stretch c:\\image.bmp (Define image.bmp como fondo de pantalla, con la opción “stretch” aparecerá la imagen estirada hasta ocupar toda la pantalla)

¿Cómo eliminar el pestañeo de ventanas de DOS cuando ejecutamos una de éstas aplicaciones?

Al usar las aplicaciones anteriores, habrán de notar, que siempre al ejecutarse un archivo .BAT aparece el “pestañeo” de una ventana de DOS que confirma que se ha ejecutado el comando. Lo cual no siempre luce muy estético…

Para solucionar esto vamos a usar la aplicación RUNHIDE, que permite ejecutar una aplicación en modo “Ghost” u oculto. RUNHIDE va a llamar al archivo .BAT que queramos abrir y no veremos ese “pestañeo”.

Pero nos encontramos con una pequeña complicación: para ejecutar RUNHIDE con sus parámetros, normalmente usaríamos un archivo .BAT, por lo cual sólo agregaríamos un pestañeo y esconderíamos otro, por lo cual, nos quedaría igual.

Para solucionar esto vamos a tener que hacer uso de una pequeña trampa: convertiremos el archivo .BAT a un archivo .EXE.

Para hacer esto pueden usar un convertidor como “Quick Batch File Compiler” que permite convertir los archivos de .BAT a .EXE de forma muy sencilla y con la opción “Ghost” que necesitamos para eliminar el “pestañeo”.

Entonces en Flash el evento de un botón nos queda de ésta forma:

//yo llamé al archivo .BAT con las instrucciones
// para RUNHIDE como runhbatch.exe

on(release) {
	fscommand("EXEC","runhbatch.exe");
}

Y en el archivo .BAT, que luego convertiremos a .EXE la siguiente línea:

start runhide.exe aplicación.bat

Modo "ghost" para eliminar el parpadeo.

Si, tal vez hayas notado que teniendo la posibilidad de convertir los archivos .BAT a .EXE con el modo “ghost” vas a eliminar el parpadeo sin necesidad de RUNHIDE. Es verdad, lo único que tendrías que hacer es llamar directamente desde Flash al nuevo ejecutable compilado.

¿Y por qué nos enloqueceríamos usando una aplicación de por medio para esto? Eso queda a criterio de cada uno, la desventaja de convertir los archivos .BAT en .EXE es la imposibilidad de editarlos una vez convertidos y los archivos .EXE son más pesados que los archivos .BAT (100 o 200 kbytes de más, que a veces no es tanto)

Información adicional

Archivos del tutorial
Si tienes alguna pregunta de este tutorial; puedes hacerla aqui en los foros

Artículos Relacionados