如何在客户端运行批处理文件?一个exe文件?只是为了在客户端打开预装程序?
[编辑]
关于 ActiveX,我试过了
var activeXObj = new ActiveXObject("Shell.Application");
activeXObj.ShellExecute("C:\\WINDOWS\\NOTEPAD.EXE", "", "", "open", "1");
但这不起作用。有什么建议?
如何在客户端运行批处理文件?一个exe文件?只是为了在客户端打开预装程序?
[编辑]
关于 ActiveX,我试过了
var activeXObj = new ActiveXObject("Shell.Application");
activeXObj.ShellExecute("C:\\WINDOWS\\NOTEPAD.EXE", "", "", "open", "1");
但这不起作用。有什么建议?
来自 Javascript?你不能。这是一个安全风险。想一想 - 您是否希望每个网站都能够在您的 PC 上运行程序?
您的意思是使用 JavaScript 通过浏览器窗口启动外部程序?你怎么可能这样做!这该死的安全黑洞!
<script language="javascript" type="text/javascript">
function RunEXE(prog) {
var oShell = new ActiveXObject("WScript.Shell");
oShell.Run('"' + prog + '"', 1);
}
</script>
如果您真的可以控制客户端,那么您可能需要在客户端安装一些远程守护程序服务,例如 SSH。
附注。但是,通过您的“服务器代码”调用它。
更新:
不要气馁。你绝对可以安全地做到这一点。
首先,您需要在客户端上有一个守护程序服务来处理调用您的应用程序的任务。就个人而言,我宁愿使用 C++ 或 Delphi 将简单的 rpc-server 构建为 windows-service;但许多其他类型的服务器也可以完成这项工作(SSH、Apache、Telnet)
然后制作一个网页,允许用户通过适当的身份验证“注册”他们的服务以调用该服务(密码、安全密钥)
当您想从已经注册的客户端上的网页调用您的应用程序时,请对您的服务器进行 ajax 调用(xmlhttprequest)。
服务器应使用注册信息验证请求的 IP 地址。
然后使用注册信息向客户端进行远程命令调用。
在某些网络情况下,此方案可能不起作用。但是,如果您真的可以控制执行环境,那么总会有一些解决方法。
将客户端重定向到http://yourserver/batchfile.bat。在某些浏览器下,这会提示用户运行批处理文件。