js通过游览器启动本地的绿色软件

需求:开发一个页面,页面的导航栏需要启动本地下载好的绿色软件

问题1: 如何调用本地软件?

答:这个很简单只需要调用window.location.href = "应用名称://"即可,有同学就会问了这个应用名称是什么?应用名称为应用安装时在注册表里面注册的名称,以微信为例,看下图:

启动本地的微信,调用window.location.href = "weixin://"就可以了,也可直接在游览器地址栏输入weixin://进行调用

问题2:绿色软件无需进行安装,注册表里面没有对应注册的名称,怎么办?

答:从上一个问题中,我们可以看出来,本地的软件的调用,是游览器通过注册表中的名称进行调用的。所以最简单的方式就是在注册表中添加一个对应应用的名称和地址。可考虑到我们这边是可以调用多个绿色软件的,并减少客户使用的难度,我给他自定义了一个操作程序,看下图:

js 复制代码
Windows Registry Editor Version 5.00
 
[HKEY_CLASSES_ROOT\NSRTool]
@="NSRTool Protocol"
"URL Protocol"= ""
 
[HKEY_CLASSES_ROOT\NSRTool\DefaultIcon]
@="E:\\arptools-smg_R2.03_20240530_prj\\bin\\NSRTools.exe"

[HKEY_CLASSES_ROOT\NSRTool\shell\open\command]
@="E:\\arptools-smg_R2.03_20240530_prj\\bin\\NSRTools.exe"

[HKEY_CLASSES_ROOT\NARIConfiguration]
@="NARIConfiguration Protocol"
"URL Protocol"= ""
 
[HKEY_CLASSES_ROOT\NARIConfiguration\DefaultIcon]
@="E:\\NARIConfigTool_V1.47\\NARI Configuration Tool.exe"
 
[HKEY_CLASSES_ROOT\NARIConfiguration\shell\open\command]
@="\"E:\\NARIConfigTool_V1.47\\NARI Configuration Tool.exe\""

建一个后缀为reg的文件,按照要求输入以上内容,多个应用则依次追加。 保存成功后,双击运行即可。也可去注册表中查看相应应用名称是否注册成功。

OK,以上就是绿色软件正常的调用。大家是不是觉得就没有问题了,可我这边还发现了一个很头疼的问题,希望大家没有遇到,看问题3

问题3:游览器调用的软件,出现中文乱码,怎么办?

答:刚开始我们都以为是软件的兼容问题,然后下载了最新版本的,还是不行。然后找各种资料,有的说是电脑的编码问题,有的说游览器编码问题,我就不具体说了,网上都有。反正我都试了都不行,而且操作流程比较复杂,不符合客户需求。后来我发现通过应用程序打开和cmd进行打开都没有问题,我就想能不能通过cmd来进行应用程序的调用,然后我就将调用cmd启动程序代码放到了注册表里面了,解决方式如下:

js 复制代码
Windows Registry Editor Version 5.00
 
[HKEY_CLASSES_ROOT\NSRTool]
@="NSRTool Protocol"
"URL Protocol"= ""
 
[HKEY_CLASSES_ROOT\NSRTool\DefaultIcon]
@="E:\\arptools-smg_R2.03_20240530_prj\\bin\\NSRTools.exe"

[HKEY_CLASSES_ROOT\NSRTool\shell\open\command]
@="cmd /c \"cd /d E:\\arptools-smg_R2.03_20240530_prj\\bin\\ && start \"\" NSRTools.exe\""

OK,以上就是我本地调用绿色软件的遇到的一些问题。大家可以参考以下

相关推荐
Danny_FD几秒前
Canvas的应用与实践
前端·javascript
_请输入用户名3 分钟前
husky 切换 simlple-git-hook 失效解决方法
前端
前端九哥3 分钟前
🚀Vue 3 hooks 每次使用都是新建一个实例?一文彻底搞懂!🎉
前端·vue.js
盏灯3 分钟前
尤雨溪搞响应式为什么要从 Object.defineProperty 换成 Proxy❓
前端·vue.js
爱上大树的小猪3 分钟前
【前端样式】使用CSS Grid打造完美响应式卡片布局:auto-fill与minmax深度指南
前端·css·面试
代码小学僧4 分钟前
🤗 赛博佛祖 Cloudflare 初体验托管自定义域名与无限邮箱注册
前端·serverless·云计算
晴殇i4 分钟前
一行代码解决深拷贝问题,JavaScript新特性解析
前端
天天扭码15 分钟前
零基础入门 | 超详细讲解 | 小白也能看懂的爬虫程序——爬取微博热搜榜
前端·爬虫·cursor
小兔崽子去哪了31 分钟前
微信小程序入门
前端·vue.js·微信小程序
独立开阀者_FwtCoder34 分钟前
# 白嫖千刀亲测可行——200刀拿下 Cursor、V0、Bolt和Perplexity 等等 1 年会员
前端·javascript·面试