2010-06-30 136 views
13

我想從Javascript運行一個.exe文件。這是我的:從Javascript運行.exe

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

如果我只有前兩行代碼,它似乎工作正常(它問我,當我第一次在IE中打開它時我想要activeX)但如果我添加最後一行(ShellExecute)似乎是一個錯誤。我想將參數傳遞給exe。

有誰知道該怎麼做?

+1

發現了一個小的搜索這一點 - http://www.dotnetspider.com/resources/19547-Run-exe-file-Java -Script.aspx – JasCav 2010-06-30 19:04:10

+1

你在製作病毒還是什麼? :) – 2016-07-18 09:32:33

回答

14

你需要躲避反斜槓,例如,

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

更新:

此工程在我的機器上的罰款:

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

更新2

你可以sa這已經與擴展.hta一個文件,它應該在你的瀏覽器中工作:

<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

另外:@ Jason的鏈接建議使用%20轉義空格並使用格式:file:/// C:/Program%20Files/...etc - 也許這是一些變化? – 2010-06-30 19:39:10

+0

@紅色過濾器: - 我已經嘗試過發佈前......雖然 – Manish 2010-06-30 19:40:46

+0

看到我的uupdate。 – RedFilter 2010-06-30 19:43:47