浏览器调用本地应用程序
第一次遇到这个问题是比较蒙的,后来查找资料后逐渐有了思路:
- IE 浏览器可以使用 ActiveX控件,但会有风险(我并未去验证)。
- 使用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)
从网上的博客来看,有两种方法来实现:
写 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 中测试通过,成功打开本地的网易云应用程序
通过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程序的两种方式
浏览器调用本地应用程序相关推荐
- AppEmit v0.9.5 新功能 浏览器调用本地应用程序 支持打开 编辑 金山 wps office, excel ppt
AppEmit v0.9.5 新功能 浏览器调用本地应用程序 支持打开 编辑 金山 office 更多主页 下载地址 能在以及几乎所有支持websock浏览器,包括chro ...
- 【方法】HTML网页调用本地Python程序
欢迎支持个人chatgpt:https://chat.immuseai.com/register?promotion-code=pRE9p9DXCOBz3Z1s.注册即可使用GPT3.5和4.0. 代 ...
- 网页Web上调用本地应用程序(.exe)
一.web调用本地应用程序的思路 这个方法主要思路是利用自定义URL Protocol来调用应用程序.浏览器在解析到自定义URL Protocol之后,会寻找注册表,然后通过注册表启动相应的程序 ...
- 通过浏览器调用本地应用
公司要求开发出浏览器一键调用本地应用(CRT,XFTP,XSHELL)并登录功能 1.本地应用调用思路 开发的web是否支持IE 1.1.IE ActiveX 通过调用控件js文件中编辑代码如下: & ...
- JS中调用本地Winform程序并传递参数
场景 JS中调用本地exe程序: JS中调用本地exe程序_BADAO_LIUMANG_QIZHI的博客-CSDN博客 在上面的基础上怎样在js中调用本地winform程序并且传递参数. 注: 博客: ...
- Web页面调用本地客户端程序并传参
好久没跟新博客了,今天跟新2019年的第一篇博客,最近在做项目,需求就是Web页面调用本地客户端程序并传参,传参是为了避免客户端再次输入账号密码,直接跳过登录. 翻了不少资料,总的来说好像都要操作注册 ...
- java web调用exe文件_从网页WEB上调用本地应用程序(java)
自己写了个java的桌面程序,想通过web页面调用直接打开登录页面,传账号和密码两个参数. 在网上看了很多资料,大多处理方法是自定义个协议然后通过协议来打开本地exe文件,但是这样传的参数怎么解析? ...
- 【Web前端】---js调用本地应用程序
最近进入了一个项目组,向大牛们一起学习如何搞开发,可谓是边开发边学习.就在前两天,我们的项目被领导们验收了一次,顺便给我们提了点新的需求,要求我们能够使用外在设备拍照上传.君要臣死,臣不能不死.更何况 ...
- PHP 网页调用本地exe程序实例
一.需求:在做网站的时候,有些网站网页面需要调用本地的exe程序. 二.方法:利用注册URL Protocol的方式. 代码如下: 1.视图文件里面的代码: <a href="fyex ...
最新文章
- Linux平台-×××
- Microsoft Dynamics CRM 2011 多客户端安装共用同一Sql Server 实例设置
- oracle12c em 空白,Oracle12C 开启关闭em
- 论述类文本知识框架_考前知识梳理与答题技巧之论述类文本
- STM32 之十四 System Memory、Bootloader
- 三维家可以导入别人的方案吗_广州深圳天津形位公差检测三维缺陷检测服务
- 七台河计算机网络工程专业,网络工程本科专业介绍
- 爱奇艺CEO龚宇呼吁网络电影涨价:6块钱太低了
- 如何实现LBS轨迹回放功能?含多平台实现代码
- Excel指定单元格锁定
- amd支持服务器内存,AMD专用内存为什么只能在AMD平台使用?与普通内存有什么区别?...
- python虚拟变量回归_虚拟变量提升多元线性回归模型精度(附Python代码与数据)...
- Android逆向之分析某锁机恶意软件
- win10网络诊断为DNS服务器未响应,Win10系统下电脑无法连接网络诊断提示DNS服务器未响应解决方法...
- 刻意练习这本书。。。。。。。
- adb查看手机设备型号、品牌、机型等信息
- 什么是抽象类,什么情况下会用到抽象类?
- vi颜色显示设置(centos7)
- 没有免费午餐定理(No Free Lunch Theorem)
- 微信小程序 实现实时语音识别 腾讯云
热门文章
- Docsify使用指南,使用Typora+Docsify打造最强、最轻量级的个人团队文档,及免费和开源且低成本文档工具
- 小白入门炒股票关键词解释及细节注意事项
- 话题情感混合模型(JST)
- 怎么通过网络看不见我的计算机,网上邻居看不到自己和别人电脑怎么办
- html5仿mac商城css,html5+javascript+css商城(模拟联想)购物系统
- “50份简历没获得面试”也正常
- 购买老域名,利用桔子seo来查找域名的历史快照信息
- 金蝶KIS商贸版开发往来对账单明细表[无辅助属性批号]
- 【问题解决】Error:(3, 46) java: 程序包org.springframework.context.annotation不存在
- 【NIO与Netty】Netty进阶