【问题标题】:HTML: How to Execute setup.exe Process from HTML Web PageHTML:如何从 HTML 网页执行 setup.exe 进程
【发布时间】:2019-12-06 15:16:44
【问题描述】:

我在网络驱动器上有一堆应用程序,我想让用户通过单击按钮来执行这些应用程序。我已经研究了该主题,但在尝试构建网页时出现错误。我的老板让我通过网页而不是网络应用程序来做。如果不将其作为 ASP Web 应用程序,甚至不确定它是否可行。

代码:

<!DOCTYPE html>
<html>
<body>
<h1>Test App</h1>
<input id="clickMe" type="button" value="clickme" onclick="RunFile();" />
<script type="text/javascript" language="javascript">

    function RunFile() {
    WshShell = new ActiveXObject("WScript.Shell");
    WshShell.Run("c:/windows/system32/notepad.exe", 1, false);
    }
</script>
</body>
</html>

到目前为止,这是我的文件夹中的内容:

我在测试 IE 时遇到错误。我认为这段代码只能在 IE 中使用。我在这里某处读到,您只能使用 IE 执行此操作。我想通过 chrome 来做,但我不能或有权从 chrome 运行 exe。无论如何这里是错误:

SCRIPT429: Automation server can't create object

我想我丢失了一些文件或其他东西以使其正常工作。老实说,我更喜欢将其构建为 Web 应用程序,但我必须先将其构建为 html 网页,直到我的老板批准。

【问题讨论】:

  • 出于安全原因,没有“真正的浏览器”会让您执行程序,无论它是在客户端还是服务器端。你想在客户端上运行程序吗?用户应先下载并自行执行,无法自动执行。你想在服务器上运行程序吗?您应该使用服务器端语言开发您的项目,并注意这会带来的安全风险。
  • 它是一个内部网页。它只需要从内部路径执行一个exe。不知道这是多么有趣或被认为是一个“笑话”。将简单的桌面应用程序转换为基于 Web 的应用程序或作为网页请求。从我读过的内容来看,使用 IE 可以做到这一点。 IE 不是我选择的浏览器,但由于它是基于 Windows 的 EXE,它应该可以工作。

标签: javascript html internet-explorer activex


【解决方案1】:

出于安全原因,您无法从浏览器窗口运行应用程序。要执行文件,您需要使用 .HTA 应用程序(这是一个 HTML 应用程序)。 HTA 应用程序像普通应用程序一样在浏览器窗口之外运行,并具有完全信任支持。

示例代码:

<html>
<head>
    <title>Application Executer</title>
    <HTA:APPLICATION ID="oMyApp" 

        APPLICATIONNAME="Application Executer" 

        BORDER="no"

        CAPTION="no"

        SHOWINTASKBAR="yes"

        SINGLEINSTANCE="yes"

        SYSMENU="yes"

        SCROLL="no"

        WINDOWSTATE="normal">
    <script type="text/javascript" language="javascript">
        function RunFile() {
        WshShell = new ActiveXObject("WScript.Shell");
        WshShell.Run("c:/windows/system32/notepad.exe", 1, false);
        }
    </script>
</head>
<body>
    <input type="button" value="Run Notepad" onclick="RunFile();"/>
</body>
</html>

输出:

参考:

How to execute a Local File using HTML Application?

【讨论】:

  • 仍然得到同样的错误 IE: SCRIPT429: Automation server can't create object
  • Chrome: html app test.html:23 Uncaught ReferenceError: ActiveXObject is not defined at RunFile (html app test.html:23) at HTMLInputElement.onclick (html app test.html:29)跨度>
  • Firefox:未声明 HTML 文档的字符编码。如果文档包含 US-ASCII 范围之外的字符,则文档将在某些浏览器配置中呈现乱码。页面的字符编码必须在文档或传输协议中声明。 html 应用程序 test.html
  • FireFox: ReferenceError: ActiveXObject is not defined
  • 这段代码只能在IE浏览器中运行。转到 Internet 选项 -> 安全选项卡 -> 本地 Intranet -> 自定义级别并启用“初始化和脚本未标记为可安全执行脚本的 ActiveX 控件”选项。应用设置并再次尝试运行代码。参考:appuals.com/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-29
  • 2017-05-24
  • 1970-01-01
相关资源
最近更新 更多