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

在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

220412_q6Xh_1425762.png

二、制作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控件,点击“允许组织的内容”

222301_y1OB_1425762.png

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

222725_ZLc7_1425762.png

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

223912_IaJ7_1425762.png

4)程序运行结果

224208_CTcK_1425762.png

四、Firefox测试

我的Firefox版本:36.0.4

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

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

225557_fIvK_1425762.png

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

230122_d1BV_1425762.png

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

230307_8GGh_1425762.png

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

230503_Gsrq_1425762.png

五、Chrome测试

我的Chrome版本:41.0.2272.101 m

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

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

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

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

231117_oGS4_1425762.png

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

231353_inxh_1425762.png

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

231432_i4Hu_1425762.png

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

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

231841_Dztp_1425762.png

六、得出结论

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

END

转载于:https://my.oschina.net/Tsybius2014/blog/390188

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值