javascript调用客户端程序,js的调用方式有哪三种

2023-12-05

本篇文章给大家谈谈javascript调用函数的方法有哪些,以及javascript调用客户端程序,希望对各位有所帮助,不要忘了收藏本站喔。

web项目中要调第三方客户端,于是归纳整理了js调用客户端exe程序的几种方法,如下:

方法一 :  使用ActiveXObject直接执行指定路径的.exe文件 ,此方法只针对IE浏览器


<html> 
<head> 
< language="java"> 
function Run(strPath){ 
 try {
   var objShell = new ActiveXObject("w.shell"); 
   if(!objShell){
       alert('Could not get reference to WScript.Shell');
       return;
   }
     objShell.exec(strPath); 
     objShell = null; 
   }catch(errorObject){
     alert('Error:
' + errorObject.message);
   }
} 
</> 
</head> 
<body> 请输入要运行的程序路径:<br> 
<input name=exe type=text size=20 value="D:\a.doc"> 
<BUTTON class=button οnclick="Run(exe.value)">确定</BUTTON> 
</body> 
</html>   

方法二:  通过URL Protocol实现调用本地应用程序,任何浏览器都兼容

以下转载自 : Js调用exe程序方法(通过URL Protocol实现网页调用本地应用程序)

1.使用记事本(或其他文本编辑器)创建一个protocal.reg文件,并写入以下内容

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOTWebshell]
@="URL:Webshell Protocol Handler"
"URL Protocol"=""
[HKEY_CLASSES_ROOTWebshellDefaultIcon]
@="C:\Program Files (x86)\Tencent\WeChat\WeChat.exe"
[HKEY_CLASSES_ROOTWebshellshell]
[HKEY_CLASSES_ROOTWebshellshellopen]
[HKEY_CLASSES_ROOTWebshellshellopencommand]
@=""C:\Program Files (x86)\Tencent\WeChat\WeChat.exe" "%1""  
2.修改参数

使用记事本打开文件后,按照下图说明修改相关参数

2.1修改连接名称

修改红框内名称自定义即可,全部使用英文字符(该名称即为调用时的href),共六处

2.2修改可执行文件路径

修改红框内可执行文件路径,共两处

需注意:文件路径中使用//分割

3.执行protocal.reg文件
4.创建调用连接

连接地址为 步骤1中所命名的链接名称,后面加://hello,(hello为传递参数,可任意添加)


C#写注册表

public static void CreateRegedit(string strkey,string value)
        {
            try
            {
                RegistryKey RegKey = Registry.ClassesRoot;
                RegistryKey regkey =
                  RegKey.OpenSubKey(strkey, true);
                if (regkey == null)
                    regkey = RegKey.CreateSubKey(strkey);

                regkey.SetValue("", "URL openOffice Handler");
                regkey.SetValue("URL Protocol", "程序名称");

                RegistryKey regkeyDefaultIcon =
                 regkey.OpenSubKey("DefaultIcon", true);
                if (regkeyDefaultIcon == null)
                    regkeyDefaultIcon = regkey.CreateSubKey("DefaultIcon");

                regkeyDefaultIcon.SetValue("", Application.StartupPath + "\\程序名称.exe");

                RegistryKey regkeyShell =
               regkey.OpenSubKey("shell", true);
                if (regkeyShell == null)
                    regkeyShell = regkey.CreateSubKey("shell");
                RegistryKey regkeyopen =
             regkeyShell.OpenSubKey("open", true);
                if (regkeyopen == null)
                    regkeyopen = regkeyShell.CreateSubKey("open");

                RegistryKey regkeycommand =
            regkeyopen.OpenSubKey("command", true);
                if (regkeycommand == null)
                    regkeycommand = regkeyopen.CreateSubKey("command");
                regkeycommand.SetValue("", Application.StartupPath + "\\程序名称.exe %1");
                RegKey.Close();
                RegistryKey RegUserKey = Registry.CurrentUser;
                RegistryKey regUserkey =
                RegUserKey.OpenSubKey(strkey, true);
                if (regUserkey == null)
                    regUserkey = RegUserKey.CreateSubKey(strkey);
                RegistryKey reguserkeyDefaultIcon =
                   regUserkey.OpenSubKey("DefaultIcon", true);
                if (reguserkeyDefaultIcon == null)
                    reguserkeyDefaultIcon = regUserkey.CreateSubKey("DefaultIcon");
                reguserkeyDefaultIcon.SetValue("", Application.StartupPath + "\\程序名称.exe");
                RegUserKey.Close();
            }
            catch (Exception ex)
            {
                LogManager.WriteError("CreateRegedit", ex.StackTrace);
            }          
        }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

javascript调用客户端程序,js的调用方式有哪三种 的相关文章

  • 使用idea如何快速的搭建ssm的开发环境

    文章目录 唠嗑部分 言归正传 1 打开idea 点击新建项目 2 填写信息 3 找到pom xml先添加springboot父依赖
  • netty源码:(3) ThreadPerTaskExecutor

    这个类封装了一个ThreadFactory 同时提供了一个execute方法 用来把Runnable提交给ThreadFactory来执行
  • Jmeter接口自动化测试 —— Jmeter变量的使用

    专注于分享软件测试干货内容 欢迎点赞 收藏 留言 如有错误敬请指正 交流讨论 欢迎加入我们一起学习 资源分享 耗时200 小时精选的 软件测试 资料包 最困难的时候 也就是我们离成功不远的时候 在使用jmeter进行接口测试时 我们难免会遇
  • C#与Java的不同

    https www cnblogs com Yan3399 p 17324904 html 1 C 对应java中关键字 base super this this sealed final 1 base关键字 对应java super C
  • 英伟达狂卖50万台GPU!AI爆火背后,是显卡的争夺

    据市场跟踪公司Omdia的统计分析 英伟达在第三季度大约卖出了50万台H100和A100 GPU 此前 Omdia通过英伟达第二季度的销售额 估计其大概卖出了900吨GPU 大语言模型火爆的背后 英伟达建立起了强大的显卡帝国 在人工智能的大
  • 搭建 ebpf 开发测试环境

    0 内容说明 这部分主要讲述了如何通过官网学习ebpf 以及如何搭建自己的ebpf开发测试环境 主要是需要安装哪些工具链 1 ebpf在线学习 ebpf官网中提供了一个快速在线学习ebpf的路径 在这个学习平台中一共有两项学习内容 一个是学
  • Perplexity发布两款LLM模型:pplx-7b-online和pplx-70b-online 可利用实时互联网数据查询

    Perplexity AI 一家创新的人工智能初创公司 近日推出了一项能够改变信息检索系统的解决方案 该公司推出了两款新的大语言模型 LLMs 分别是 pplx 7b online 和 pplx 70b online 标志着首次通过API公
  • 求最大公约数,和最小公倍数的规则

    求最大公约数 和最小公倍数的规则 最大公约数 Greatest Common Divisor 简称GCD 是指两个或多个整数共有约数中最大的一个 例如 12和18的最大公约数是6 因为12和18同时都能被6整除 求最大公约数的规则包括 辗转
  • js操作excel常用方法,js制作表格代码

    这篇文章主要介绍了js操作excel常用方法 具有一定借鉴价值 需要的朋友可以参考下 希望大家阅读完这篇文章后大有收获 下面让小编带着大家一起了解一下 本文基于react项目实现 起因 接了一个需求 要求实现点击页面上的一个按钮 复制某个表
  • Mongodb与MySQL的异同,使用场景,优缺点。。。

    Mongodb与MySQL的使用场景有什么不同 列出详细异同及各自的优缺点 两者对内在的要求如何 MongoDB与MySQL是两种不同类型的数据库管理系统 它们在使用场景 优缺点和内在要求上有很大的不同 使用场景的不同 MongoDB适合用
  • 如何查重复值【详细说明】

    大家好 今天来聊聊如何查重复值 希望能给大家提供一点参考 以下是针对论文重复率高的情况 提供一些修改建议和技巧 如何查重复值 在数据处理和分析过程中 查重复值是一个常见的问题 小发猫写作 重复值会使得数据冗余 影响数据的准确性和可信度 为了
  • 自定义软件app定制开发的需求和趋势|企业网站小程序搭建

    自定义软件app定制开发的需求和趋势 企业网站小程序搭建 随着智能手机的普及和移动互联网的快速发展 移动应用程序 App 成为人们日常生活和工作中必不可少的一部分 然而 市面上已有的应用程序并不能完全满足用户的个性化需求 于是越来越多的人开
  • Linux下设置定时任务常用的三种方法

    在 Linux 系统中 设置定时任务是一项常见且重要的操作 它有助于自动化执行各种任务 如系统维护 备份和日志审计 Linux 提供了多种工具来安排这些自动化任务 其中最常用的三种方法是 Cron At 和 Systemd Timers 1
  • javascript中文文档下载,javascript中文文档

    大家好 小编来为大家解答以下问题 professional javascript for web developers javascript中文文档下载 现在让我们一起来看看吧 HTML 编辑器推荐 可以使用专业的 HTML 编辑器来编辑

随机推荐

  • 浅谈安科瑞网络电力仪表在斯里兰卡某项目的应用

    摘要 安科瑞APM系列网络仪表适用于高低压柜 进线以及出线处的全电量测量及监测 Absrtact APM series of network power meter are suitable for full power measureme
  • 一文2000字从0到1手把手教你jmeter分布式压测

    专注于分享软件测试干货内容 欢迎点赞 收藏 留言 如有错误敬请指正 交流讨论 欢迎加入我们一起学习 资源分享 耗时200 小时精选的 软件测试 资料包 最困难的时候 也就是我们离成功不远的时候 一 jmeter为什么要做分布式压测 jmet
  • 消费数据可视化大屏,助力金融机构智慧运维

    在今天的数字化时代 消费数据的可视化已经成为了一种重要的趋势 通过将消费数据以图表 图像等形式展现出来 可以帮助我们更直观地了解消费者的行为和趋势 同时 这也为企业提供了更多的分析和决策依据 无论是针对市场营销策略的制定 还是产品设计的优化
  • js中声明函数的三种方式,javascript声明变量的语句

    大家好 给大家分享一下javascript中函数如何声明及其作用 很多人还不知道这一点 下面详细解释一下 现在让我们来看看 类的声明以及使用 声明 先声明 再访问 函数声明会提升 类声明不会 类关键字 class YourName 类的主体
  • .NET 7(C#)配置使用log4net日志框架的方法

    NET 7 C 中配置和使用 log4net 日志框架是一个涉及多步骤的过程 log4net 是一个高度灵活且强大的日志记录库 可用于记录应用程序的运行时信息 它支持各种日志输出格式和目的地 如文件 数据库 控制台等 以下是在 NET 7
  • 浅谈安科瑞ASJ继电器在马尔代夫环岛水上排屋的应用

    摘要 对电气线路进行接地故障保护 方式接地故障电流引起的设备和电气火灾事故越来越成为日常所需 针对用户侧主要的用能节点 设计安装剩余电流继电器 实时监控各用能回路的剩余电流状态 通过实时监控用能以及相关电力参数 提高用能安全 可靠及维护效率
  • 计算机网络扫盲(4)——时延

    一 概述 在这里 我们考虑分组交换网的情况 因特网可以被看成是一种基础设施 该基础设施为运行在端系统上的分布式应用提供服务 在理想情况下 我们希望因特网服务能够在任意两个端系统之间随心所欲地移动数据而没有任何数据地丢失 然而 这是一个极高的
  • windows系统配置别名

    习惯了linux下的别名管理机制 而windows下却没有类似的功能 我看有些博客介绍说windows下配置别名还得修改注册表 太麻烦了 个人认为 windows的这一套 终究会被抛弃 我自己摸索出一条比较便利的方式 1 创建一个名为ali
  • CSS实现小球边界碰撞回弹

    如何通过CSS实现一个物体在屏幕中无限的边界碰撞回弹呢 我们可以使用动画效果实现 代码 我们只做一个小球 通过定位属性叠加动画的方式 让小球在屏幕中进行运动 通过设置animation的alternate属性来设置回弹 最后 只需要设置两个
  • 改了论文查重率依然很高怎么办【保姆教程】

    大家好 今天来聊聊改了论文查重率依然很高怎么办 希望能给大家提供一点参考 以下是针对论文重复率高的情况 提供一些修改建议和技巧 改了论文查重率依然很高怎么办 在学术领域 论文查重是保证学术诚信和论文质量的重要环节 伪原创 然而 有些同学在修
  • 维普论文查重一般得多长时间【详细说明】

    大家好 今天来聊聊维普论文查重一般得多长时间 希望能给大家提供一点参考 以下是针对论文重复率高的情况 提供一些修改建议和技巧 维普论文查重一般得多长时间 背景介绍 对于广大毕业生来说 论文查重是非常重要的一环 维普网作为国内三大论文查重网站
  • js的引入方式有哪几种,js的三种引入方式

    本篇文章给大家谈谈js引入方式有几种 分别是什么 以及js的引入方式有哪几种 希望对各位有所帮助 不要忘了收藏本站喔 一 JavaScript诞生于1995年由Netscape公司开发 JavaScript是一种解释性语言 也是一种基于对象
  • 数字法院大脑管理|助力实现司法数字化

    数字法院是现代社会数字化和信息化的产物 它的出现标志着法律领域的创新和进步 数字法院以数字技术为核心 借助互联网 大数据 人工智能等新兴技术 实现了案件流程的数字化和智能化 通过数字法院 人们可以在线提交诉讼材料 自助查询案件进展 参与庭审
  • 计算机网络扫盲(3)——网络核心

    一 概述 在之前的文章中 我们已经介绍了计算机网络的边缘 本文我们将继续介绍网络核心部分 即由互联因特网系统的分组交换机和链路构成的网状网络 二 分组交换 在各种网络应用中 端系统彼此交换 报文 message 报文能够包含协议设计者需要的
  • 论文查重越改越多怎么办【一文读懂】

    大家好 今天来聊聊论文查重越改越多怎么办 希望能给大家提供一点参考 以下是针对论文重复率高的情况 提供一些修改建议和技巧 论文查重越改越多怎么办 在论文写作过程中 我们经常遇到论文查重率过高的问题 小发猫写作 有时候 我们会发现 越是修改论
  • ySql.Data.Types.MySqlConversionException: Unable to convert MySQL date/time value to System.DateTime

    public DateTime Createtime MySql Data Types MySqlConversionException Unable to convert MySQL date time value to System D
  • 5.6K Star,多种开发环境的管理利器,从此告别混乱与冲突!

    今天要给大家推荐一个 GitHub 开源项目 jetpack io devbox 该项目在 GitHub 有超过 4 8k Star 用一句话介绍该项目就是 Instant easy and predictable development
  • C语言,求取数组的序亏:已知一个整数数组,求出个数组中每个元素在整个 数组的排序。

    要求获取整数数组中每个元素的排序 可以使用以下方法 1 定义一个结构体数组 其中每个结构体包含数组元素的值和索引 2 遍历整数数组 将每个元素与其索引一起存储到结构体数组中 3 对结构体数组进行排序 按照元素的值进行升序排序 4 遍历排序后
  • 知网间接引用标注算重复率吗【详细教程】

    大家好 今天来聊聊知网间接引用标注算重复率吗 希望能给大家提供一点参考 以下是针对论文重复率高的情况 提供一些修改建议和技巧 知网间接引用标注算重复率吗 在学术研究和论文写作中 我们经常需要引用他人的研究成果和观点 快码论文 然而 对于间接
  • javascript调用客户端程序,js的调用方式有哪三种

    本篇文章给大家谈谈javascript调用函数的方法有哪些 以及javascript调用客户端程序 希望对各位有所帮助 不要忘了收藏本站喔 web项目中要调第三方客户端 于是归纳整理了js调用客户端exe程序的几种方法 如下 方法一 使用A