如何从html页面调用exe?

时间:2011-12-18 16:26:37

标签: javascript html exe

我有一个必须从CDROM运行的网络应用程序。

我需要执行一个exe文件,这样做有问题。在IE中如果我从锚中调用href =“file:// path / exefile”我可以执行它(在一对安全请求之后),而在Firefox中用户必须保存exe文件,然后运行它并出现错误。

有没有办法从浏览器运行exe(我不知道,比如使用Flash或其他东西)?

我不使用http://协议,而是使用file://协议,因为它是从CDROM运行的。

2 个答案:

答案 0 :(得分:3)

感谢{$ deity}没有,否则您查看的任何网页都可以在浏览器沙箱之外的机器上执行随机代码。

由于允许网页运行任何可执行文件的严重安全隐含,这是不可能的。

答案 1 :(得分:1)

Internet Code Download linking (AS PER MSDN)

在这个复杂的替代方案中,网页通过利用Internet代码下载绕过了普通的文件下载过程。 Internet Code Download是Internet Explorer的一项功能,它允许Web页面自动下载ActiveX控件和其他本机代码对象。通过Internet Code Download获得的文件通过ActiveX安全框架,该框架可由安全选项控制。 1.如果“可执行文件”不是可签名的PE(.exe),例如.bat文件,则必须将该文件打包在带有以下格式的INF的.cab文件中。 **

[version]
   signature="$CHICAGO$"
   AdvancedINF=2.0
[Add.Code]
   file.zzz=file.zzz
[file.zzz]
   clsid={15589FA1-C456-11CE-BF01-00AA0055595A}
   FileVersion=1,0,0,0
   hook=zzzinstaller
[zzzinstaller]
   run=%EXTRACT_DIR%\file.zzz

**                         将上面的File.zzz实例替换为要运行的可执行文件。

有关如何打包.cab文件的详细信息,请访问下面的Microsoft Developer Network(MSDN)网站: http://msdn.microsoft.com/en-us/library/aa741200(VS.85).aspx(http://msdn.microsoft.com/en-us/library/aa741200(VS.85).aspx)2。确保.exe(或.cab)是代码签名的。如果.exe尚未签名,则可以使用CryptoAPI Authenticode代码签名工具完成此操作。有关详细信息,请参阅“安全性”标题下的MSDN Platform SDK中的CryptoAPI文档。

出于安全原因,为组织签署代码的过程最好由整个组织信任的中央机构处理。代码签名要求从外部供应商(如VeriSign)购买昂贵的证书,或者在Intranet上维护证书服务器(如Microsoft Certificate Server)。 3.使用此示例页面作为启动签名代码所需的链接和脚本的指南,而不提示:

<HTML><HEAD><TITLE>Page of executable links</TITLE></HEAD>
<BODY>
<BR/>

<!-- hyperlink uses central script function called linkit() -->
<A HREF="" onclick="return linkit('signed-testfile.exe');">
SIGNED-CLOCK.EXE</A>

<SCRIPT>
// linkit puts filename into HTML content and spews it into iframe
function linkit(filename)
{
   strpagestart = "<HTML><HEAD></HEAD><BODY><OBJECT CLASSID=" +
      "'CLSID:15589FA1-C456-11CE-BF01-00AA0055595A' CODEBASE='";
   strpageend = "'></OBJECT></BODY></HTML>";
   runnerwin.document.open();
   runnerwin.document.write(strpagestart + filename + strpageend);
   window.status = "Done.";
   return false;  // stop hyperlink and stay on this page
}
</SCRIPT>

<!-- hidden iframe used for inserting html content -->
<IFRAME ID=runnerwin WIDTH=0 HEIGHT=0 SRC="about:blank"></IFRAME><BR/>

</BODY></HTML>

本文讨论的第三方产品由独立于Microsoft的公司生产。对于这些产品的性能或可靠性,Microsoft不作任何暗示或其他形式的保证。