分享

【重要】HTML页面中使用VBS和JS脚本直接运行Windows可执行程序

 nxhujiee 2019-11-06

在html中使用<a>标签可以将可执行文件下载到本地,如下面这段代码是一个html页面代码,在页面中有一个链接,点击该链接可以下载路径为“HelloWorldProgram.exe”的程序到指定位置,然后在指定位置打开:

<html>
<head>
    <title>测试页面</title>
</head>
<body>
    <a href="HelloWorldProgram.exe">打开文件</a>
</body>
</html>

但是,我想要找一个办法,在html中直接打开一个exe文件,查了一些资料,经过几次实验后,终于成功了!下面是我的方法:

一、做一个exe文件

我用C#写了一个exe文件,这是一个Windows窗体应用程序,该程序的功能为打开后弹出一个上面写有“Hello World!”的MessageBox。

这个程序的制作方法为:

1)文件菜单→新建→项目,选择“Windows窗体应用程序”,起名为“HelloWorldProgram”

2)进入到Program.cs中,在Main函数里,删除或注释掉原来的代码,并添加:MessageBox.Show("Hello World!");

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace HelloWorldProgram
{
    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            MessageBox.Show("Hello World!");

            //Application.EnableVisualStyles();
            //Application.SetCompatibleTextRenderingDefault(false);
            //Application.Run(new Form1());
        }
    }
}

3)编译并运行该程序,HelloWorldProgram.exe

二、制作html文件

将上面编译好的exe文件,放到目录“D:\HtmlTest”中,并在这个目录里添加一个文件“index.html”

在index.html中,我分别使用了vbscript和javascript两种语言,实现了两个按钮,这两个按钮的功能都是打开与index.html在同一目录下的可执行文件HelloWorldProgram.exe

<html>
<head>
    <title>测试页面</title>
    <script type="text/vbscript">
       
        '给出文件确定它所在的目录地址
        Function GetFolder(FilePath)
            Temp = StrReverse(FilePath)
            Temp = Mid(Temp, InStr(1, Temp, "/")) 
            GetFolder = StrReverse(Temp)
        End Function
           
        'IndexPath为index.html地址
        'FilePath为要打开的应用程序距index.html所在目录的相对地址
        '本函数最终目标为运行可执行程序FilePath
        Function ExecProgram(IndexPath, FilePath)   
            CreateObject("WScript.Shell").Run GetFolder(IndexPath) & FilePath 
        End Function

    </script>
    <script type="text/javascript">
       
        //IndexPath为index.html地址
        //FilePath为要打开的应用程序距index.html所在目录的相对地址
        //本函数最终目标为运行可执行程序FilePath
        function ExecProgram(IndexPath, FilePath)
        {   
            var FolderPath = IndexPath.substr(0, IndexPath.lastIndexOf('/') + 1);
            var Shell = new ActiveXObject('WScript.Shell');     
            if(Shell) 
                Shell.Run(FolderPath + FilePath);
        }     

    </script>
</head>
<body>
    <p>运行程序 HelloWorldProgram.exe</p>
    <table>
        <tr>
            <td>Javascript</td>
            <td>
            <input type="button" value="点击运行" onclick=
              "javascript: ExecProgram(window.location.href, 'HelloWorldProgram.exe')">
            </td>
        </tr>
        <tr>
            <td>VBScript</td>
            <td>
            <input type="button" value="点击运行" onclick=
              "vbscript: ExecProgram window.location.href, 'HelloWorldProgram.exe' ">
            </td>
        </tr>
    </table>
</body>
</html>

下面,我使用IE、Firefox和Chrome三种浏览器检验了这个方法的可用性。

三、IE测试

我的IE版本:8.0.7601.17514

IE运行可执行文件是三个浏览器中最简单的!步骤如下:

1)用Internet Explorer打开index.html,需要先允许运行ActiveX控件,点击“允许组织的内容”

2)这时会弹出安全警告,点击“是”

3)点击按钮运行脚本时,还会弹出下面这个窗口,点击“是”运行程序

4)程序运行结果

四、Firefox测试

我的Firefox版本:36.0.4

如果直接用Firefox打开上面的index.html,会发现点击按钮后浏览器根本没有反应。原因就是Firefox要安装一个插件“IE Tab”才能实现上面的功能,方法如下:

1)找到右侧菜单中的“附加组件”

2)搜索并安装插件:IE Tab2 (FF 3.6+) 5.12.12.1,安装完毕后重启Firefox

3)设置该插件的网址过滤规则,在安装的插件列表中找到插件“IE Tab”,并点击“选项”链接进入到该插件的设置界面。将我们上面的页面index.html地址,添加到使用IE Tab浏览的页面中

4)现在再用Firefox打开index.html,按下按钮就会有效果了。如果遇到安全警告,和上面IE的例子一样,点击“是”。

五、Chrome测试

我的Chrome版本:41.0.2272.101 m

Chrome也需要安装IE Tab才能可以实现点击按钮后运行EXE文件,实现方式如下:

1)在地址栏中输入“chrome://extensions/”,进入扩展程序管理界面

2)将从网上下载的“IE Tab”插件安装包(版本:7.7.24.1,crx文件)拖入该界面

3)Chrome会询问是否要新增扩展程序,点击“添加”按钮

4)安装完毕后,点击该插件下的“选项”

5)在“Auto URLs”栏目下,将要上面的index.html地址键入

6)用Chrome打开index.html,这个时候会下载“ietabhelper”,下载下来安装后,就可以用Chrome打开index.html,并通过点击按钮执行上面的可执行文件了

7)按下按钮,遇到安全警告,点击“是”即可,可以看到“Hello World!”程序已经成功运行!

六、得出结论

使用Html页面直接,通过调用VBScript或JavaScript可以直接运行可执行程序。在IE中,经过手动对警告信息进行确认后就可以运行了,在Firefox和Chrome中,还需要安装“IE Tab”插件后才可以运行。

END

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多