从 Javascript 运行 .exe

IT技术 javascript internet-explorer
2021-02-05 16:14:26

我正在尝试从 Javascript 运行 .exe 文件。这就是我所拥有的:

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

如果我只有前 2 行代码,它似乎工作正常(当我第一次在 IE 中打开它时它问我是否需要 activeX)但是如果我添加最后一行(ShellExecute),似乎有一个错误。我想将参数传递给 exe。

有谁知道怎么做?

1个回答

您需要转义反斜杠,例如,

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

您可以将其保存为带有扩展名的文件,.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>
仍然对我不起作用:( ....虽然它不重要 - 我从使用本机 Javascript module的 GWT 项目中调用这个 .exe ......有没有办法知道错误?(如果我删除最后一行网页打开很好......如果我保留该行,但它在该行之前运行良好,然后在浏览器中显示一个空白页面)
2021-03-14 16:14:26
另外:@Jason 的链接建议使用 %20 来转义空格并使用以下格式:file:///C:/Program%20Files/...etc - 也许这有一些变化?
2021-03-29 16:14:26
@Red Filter :-我在发帖之前已经试过了......虽然没有帮助
2021-04-07 16:14:26
让我们明确一点,我从命令行运行它,使用 cscript.exe 执行文件名 test.js。不要期望能够从嵌入了此 Javascript 的网页启动应用程序。那是违反安全限制的。我猜从技术上讲我使用的是 JScript,而不是 Javascript。
2021-04-09 16:14:26
有解决办法吗?一切都在本地完成(作为我机器上的原型......我没有公开托管它......我只是希望 .exe 在 UI 中发生特定事件时运行......
2021-04-12 16:14:26