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

  前篇文章介绍了网页调用本地可执行程序的方式,通过在注册表中注册命令,然后在网页中调用命令启动本地程序。如果需要传递参数,则需要在注册表命令中的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.mzph.cn/news/86159.shtml

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

相关文章

pipefail 选项,不起眼,却很重要

set -o pipefail 是一个在 Bash shell 脚本中常用的命令&#xff0c;它的作用是改变管道命令的退出状态。 在默认情况下&#xff0c;一个管道命令&#xff08;由多个命令通过管道符 | 连接而成的命令&#xff09;的退出状态是最后一个命令的退出状态&#xff0c;而不考虑前面的…

【python】Seaborn画热力图,只显示第一行数字---seaborn与matplotlib版本问题

github上有这个讨论&#xff1a;Heatmap only has annotation text in the top row only Issue #3478 mwaskom/seaborn (github.com)翻译过来就是&#xff1a;热图仅在最上面一行有注释文本&#xff1b; 原因就是matplotlib 在2023年9月更新到了 3.8.0版本&#xff0c;改变了…

算法 旋转矩阵

牛客网: BM98 题目: 螺旋式返回矩阵所有元素 思路: 初始化边界指针left 0, right n-1, up 0, down n-1, 遍历条件为up<down&&left<right&#xff0c;每次遍历完一行、列时改变up/down/left/right后需要对停止条件进行判断提前结束外层循环。 代码: // go…

FPGA project : HCSR04

犯下的错误&#xff1a; 1&#xff0c;由于使用cnt_base 做echo回响信号高电平时间的测量&#xff0c;它的数据应该很大&#xff0c;位宽也很大。也可以采用cnt_us计数器&#xff0c;计算这个高电平时间的。我为了精确计算距离&#xff0c;所以才仍然用的cnt_base计数器。 2&…

什么算泄露公司机密的行为(什么程度算公司泄密行为)

在当今的商业环境中&#xff0c;保护公司的核心竞争力和商业机密是至关重要的。然而&#xff0c;员工可能出于各种原因泄露这些信息&#xff0c;包括对竞争对手的追求、个人利益的驱动或者对工作的不满。在这种情况下&#xff0c;企业需要依赖专业的调查工具来揭示和证明员工的…

【Cpp】位图Bitmap

code #include <iostream> #include <vector> #include <stdio.h> #include <stdint.h>class Bitmap { private:std::vector<uint8_t> data; // 存储位图数据的字节数组uint32_t size; // 位图的大小&#xff08;以位为单位&#x…

C++使用cmake创建项目

目录 cmake下载linux使用cmake创建C项目cmake编译运行windows使用cmake创建C项目 cmake下载 cmake支持linux、windows等跨平台使用。 linux安装 sudo apt install cmakewindows下载 cmake官网下载地址&#xff0c;选择Windows x64 ZIP版本&#xff1a;https://cmake.org/down…

Android 13.0 framework去掉长按webview界面弹框中的 打开 字符串

1.概述 在13.0系统定制化开发中,在app中进入网页WebView控件加载网页后,长按网页会弹出分享和打开等等字样,但是产品需要觉得不想要这些选项 所以要求去掉这些选项所以就要 从WebView控件开始寻找相关的代码,所以要求去掉这些选项,接下来就分析下相关的流程来实现功能 2…

Vue路由及Node.js环境搭建

目录 一、Vue路由 1.1 定义 1.2 应用领域 1.3 代码展示 二、Node.js 2.1 定义 2.2 特点 2.3 Node.js安装与配置 2.3.1 下载安装包 2.3.2 手动新建文件夹 2.3.3 注意事项 2.3.4 配置环境变量 2.3.5 检验是否安装配置成功 2.3.6 设置淘宝源 2.3.7 查看全局路径设置…

通用返回结果类ResultVO

1. 定义通用返回结果类 ​ 定义ResultVO类&#xff0c;作返回给前端的对象结构&#xff0c;主要有4个字段 code : 错误码 data : 内容message : 消息description : 具体描述 import lombok.Data; import java.io.Serializable;/*** 通用返回结果类* param <T>*/ Data …

史上最详细的测试用例写作规范

软件测试用例得出软件测试用例的内容&#xff0c;其次&#xff0c;按照软件测试写作方法&#xff0c;落实到文档中&#xff0c;两者是形式和内容的关系&#xff0c;好的测试用例不仅方便自己和别人查看&#xff0c;而且能帮助设计的时候考虑的更周。 一个好的测试用例必须包含…

Tessy 5.0.4

Tessy 5.0.4 Linux 2692407267qq.com&#xff0c;更多内容请见http://user.qzone.qq.com/2692407267/

论文研读-数据共享-大数据流分析中的共享执行技术

Shared Execution Techniques for Business Data Analytics over Big Data Streams 大数据流分析中的共享执行技术 1、摘要 2020年的一篇共享工作的论文&#xff1a;商业数据分析需要处理大量数据流&#xff0c;并创建物化视图以便给用户实时提供分析结果。物化每个查询&#x…

Centos7安装wps无法打开及字体缺失的问题解决

在centos7上安装了最新的wps2019版本的wps-office-11.1.0.11704-1.x86_64.rpm&#xff0c;生成了桌面图标并信任&#xff0c;可以新建文件&#xff0c;但是软件无法打开。在终端执行如下命令&#xff0c;用命令行启动wps&#xff1a; cd /opt/kingsoft/wps-office/office6/ ./…

Learn Prompt- Midjourney 图片生成:基本设置和预设

/settings指令为模型版本、样式值、质量值和升级器版本等常用选项提供切换按钮。 备注 添加到提示末尾的参数将覆盖/settings中的设置。 模型版本​ 1️⃣ MJ Version 12️⃣ MJ Version 23️⃣ MJ Version 34️⃣ MJ Version 45️⃣ MJ Version 5&#x1f308; Niji Mode&a…

zerotier-client

title: “zerotier-client” createTime: 2022-10-10T11:50:5108:00 updateTime: 2022-10-10T11:50:5108:00 draft: false author: “zcb” tags: [“zerotier-plant”,“zerotier-client”,“zerotier”] categories: [“zerotier”] description: “测试的” 1.windows 1.1…

存储管理详解

目录 存储管理&#xff08;1&#xff09; 第一节 存储管理概述&#xff08;内存管理&#xff09; 一、存储体系 二、存储管理的任务 三、地址转换 存储管理&#xff08;2&#xff09; 第二节 分区管理方案 一、固定分区 二、可变分区 三、分区管理方案的优缺点 第…

我对Linux的认识

2023年9月23日&#xff0c;周六晚上 Linux是主要是用来部署各种各样的服务的&#xff0c;比如数据库服务、web服务、javaweb服务、servlet服务等。 利用Linux的API、第三方库等可以编写各种各样的服务程序。 总而言之&#xff0c;就是Linux就是用来提供服务的。 Linux可以部署…

linux shell(一)

1、While循环 while循环构造用于多次运行某些指令。查看以下名为while.sh的脚本&#xff0c;以更好地理解此概念。 #!/bin/bash i0while [ $i -le 2 ] do echo Number: $i ((i)) done 因此&#xff0c;while循环采用以下形式。 while [ condition ] do commands 1 commands…

人类的态势感知可分为先验、似然、后验的三部分

人类的态势感知可以分为先验、似然和后验三个部分。这些部分描述了在不同阶段对环境的感知和理解。先验感知&#xff1a;先验感知基于先前的知识、经验和先验信息来理解环境。它利用已有的知识和模型&#xff0c;进行预测和推断&#xff0c;从而形成对当前环境的初步认知。先验…