第一次遇到这个问题是比较蒙的,后来查找资料后逐渐有了思路:

  1. IE 浏览器可以使用 ActiveX控件,但会有风险(我并未去验证)。
  2. 使用URL ,通过将URL协议添加到注册表的方法(我打算采用这种方法)。

那么,在使用第二种方法会面临以下问题,至少我是这样的:

  • 如何将URL协议注册到注册表?
  • 如何去查找第三方应用程序在注册表中注册的,我们能够在浏览器中调用并打开该应用程序的url协议?
  • 在无法打开第三方应用程序(用户本地未安装),如何去检验这个?这个问题我没有解决掉,我在后面给出了一篇文章,可以参考下

1. 什么是注册表

注册表是微软windows 中的一个重要的数据库,用于存储系统和应用程序的设置信息。所以,我们在更改信息表信息的时候,windows 会提醒你的操作。对于,我们现在需要解决的问题来说,注册表的知识浅尝辄止即可。

2. 如何将URL协议注册到注册表

微软的官方文档解释:https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/platform-apis/aa767914(v=vs.85)

从网上的博客来看,有两种方法来实现:

  1. 写 reg 文件,然后点击执行(脚本)

    Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\myprotocol]
    @="myprotocol Protocol"
    "URL Protocol"=""[HKEY_CLASSES_ROOT\myprotocol\DefaultIcon]
    @="F:\\CloudMusic\\CloudMusic\\cloudmusic.exe"[HKEY_CLASSES_ROOT\myprotocol\shell]
    @=""[HKEY_CLASSES_ROOT\myprotocol\shell\open]
    @=""[HKEY_CLASSES_ROOT\myprotocol\shell\open\command]
    @="\"F:\\CloudMusic\\CloudMusic\\cloudmusic.exe\" "
    

    拷贝以上内容,修改你想打开的本地应用程序的.exe文件的绝对路径,存入后缀为.reg的文件中,双击执行即可。(注意 \ 和 " 这些特殊字符

    以下是html 测试文件内容:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head><body><div><a href="myprotocol://">执行可执行文件</a></div></body>
    </html>
    

    我已在 google浏览器 75.0.3770.80(正式版本)和 IE 中测试通过,成功打开本地的网易云应用程序

  2. 通过win+r ,输入regedit 打开注册表(图形界面操作)

    参考这篇博客(html启动本地.exe文件),重复的内容,请允许我偷点懒

聪明的你肯定发现第一种和第二种结果都是一样的。

3. 如何去查找第三方应用程序在注册表中注册的url协议信息

这个问题的提出是因为我们不可能操作到客户的电脑,通过上面介绍的方法将url协议注册到客户电脑上的注册表中,所以,常用的软件是不是已经提供这些注册信息了呢?这方面的文档查找,简直是无从下手;那看来只能取巧了,既然,你向注册表插入信息,那么我反向过来直接从注册表中查找吧。

通过win+r ,输入regedit 打开注册表,ctrl + F 进行查找,可以按URL Protocol (可以勾选上项和值)、DefaultIcon (可以勾选上项)、shell等进行搜索,如果搜索到的内容具有和我们自己所创建的url协议一样的层级结构(最主要的是你能从值中发现应用程序的.exe绝对路径), 那么就可以使用第二步的 html 文件测试了。

搜索特定的应用程序:

拷贝应用程序的.exe文件的绝对路径,复制到查找框,勾选上数据,注意不要勾上全字匹配

4. 在无法打开第三方应用程序(用户本地未安装),如何去检验这个

因为在我们所编写的 js 代码中就只有一个链接,即使我们能够确定我们的url是正确的,可客户端有可能没有安装,那么我们可能面临的需求是提醒客户端去安装,或者直接跳转到应用程序的下载地址。

我找到一篇关于这个问题讨论很激烈的网址,看来前辈们也是浴血奋战啊;(https://q.cnblogs.com/q/74423/)

很抱歉,这个问题我也解决不了,如果真的需要的话,可以尝试下上面文章中所提到的方式。

参考博文


在网页中执行本地exe程序的两种方式

浏览器调用本地应用程序相关推荐

  1. AppEmit v0.9.5 新功能 浏览器调用本地应用程序 支持打开 编辑 金山 wps office, excel ppt

    AppEmit v0.9.5 新功能 浏览器调用本地应用程序 支持打开 编辑 金山 office   更多主页   下载地址   ​​​​​​​ 能在以及几乎所有支持websock浏览器,包括chro ...

  2. 【方法】HTML网页调用本地Python程序

    欢迎支持个人chatgpt:https://chat.immuseai.com/register?promotion-code=pRE9p9DXCOBz3Z1s.注册即可使用GPT3.5和4.0. 代 ...

  3. 网页Web上调用本地应用程序(.exe)

     一.web调用本地应用程序的思路 这个方法主要思路是利用自定义URL Protocol来调用应用程序.浏览器在解析到自定义URL Protocol之后,会寻找注册表,然后通过注册表启动相应的程序 ...

  4. 通过浏览器调用本地应用

    公司要求开发出浏览器一键调用本地应用(CRT,XFTP,XSHELL)并登录功能 1.本地应用调用思路 开发的web是否支持IE 1.1.IE ActiveX 通过调用控件js文件中编辑代码如下: & ...

  5. JS中调用本地Winform程序并传递参数

    场景 JS中调用本地exe程序: JS中调用本地exe程序_BADAO_LIUMANG_QIZHI的博客-CSDN博客 在上面的基础上怎样在js中调用本地winform程序并且传递参数. 注: 博客: ...

  6. Web页面调用本地客户端程序并传参

    好久没跟新博客了,今天跟新2019年的第一篇博客,最近在做项目,需求就是Web页面调用本地客户端程序并传参,传参是为了避免客户端再次输入账号密码,直接跳过登录. 翻了不少资料,总的来说好像都要操作注册 ...

  7. java web调用exe文件_从网页WEB上调用本地应用程序(java)

    自己写了个java的桌面程序,想通过web页面调用直接打开登录页面,传账号和密码两个参数. 在网上看了很多资料,大多处理方法是自定义个协议然后通过协议来打开本地exe文件,但是这样传的参数怎么解析? ...

  8. 【Web前端】---js调用本地应用程序

    最近进入了一个项目组,向大牛们一起学习如何搞开发,可谓是边开发边学习.就在前两天,我们的项目被领导们验收了一次,顺便给我们提了点新的需求,要求我们能够使用外在设备拍照上传.君要臣死,臣不能不死.更何况 ...

  9. PHP 网页调用本地exe程序实例

    一.需求:在做网站的时候,有些网站网页面需要调用本地的exe程序. 二.方法:利用注册URL Protocol的方式. 代码如下: 1.视图文件里面的代码: <a href="fyex ...

最新文章

  1. Linux平台-×××
  2. Microsoft Dynamics CRM 2011 多客户端安装共用同一Sql Server 实例设置
  3. oracle12c em 空白,Oracle12C 开启关闭em
  4. 论述类文本知识框架_考前知识梳理与答题技巧之论述类文本
  5. STM32 之十四 System Memory、Bootloader
  6. 三维家可以导入别人的方案吗_广州深圳天津形位公差检测三维缺陷检测服务
  7. 七台河计算机网络工程专业,网络工程本科专业介绍
  8. 爱奇艺CEO龚宇呼吁网络电影涨价:6块钱太低了
  9. 如何实现LBS轨迹回放功能?含多平台实现代码
  10. Excel指定单元格锁定
  11. amd支持服务器内存,AMD专用内存为什么只能在AMD平台使用?与普通内存有什么区别?...
  12. python虚拟变量回归_虚拟变量提升多元线性回归模型精度(附Python代码与数据)...
  13. Android逆向之分析某锁机恶意软件
  14. win10网络诊断为DNS服务器未响应,Win10系统下电脑无法连接网络诊断提示DNS服务器未响应解决方法...
  15. 刻意练习这本书。。。。。。。
  16. adb查看手机设备型号、品牌、机型等信息
  17. 什么是抽象类,什么情况下会用到抽象类?
  18. vi颜色显示设置(centos7)
  19. 没有免费午餐定理(No Free Lunch Theorem)
  20. 微信小程序 实现实时语音识别 腾讯云

热门文章

  1. Docsify使用指南,使用Typora+Docsify打造最强、最轻量级的个人团队文档,及免费和开源且低成本文档工具
  2. 小白入门炒股票关键词解释及细节注意事项
  3. 话题情感混合模型(JST)
  4. 怎么通过网络看不见我的计算机,网上邻居看不到自己和别人电脑怎么办
  5. html5仿mac商城css,html5+javascript+css商城(模拟联想)购物系统
  6. “50份简历没获得面试”也正常
  7. 购买老域名,利用桔子seo来查找域名的历史快照信息
  8. 金蝶KIS商贸版开发往来对账单明细表[无辅助属性批号]
  9. 【问题解决】Error:(3, 46) java: 程序包org.springframework.context.annotation不存在
  10. 【NIO与Netty】Netty进阶