测试网页调用本地可执行程序(续:带参数调用)

news2024/10/5 21:14:20

  前篇文章介绍了网页调用本地可执行程序的方式,通过在注册表中注册命令,然后在网页中调用命令启动本地程序。如果需要传递参数,则需要在注册表命令中的command项中设置如下形式的值。

	"XXXXXX\XXXXXXX.exe" "%1"

 &emsp创建测试程序,主要功能是显示传入的参数,同时在注册表中注册名为TestPageCall命令,如下图所示:
在这里插入图片描述在这里插入图片描述
  在网页中设置调用命令,如下所示,调用示例如下所示,其中href属性中,冒号之前是在注册表中注册的名,冒号之后则是需处理的参数信息。

<a href = 'TestPageCall:-a'>启动测试程序</a>

  下图为本地程序接收的参数信息,主要是有两点:1)网页中href属性中的所有内容都传了过来;2)冒号之前的命令全变为小写(最初没注意,后续写测试程序解析命令时才发现的),为了测试是否全部变为了小写,将-a变为了-aAaB,测试发现冒号后面的大小写没有变;3)参数中如果有中文,则传到本地可执行程序中时会重新编码,如将空格变为20%,测试时,将参数变为-aA你好aB,程序接收到的参数内容如下第三张图所示。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  上述结果表明,如果网页调用本地可执行程序时,网页调用命令中附加的参数会和命令共同作为一个整体参数传入本地可执行程序,也即在program的Main函数中仅会收到一个参数,如果需要通过网页传递多个值,则需将多个值按约定的格式拼在一起,在本地可执行程序中再重新解析。
  注册表的HKEY_CLASSES_ROOT下有些命令会增加额外的固定命令,此时固定命令是设置在command项的值中,如下所示的acrobat的命令,传入本地可执行程序中的效果如下图所示,如果需要更多的固定参数,在command项中加入到字符串中即可。

在这里插入图片描述在这里插入图片描述
  最后以调用本地程序显示环境检测数据为例演示调用效果,在注册表中创建TestViewECData,接收的参数中包括两个数字,前一个为分页显示数据条数,后一个为显示第几页内容,中间用逗号分隔。网页中的调用为及在本地解析参数的代码如下所示:

	<a href = 'TestViewECData:50,2'>查看检测数据(每页50条,查看第2页)</a><br />
	<a href = 'TestViewECData:20,10'>查看检测数据(每页20条,查看第10页)</a>
	if(args!=null && args.Length>0)
     {
         string arg0 = args[0];
         if(arg0.StartsWith("testviewecdata:"))
         {
             string[] infos = arg0.Substring("testviewecdata:".Length).Split(',');
             comboLimits.Text = infos[0];                    
             tabControl1.SelectedTab = tabPage3;
            ...
             comboJump2Pages.Text = infos[1];
             ...
         }
     }

  程序运行效果如下图所示:
在这里插入图片描述
在这里插入图片描述

参考文献:
[1]https://blog.csdn.net/gc_2299/article/details/132701231
[2]https://learn.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/platform-apis/aa767914%28v=vs.85%29

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1034890.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据分享】海洋热含量Global Ocean Heat Content CDR】

【数据分享】海洋热含量Global Ocean Heat Content CDR 海洋与大气科学 海洋热含量数据可以不用计算了&#xff0c;直接下载使用&#xff01; 海洋热含量气候数据记录&#xff08;CDR&#xff09;是一组 1955 年至今的海洋热含量异常&#xff08;OHCA&#xff09;时间序列&…

在 android 上使用 adb client

adb tool 分为 adb 和 adbd。 adb 用作 host 使用&#xff0c;包含了client和server&#xff0c;adbd 则作为 device 端&#xff0c;在 android 源码目录下&#xff0c;共用一套源码。但 android 源码下的 adb&#xff0c;不支持把 adb 编译为 android 平台的 adb client。因此…

气传导耳机哪个品牌比较好?推荐几款很不错的气传导耳机

​气传导耳机是一种新型耳机类型&#xff0c;采用不入耳设计&#xff0c;上耳佩戴更加舒适稳固&#xff0c;还可以为你带来更加自然和舒适的听觉体验&#xff0c;同时满足你对周围环境的需求。面对市面上这么多气传导耳机&#xff0c;不知道该如何挑选时&#xff0c;也不用过于…

web二级操作题

js和css的引入 在 HTML 中&#xff0c;你可以使用 <script> 和 <link> 标签来引入外部的 JavaScript 文件和 CSS 文件。 引入外部的 JavaScript 文件&#xff1a; <script src"path/to/script.js"></script>src 属性指定了 JavaScript 文…

【已解决】ubuntu 16.04安装最新版本google chrome出错, 旧版本chrome浏览器安装流程

ubuntu 16.04 按照常规的Chrome 安装流程总是出错如下&#xff1a; Selecting previously unselected package google-chrome-stable. (Reading database ... 231747 files and directories currently installed.) Preparing to unpack google-chrome-stable_current_amd64.de…

阈值化分割,对灰度级图像进行二值化处理(数字图像处理大题复习 P8)

文章目录 画出表格求出灰度直方图 & 山谷画出结果图 画出表格 有几个0就写几&#xff0c;有几个1就写几&#xff0c;如图 求出灰度直方图 & 山谷 跟前面求灰度直方图的方法一样&#xff0c;找出谷底&#xff0c;发现结果为 4 画出结果图 最终的结果就是&#xf…

【Seata】seata的部署和集成

一、部署Seata的tc-server 1.下载 首先我们要下载seata-server包&#xff0c;地址在http://seata.io/zh-cn/blog/download.html 当然&#xff0c;课前资料也准备好了&#xff1a; 2.解压 在非中文目录解压缩这个zip包&#xff0c;其目录结构如下&#xff1a; 3.修改配置 修…

解决ubuntu系统python2.7安装uwsgi报错

背景 因为项目老旧&#xff0c;仍需使用python2.7&#xff0c;仍需要使用pip2 安装依赖。在安装uwsgi的时候&#xff0c;报错。 错误一 Building wheel for uwsgi (setup.py) ... error ERROR: Command errored out with exit status 1: command: /usr/bin/python2 -u -…

IBMMQ 安装教程(IBM WebSphere MQ 安装教程)- 及 IBMMQ 服务器搭建教程

文章目录 前言一、下载二、安装1. 解压&#xff0c;运行 Setup.exe 文件。2. 启动 IBM WebSphere MQ 安装程序。3. 接受用户协议。4. 选择定制安装。5. 更改安装目录。6. 下一步。7. 下一步。8. 下一步。9. 点击安装。10. 等待安装&#xff0c;完成。11. 准备安装 WebSphere MQ…

Day_15 > 内存相关的函数

目录 1.memcpy 1.1memcpy函数的使用 1.2memcpy函数的模拟实现 2.memmove 2.1memcpy存在的局限性 2.2memmove函数的使用 2.3memmove函数的模拟实现 3.memset 3.1memset函数的使用 4.memcmp 4.1memcpy函数的使用 之前我们可能了解过字符串函数&#xff0c;今天我们了解…

如何使用固态硬盘+硬盘盒子+U盘创造移动双系统

本文背景 这学期上了一节鸟水课《大数据实践》&#xff0c;老师要求扩展硬盘盒&#xff0c;以部署大数据工具进行 机器挖掘等大数据领域工作 参考视频链接&#xff1a;无需启动盘&#xff0c;用虚拟机将ubuntu安装到移动硬盘上_哔哩哔哩_bilibili 项目使用设备 1.绿联&#…

C/C++运算符超详细讲解(系统性学习day5)

目录 前言 一、运算符的概念与分类 二、算术运算符 三、关系运算符 四、逻辑运算符 五、赋值运算符 六、运算符的优先级 总结 前言 本篇文章是对运算符的具体讲解。 一、运算符的概念与分类 概念&#xff1a; 运算符就是一种告诉编译器执行特定的数学或逻辑操作的符…

Ubuntu出现无法获取 dpkg 前端锁 (/var/lib/dpkg/lock-frontend),是否有其他进程正占用它?

1、在Ubuntu系统安装sublime是出现以下这个问题&#xff1a; 解决方法&#xff1a; 使用以下命令强制解锁&#xff1a;&#xff08;删除“/var/lib/dpkg”目录下的 “lock-frontend” 和“lock”两个文件&#xff09; sudo rm /var/lib/dpkg/lock-frontend sudo rm /var/lib/…

代码随想录算法训练营第56天|583. 两个字符串的删除操作,72. 编辑距离 (昨天的疑虑今天豁然开朗了)

链接: 583. 两个字符串的删除操作 链接: 72. 编辑距离 583. 两个字符串的删除操作 class Solution {public int minDistance(String word1, String word2) {int len1 word1.length(), len2 word2.length();int[][] dp new int[len1 1][len2 1];for (int i 0; i < le…

Android开发笔记 :理解Fragment

Android开发笔记&#xff1a;理解Fragment 导言 本篇文章产生的原因很简单&#xff0c;就是我在了解Android Jetpack中的Lifecycle框架时发现Lifecycle具体时间和状态的更新都是由一个名为ReportFragment的Fragment来跟踪的&#xff0c;为了更好的了解Fragment是如何追踪Activ…

【软件测试】测试中的风险有哪些?

【软件测试面试突击班】如何逼自己一周刷完软件测试八股文教程&#xff0c;刷完面试就稳了&#xff0c;你也可以当高薪软件测试工程师&#xff08;自动化测试&#xff09; ​那么到底都有哪些风险要注意呢?如何解决呢?另外这些风险如何在计划中写明呢&#xff0c;不会写“张三…

汇编语言课程设计1 代码 优化版

assume cs:codesgstacksg segmentdw 16 dup(0) stacksg endsdatasg segmentdb 1975,1976,1977,1978,1979,1980,1981,1982,1983db 1984,1985,1986,1987,1988,1989,1990,1991,1992db 1993,1994,1995;以上是表示21年的21个字符串dd 16,22,382,1356,2390,8000,16000,24286,50065,97…

基于Java的酒店管理系统设计与实现(源码+lw+部署文档+讲解等)

前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f447;&#x1f3fb;…

文件-计算平均分

任务描述 本关任务&#xff1a;假设有若干学生&#xff0c;每个学生有3门功课&#xff0c;从键盘上输入学生有关信息&#xff08;学号、姓名、成绩&#xff09;&#xff0c;并计算其平均成绩&#xff0c;将原有数据和平均分保存在磁盘文件record中。具体要求如下: 学生有关信…

【计算机毕业设计】基于SpringBoot+Vue大学生心理健康管理系统的开发与实现

博主主页&#xff1a;一季春秋博主简介&#xff1a;专注Java技术领域和毕业设计项目实战、Java、微信小程序、安卓等技术开发&#xff0c;远程调试部署、代码讲解、文档指导、ppt制作等技术指导。主要内容&#xff1a;毕业设计(Java项目、小程序等)、简历模板、学习资料、面试题…