2010-06-30 27 views
13

Estoy intentando ejecutar un archivo .exe desde Javascript. Esto es lo que tengo:Ejecutando .exe desde Javascript

var oShell = new ActiveXObject ("Shell.Application");
var commandtoRun = "C: \ Documents and Settings \ User \ Desktop \ ABCD.exe"; oShell.ShellExecute (commandtoRun, "", "", "open", "1");

Si tengo sólo el primer código de 2 líneas parece que funciona muy bien (que me preguntó qué quiero ActiveX cuando la abrí por primera vez en IE), pero si añado la última línea (ShellExecute) no parece ser un error Quiero pasar argumentos al exe.

¿Alguien sabe cómo hacerlo?

+1

Un poco de búsqueda encontrado este - http://www.dotnetspider.com/resources/19547-Run-exe-file-Java -Script.aspx – JasCav

+1

¿Estás creando un virus o qué? :) –

Respuesta

14

tiene que escapar las barras invertidas, por ejemplo,

var commandtoRun = "C:\\Documents and Settings\\User\Desktop\\ABCD.exe"; 

Actualización:

Esto funciona bien en mi máquina:

var oShell = new ActiveXObject("Shell.Application"); 
var commandtoRun = "C:\\Windows\\notepad.exe"; 
oShell.ShellExecute(commandtoRun,"","","open","1"); 

Actualización 2

Puedes sa ve esto como un archivo con la extensión .hta y debería funcionar en su navegador:

<HTA:APPLICATION ID="oMyApp" 
APPLICATIONNAME="Application Executer" 
BORDER="no" 
CAPTION="no" 
SHOWINTASKBAR="yes" 
SINGLEINSTANCE="yes" 
SYSMENU="yes" 
SCROLL="no" 
WINDOWSTATE="normal"> 

<script type="text/javascript" language="javascript"> 
var oShell = new ActiveXObject("Shell.Application"); 
var commandtoRun = "C:\\Windows\\notepad.exe"; 
oShell.ShellExecute(commandtoRun,"","","open","1"); 
</script> 
+0

También: el enlace de @ Jason sugiere usar% 20 para escaparse de los espacios y usar el formato: file: /// C: /Program%20Files/...etc - ¿quizás sea alguna variación sobre eso? –

+0

@Red Filter: -Ya lo intenté antes de publicar ... no ayuda aunque – Manish

+0

Ver mi uppdate. – RedFilter