Windows exe launch from html

O como romperse la cabeza con cosas que supuestamente no pueden hacerse.

Problema 1
El tema es que tengo que lanzar varios exes (demos creadas con Robodemo de Macromedia) desde un documento html que a su vez se lanza desde un autorun de un cd, de forma transparente, es decir, sin que el usuario tenga que pulsar el botón Abrir al lanzarse una descarga de fichero exe potencialmente peligroso. Después de mucho buscar escépticamente he acabado en Whirly Wiry Web, empresa que ha desarrollado una dll freeware que permite lo anteriormente citado, e incluso abrir los mencionados exe (o cualquier tipo de documento en su aplicación asociada) desde páginas web.

Claro que no todo el monte es orégano, antes de poder usarla, hay que meter un par de retoques en el registro del usuario, aunque esto ha supuesto menos problemas gracias al inefable regedit. Tras introducir en el registro las modificaciones necesarias he exportado un fichero .reg…

launchinIE.reg

REGEDIT4

[HKEY_LOCAL_MACHINESOFTWARERockinFewlLaunchinIEApproved]
“url1″=”file:///”

he copiado el launchinIE.dll en la carpeta root del cd… y he generado un .bat que registra dicha dll en el sistema:

abrame.bat

cls
echo off
regedit /s launchinIE.reg
regsvr32.exe launchinIE.dll /s
cls
start index.html
exit

Todo ello combinado con un simple autorun.inf…

[AUTORUN]
ICON=ec.ico
open=abrame.bat

…han conformado una de las soluciones más sucias, puercas y eficientes de mi existencia. El proceso viene siendo tal que…

  • El usuario introduce el cd
  • El autorun.inf se encarga de abrir automáticamente el abrame.bat (el nombre no es al azar, espero que si el usuario ha desactivado la ejecución automática de cds, al menos vea ese abrame.bat y le dé por pulsar en él)
  • El abrame.bat registra la dll en nuestro sistema e introduce su configuración en el registro de windows, permitiendo abrirse a los ficheros que provengan de file:/// (local)
  • El mismo bat lanza el index.html, a partir de donde sale todo el contenido del cd demo que hemos preparado.

Problema 2
Una vez abierto este html hemos de pasarle a la dll la ruta de los ficheros exe, hay que tener el cuenta que si bien conocemos su localización en el cd, no sabemos la letra del cd… solucionado con un par de funciones en javascript:

function launchAppAbsolute(strCmdLine)

{

var obj = new ActiveXObject(”LaunchinIE.Launch”);

obj.LaunchApplication(strCmdLine);

}

function launchAppRelative(strCmdLine)

{

var obj = new ActiveXObject(”LaunchinIE.Launch”);

temp=location.href.indexOf(”:”,5);

drive=location.href.substring(temp+1,temp-1);

obj.LaunchApplication(drive + “//” + strCmdLine);

}

Ya podemos lanzarlos de forma absoluta y relativa… y efectivamente todo funciona sin problemas.

Claro que…

Problema 3

Algunas partes del html del cd muestran flash… que pasa si nuestro usuario no dispone del plugin de flash ?

Una mirada rápida al código html standard que descarga por nosotros el plugin nos permite ver que le facilita al navegador una url y un fichero .cab de instalación de windows…

codebase=”http://download.macromedia.com/pub/shockwave/cabs/
flash/swflash.cab#version=6,0,0,0″

Ha sido tan simple como descargar el fichero cab, colocarlo en la root del cd, y cambiar el código a algo un poco más… “local”

codebase=”./swflash.cab#version=6,0,0,0″

En el desarrollo de este cd he usado…

  • 1 alta dosis de “Da lo mismo, asi funciona siempre”
  • Internet Explorer como contenedor de la demo
  • Macromedia Flash para el menú inicial
  • launchinIE.dll para la interacción navegador-ejecutables
  • Javascript para cambiar el tamaño del flash y lanzar la dll
  • Regedit para editar el registro y poder pasar los valores a la dll
  • Modificaciones al código de descarga de los plugins de Flash
  • 1 cajetilla de Chesterfield americano
  • +/- 1 litro de café negro

Moralejas

Al menos durante un rato he recordado porqué me gusta mi trabajo.
Espero que a alguien le sirva de algo la launchinIE.dll

Términos relacionados:

Un comentario a esta entrada

  • Franklin Pérez Suárez dijo
    el # Martes, 20 de Diciembre del 2005 a las 23:41

    1

    Tu articulo de “Windows exe launch from html ” me parece muy util. Felicitaciones y gracias por tu ayuda.

Deja tu opinión

Sólo se permiten las etiquetas XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Post anteriores/siguientes:

Post (quizás) relacionados:

  • This Windows can break

  • Abre el Notepad de Windows (Inicio - Ejecutar - notepad - Enter) Escribe el texto "this windows can break" (sin comillas) Guarda el archivo con cualquier nombre Cierra...
  • El CD de Windows que no debe faltarte

  • ...
  • Como evitar discusiones tipo: ¿ Es mejor Windows o Linux ?

  • Pregunta: Oye, has visto la nueva release de Windows/Linux/Opera/Firefox ? Respuesta: No, mira, yo es que la serie de Pokemon no la sigo... soy más del estilo Simpsons ...
  • Best discussion end. Ever.

  • Take your ass back to alt.paid.for.windows !!!...
  • Consultas MySQL útiles

  • Las 10 bases de datos más grandes del servidor [mysql] SELECT count(*) TABLES, table_schema,concat(round(sum(table_rows)/1000000,2),'M') rows, concat(round(sum(data_length)/(1024*1024*1024),2),'G') DATA, concat(round(sum(index_length)/(1024*1024*1024),2),'G') idx, concat(round(sum(data_length+index_length)/(1024*1024*1024),2),'G') total_size, round(sum(index_length)/sum(data_length),2) idxfrac FROM information_schema.TABLES GROUP BY table_schema ORDER BY sum(data_length+index_length) DESC LIMIT 10; [/mysql] Número total de...