有时候我们想要实现一个功能,就是在HTML页面点击一个链接就能调用打开本地可执行文件。就像腾讯QQ、迅雷这种。

而实现这种功能其实也很简单,就是需要我们添加修改注册表,实现自定义URL Protocol协议。

自定义URL Protocol 协议

一些应用软件可以在浏览器中点击一个url后自动启动,并执行操作。

1.  win+r打开注册表,输入regedit进入注册表

2. 在注册表 左边最上面HKEY_CLASSES_ROOT那个树右键新建——项。该项的名称自己命名,其实该名称也是协议的名称,我们调用的时候就是根据该协议调用的,而我这里随便起了一个:ZZO。

3. 然后在该项中右键->新建->字符串值,创建一个URL Protocol的值,其中数据默认为空。

4. 然后在ZZO下新建->项,名字为DefaultIcon

5. 在ZZO下新建->项,名称为shell。并在shell下新建名为open的项。然后在open下新建名为command的项

6. 然后分别修改DefaultIcon 和 command 的值为要调用的程序完整路径.

比如我这里要调用的是QQ,完整路径为:D:\Program Files (x86)\Tencent\QQ\Bin\QQScLauncher.exe

7. 然后我们在html页面添加一个a标签

open

8. 点击页面按钮

通过网站调用可执行程序,主要是修改注册表,注册 URL Protocol 协议。

注意上面 command 项的值可以为 C:\Program Files (x86)\Qiaoker\updater.exe "%1" ,这个"%1"是传递给 updater.exe的参数。

加了后使用是我们就可以传参数了,

方式二:使用js调起客户端

除了上面那种方式,我们还可以通过调用js函数实现客户端exe程序的调用,但是这种方式局限性很大,目前只支持IE浏览器。

代码如下:

function execProgram() {

var exepath = "D:\\Program Files (x86)\\Tencent\\QQMusic\\QQMusic.exe"

var ws = new ActiveXObject("WScript.Shell");

ws.Exec(exepath);

}

如果想要调用bat脚本或者vbs程序,可以将ActiveXObject 的 Exec()方法替换成Run() 方法。

function execProgram() {

var exepath = "C:\\Users\\LeBron\\Desktop\\新建.vbs"

var ws = new ActiveXObject("WScript.Shell");

ws.Run(exepath);

}

---------------------

作者:lebron3v

来源:CSDN

原文:https://blog.csdn/lebron3v/article/details/80736744

版权声明:本文为博主原创文章,转载请附上博文链接!

打开本地STL文件并创建webgl使用的geometry

需求 打开本地STL文件 一个独立基于webgl的viewer,会被别的网站重用 将打开文件的数据传输给viewer,并且在文件加载的时候显示进度条 解决方案 #1可以使用传统的html5 api来打 ...

js 判断是否可以打开本地软件

js判断时候可以打开本地的软件或者插件 点击一个按钮,打开本地的软件,比如问题反馈,需要调起本地的邮箱,填入一些信息. 这个功能标签有提供支持,但是如果本地没有安装邮箱,则无法打开, ...

JS 通过注册表调用启动本地软件

(关键点:所有软件安装的注册表路径是不会变化的,这个注册表路径需沟通软件商家获取或者通过自己安装在注册表中查找得到) // 调用 注册表编辑类 方法 function run_jxpgj(){//进项 ...

【原】使用SQLite打开本地*.db文件

1.下载安装文件:官网下载地址:http://www.sqlite/download.html32位安装包:http://www.sqlite/2016/sqlite-tools-wi ...

【WPF】 打开本地的文件或者文件夹

问题描述: 我做的程序中需要添加帮助文档,我将文档生成了CHM格式,在用户点击帮助按钮时候 弹出帮助文档. 实现方法: System.Diagnostics.Process.Start(AppDoma ...

谷歌浏览器不能打开本地HTML文件

打开浏览器右上角菜单——>更多工具——>扩展程序——>将Axure RP Extension For Chrome 0.62.crx文件拖入——>成功后,勾选相关选项 文件的下 ...

MyWebViewDemo【封装Webview常用配置和选择文件、打开相机、录音、打开本地相册的用法】

版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 封装webview的常用配置和选择文件.打开相机.录音.打开本地相册的用法.[如果想要使用简单的预览功能,可以参考

Electron 调用系统Office软件

通过打开本地空白文件的方式从而打开Office办公软件 const shell = require('electron').shell; const path = require('path'); s ...

python解析本地HTML文件

Python使用爬虫技术时,每运行一次,本地都会访问一次主机.为避免完成程序前调试时多次访问主机增加主机负荷,我们可以在编写程序前将网页源代码存在本地,调试时访问本地文件即可.现在我来分享一下爬取资料 ...

随机推荐

.NET 框架(转自wiki)

.NET Framework (pronounced dot net) is a software framework developed by Microsoft that runs primari ...

WinFrom 只启动一个exe,并且获得焦点

只启动一个exe方法: using System; using System.Collections.Generic; using System.Runtime.InteropServices; us ...

调用API函数,在窗口非客户区绘图(通过GetWindowDC获得整个窗口的DC,就可以随意作画了)

http://hi.baidu/3582077/item/77d3c1ff60f9fa5ec9f33754 调用API函数,在窗口非客户区绘图 GDI+的Graphics类里有个FromHdc ...

web前端 学习线路

1. 前言 大约在几个月之前,让我看完了这本书的时候,突然有了一个想法.想把整个web前端开发所需要的知识都之中在一个视图中,形成一个完整的web前端知识体系,目的 ...

nginx变量(日志log_format)

nginx变量(日志log_format) HTTP请求变量 - arg_PARAMETER.http_HEADER.sent_http_HEADER 它是指http请求中的变量,举例: curl访问 ...

Vue - v-for 的延伸用法

1.v-for 合并标签template 一起使用 2.vue.set 1.v-for 合并标签template 一起使用 之前在设计table的时候,如果使用v-for ,会直接放在tr里面,一次产 ...

web工程was部署

web.xml调整: 新增如下servlet SimpleFileServlet &l ...

hive 的理解

什么是Hive 转自: https://blog.csdn/qingqing7/article/details/79102691 1.Hive简介 Hive 是建立在 Hadoop 上的数据仓 ...

浏览器的自动翻译会影响 JS 逻辑

有人在 QQ 群里反馈,官方注册后跳转时出现 Bug. 收到群友非常有用的资讯,这是因为浏览器的自动翻译功能引起的. 11:04:21[潜水]Better Command 2017/12/30 11: ...

更多推荐

html调用本地电脑应用,实现HTML调用打开本地软件文件