在我当前的项目中,我想使用JavaScript使用按钮点击事件运行.bat或.exe文件。批处理文件的内容如下所示:
start "S:\" TemperatureSensor.exe
单击TemperatureSensor按钮时启动TemperatureSensor.exe文件。 HTML页面的代码如下所示:
<!DOCTYPE html>
<html>
<body>
<p>Click the button to make a BUTTON element with text.</p>
<button onclick="window.open('file:///S:/Test.bat')">Temperature Sensor</button>
</body>
</html>
当我点击温度传感器按钮时,它应该运行Test.bat文件,但它只显示在新页面中:
我错过了吗?是否可以使用按钮单击事件运行.exe文件?
更新 HTML页面的代码如下所示:
<!DOCTYPE html>
<html>
<body>
<p>Click the button to make a BUTTON element with text.</p>
<button onclick="myFunction()">Temperature Sensor</button>
<script>
function myFunction() {
var oShell = new ActiveXObject("Shell.Application");
var commandtoRun = "C:\\TemperatureSensor.exe";
if (inputparms != "") {
var commandParms = document.Form1.filename.value;
}
// Invoke the execute method.
oShell.ShellExecute(commandtoRun, commandParms, "", "open", "1");
}
</script>
</body>
</html>
当我点击温度传感器按钮时,它会显示错误:未捕获的ReferenceError:未定义ActiveXObject 。
答案 0 :(得分:11)
只需将此代码保存为 RunExe.hta ,而不是 RunExe.html ,然后双击执行在它!
<html>
<head>
<title>Run Exe or Bat files from HTA by Hackoo</title>
<HTA:APPLICATION
APPLICATIONNAME="Run Exe or Bat files from HTA by Hackoo"
ID="MyHTMLapplication"
VERSION="1.0"/>
</head>
<script>
function RunExe(){
var shell = new ActiveXObject("WScript.Shell");
var path = '"S:/Test.bat"';
shell.run(path,1,false);
}
</script>
<input style="width: 170px; height:23px; color: white; background-color: #203040;
font-family:Book Antiqua;" type="button" Value="Temperature Sensor" onClick="RunExe();"
</html>
答案 1 :(得分:1)
如果您使用的是Firefox,则可以使用此addon打开批处理文件或exe文件。
由于安全限制,默认情况下,exe和批处理文件无法在浏览器中打开。
在插件的更高版本中,将有exe文件的启用首选项,默认情况下将禁用这些文件。
但目前您可以创建<a href="file://c:/test.bat">test</a>
之类的链接,然后点击启动该文件。