【发布时间】:2012-06-07 17:48:49
【问题描述】:
我正在尝试运行 shell 命令以从 JavaScript 打开记事本。这就是我的代码的样子:
<script type="text/javascript">
function runNotepad() {
var oShell = new ActiveXObject("Shell.Application");
var commandtoRun = "C:\\WINDOWS\\Notepad.exe";
oShell.ShellExecute(commandtoRun, null, "", "open", "1");
}
</script>
当我尝试运行它时,它会抛出一个错误,提示 Microsoft JScript runtime error: Permission denied。
我也在IE 中设置了Allow active content to run in files on my computer,但仍然没有运气。
知道我在这里缺少什么吗?
【问题讨论】:
-
很好奇,预期的目的是什么?知道这一点可能会帮助读者提出合适的替代方案,除非您一心想要使用记事本。例如,也许您将拥有一项功能,为用户提供文本输入功能,该功能将保存到例如数据库中,然后作为可下载的 txt 文件提供给用户。
-
好吧,记事本只是一个例子。我的实际要求是我从浏览器启动了一个处理付款信息的 Windows 应用程序。
-
在我看来这不容易做到,但是您可以通过提供一个可下载的批处理文件来伪造它,该批处理文件在运行时可以打开应用程序。老实说,似乎比它的价值更麻烦。另一种选择是注册应用程序协议,就像打开 .pdf 文件通常会打开 acrobat 一样。更多关于协议的阅读:Registering an Application to a URL Protocol
标签: javascript asp.net internet-explorer internet-explorer-8 shellexecute