【问题标题】:Open an exe file through a link in a HTML file?通过 HTML 文件中的链接打开 exe 文件?
【发布时间】:2010-11-17 18:56:03
【问题描述】:

我想通过 HTML 文件中的链接打开一个 exe 文件。

有可能吗?如果有,怎么做?

【问题讨论】:

    标签: html


    【解决方案1】:

    出于安全原因,这是不可能的,最好保持这种状态。

    以下代码有效,但仅适用于程序所在的机器:

    <a href = "c:\Myfolder\Myprogram.exe">
    

    【讨论】:

      【解决方案2】:

      在本地计算机上,您可以轻松完成, 因此,您只需创建自己的自定义协议,例如 Skype 或 iTunes 用来启动其原生 Windows 应用程序的协议: - 必须在 Windows 注册表上创建自定义协议,方法是在此处添加一个条目:

      Windows Registry Editor Version 5.00
      
      [HKEY_CLASSES_ROOT\ACCapp]
      @="URL:ACCapp Protocol"
      "URL Protocol"=""
      
      [HKEY_CLASSES_ROOT\ACCapp\shell]
      
      [HKEY_CLASSES_ROOT\ACCapp\shell\open]
      
      [HKEY_CLASSES_ROOT\ACCapp\shell\open\command]
      @="msaccess.exe"
      

      Blod ACCapp 中的单词是自定义协议的名称,将在您的 html href 链接上使用,如下所示

      &lt;a href="ACCapp://"&gt;PLEASE RUN MS Access exe file&lt;/a&gt;
      除非您添加注册表项,否则此链接不会运行。 注意:永远不要限制你的想象力,只要搜索你就会发现。希望能帮助到你

      【讨论】:

      • 我尝试了这个概念,结果很好,但问题是-我的 .exe 在我启动后自动关闭...我没有得到原因
      【解决方案3】:

      您无法启动/执行驻留在用户计算机本地或通过站点的 .exe 文件。用户必须先下载exe文件,然后运行可执行文件。

      【讨论】:

      • javascript怎么样,我们可以用javascript打开一个exe文件吗?
      • 不,它也不适用于 javascript。从服务器接收的 HTML 和 javascript 不知道用户目录或其文件路径(也无法访问它们)。用户仍然需要下载文件并手动运行。
      【解决方案4】:

      我为此目的创建了一个应用程序。它被称为 WebRun,您可以从www.webrunapps.com 下载它。安装后,您可以创建一个 webrun 链接以在您的 Windows PC 上启动任何可执行文件/文件/命令。 下面是一个运行记事本的例子:

      <a href="webrun:C:\Windows\notepad.exe">Notepad</a>
      

      希望对您有所帮助。

      【讨论】:

      • 这对我帮助很大。但我有一个简单的查询。 webrun 无法在移动设备上运行???如果 webrun for android mobile ?
      【解决方案5】:

      我知道一个很好的答案,Roblox 和 Atom 使用这种技术来运行带有链接的 exe 程序。我从来没有这样做过,所以我无法真正解释如何去做,但我知道怎么做。他们使用 URI 协议。 URI 协议类似于 http、ftp 和 https。我不知道 Roblox 的 uri 协议,但我知道 Atoms,atom 是 atom://。我最近才知道这种技术,所以不太了解。

      但是,用户必须先下载exe文件,而不是一次下载,如果上面设置了uri协议,可以通过链接打开。

      如果您的系统上安装了 atom,这里是一个示例,它将打开我认为是 exe 文件的程序。这只是我偶然发现的一个随机包裹。 atom://settings-view/show-package?package=autocomplete-plus

      Mahfoud Boukert 实际上用一些代码示例稍微解释了这一点。

      【讨论】:

        【解决方案6】:

        你可以这样做

        这是我看到的唯一方式:

        <html>
            <head>
        
                <title>Open exe</title>
        
                <script type="text/javascript">
                function runProgram()
                {
                    var shell = new ActiveXObject("WScript.Shell");                 
                    var appITunes = "\"C:\\Program Files\\iTunes\\iTunes.exe\" ";
                    shell.Run(appITunes);
                }        
                </script>
        
            </head>
        
        
        
            <body>
        
                <a href="javascript:runProgram()">Run program</a>
        
            </body>
        
        </html>
        

        【讨论】:

        • 这仅适用于 IE,不适用于 chrome。由于 ActiveX 对象。
        【解决方案7】:

        您可以编写一个仅在 Internet Explorer 中运行的 Active-X 对象。

        它不是 exe,但它是最接近运行 exe 的。

        【讨论】:

          【解决方案8】:

          在工作中,我是一台 PC(真可惜 - 我是 MAC 狂热分子)和 Firefox。在 Firefox 中为我工作的代码是 &lt;a href = "file:///c:/Myfolder/Myprogram.exe"&gt;

          只有在您右键单击链接并选择在 Ext.App 中打开链接时它才有效。只需单击链接本身就会提示用户保存 .exe 文件然后运行它。

          我无法在 IE 或 Firefox 中使用 &lt;a href = "c:/Myfolder/Myprogram.exe"&gt; 2 工作

          【讨论】:

          【解决方案9】:

          为什么不为此使用 CGI,CGI 实际上是通过服务器上的浏览器运行可执行文件。

          【讨论】:

          • 听起来不错,你能提供一些额外的信息吗,怎么做?谢谢
          【解决方案10】:

          仅提供对该文件夹的访问权限,但不要在 href 中包含 .exe。然后,用户只需单击 .exe 文件即可将其打开。 在这里打开 'targetFolder' 存放您的 .exe 文件的位置。

          【讨论】:

          • 虽然这是一个很好的解决方法,但我不确定它是否能回答问题,因为您没有通过 HTML 中的链接打开它。
          【解决方案11】:

          我知道一个很好的答案,Roblox 和 Atom 使用这种技术来运行带有链接的 exe 程序。

          itch.io 是另一个可以模拟 .exe 文件但不需要您下载的网站。 以 Dani 的 https://danidev.itch.io/triangle-game 为例(我非常喜欢 :D 的一个 youtuber)。我懒得去挖掘文件源,但基本上,这个游戏是用 Unity 创建的。 我不太确定这一点,但我认为要在 .html 网站上加载 .exe 文件,您必须使用 WebGL。 (因为这是我在浏览 Dani 的一个支持将 Unity 程序导出到 HTML5 的视频时发现的唯一选项)

          【讨论】:

          • 这里使用的方法来自Unity引擎本身。它吹捧其为桌面或网络游戏打包的能力。大多数人不会/不应该将 Unity 用于手头的主题,但那些使用 Unity 的人可以轻松地将他们的游戏打包为可在网络上运行。
          猜你喜欢
          • 2015-10-06
          • 1970-01-01
          • 2021-09-12
          • 1970-01-01
          • 1970-01-01
          • 2020-09-26
          • 2012-08-28
          • 1970-01-01
          • 2012-12-24
          相关资源
          最近更新 更多