jueves, 14 de abril de 2011

Abrir ejecutables (*.exe) desde javascript

Seguimos jugando con el mismo proyecto del artículo pasado, por lo que nuestro único amigo es javascript. En el caso de hoy, la idea es poder levantar un ejecutable (un archivo +.exe) desde el PC del usuario tras realizar ciertas acciones dentro de la WA (recuerden que WA es la WebApp).

Al igual que la funcionalidad de acceder a una base de dato usando ADODB, hoy utilizaremos otro ActiveX (nuevamente estamos limitados a que el usuario use IE), pero ésta vez será para poder realizar acciones del tipo shell ó comandos de consola.

Muchos se podrán preguntar, ¿y para que chucha quiere levantar éste tipo un *.exe si puede hacer todo en la WA?; Bueno, la respuesta es muy simple... En el *.exe ya tengo todas las instrucciones necesarias para comunicarme con un cliente vía DDE; y me hes más rápido levantar el *.exe que hacer todo de 0, donde igual será necesario utilizar un ActiveX y hasta donde se, es mucho más limitado de lo que requiero. Pero bueno, vamos a por "Abrir ejecutables desde javascript".
Lo primero es crear (me gusta ser ordenado) un archivo que contendrá las instrucciones relacionadas a la apertura del ejecutable:

[superEjecutable.js]

function openCalc()
{
       var shell = new ActiveXObject("Wscript.shell");
       shell.run("c:\\Windows\\System32\\calc.exe");
}

//De la misma forma, podemos abrir una aplicación pasandole parámetros para su ejecución (obviamente la aplicación de destino debe permitirlos -DAAAH!), ya sean datos, elementos de posición, etc, etc, etc.

function openWithParameters()
{
       var shell = new ActiveXObject("Wscript.shell");
       var inputParams = "M|1111111|03|1234567|";
       shell.run("c:\\Windows\\System32\\TheCoolestProgramEver.exe " + inputParams);

}

[superEjecutable.js]

Y luego ya sea desde otro script o como la acción de alguno de los elementos de la página llamamos a nuestra función.

[elEjecutable.aspx]
...
<div>
<input type="button" id="Button1" class="botonGenerico" value="Abre calculadora"  onclick="openCalc();" />

</div>

<div>
<input type="button" id="Button2" class="botonGenerico" value="Abre exe con parámetros"  onclick="openWithParameters();" />

</div>

...
[elEjecutable.aspx]

Otra cosa fácil de hacer y de mucha utilidad cuando nuestras manos se encuentran atadas a una tecnología.

Ojalá les sirva y nos leemos!

SaludoZ RDUMAND

2 comentarios:

  1. SOLO FUNCIONA EN EL COCHINO IE FUERA DE ESO HACE UNA ADVENTENCIA DE SEGURIDAD...

    ResponderEliminar
  2. Hola estaría más completo si explicas como hacerlo con todos los navegadores y en Mac

    ResponderEliminar