当前位置:网站首页>URL Protocol 网页打开应用程序
URL Protocol 网页打开应用程序
2022-08-09 19:06:00 【淡定九号】
URL Protocol
引言
有时候在网页开发的时候,会遇到需要打开一个电脑指定程序的功能,这时候就需要用到URL Protocol。
大体的思路就是先给应用程序注册一个自定义的URL Protocol,然后利用URL Protocol实现网页调用应用程序。
1、添加注册表
自定义一个注册表文件,类似于Protocol.reg,添加以下内容
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\MyWinform]
@="URL:MyWinform Protocol Handler"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\MyWinform\DefaultIcon]
@="F:\\AllProjects\\VisualStudio\\TestWinform\\MyWinform\\MyWinform\\bin\\Debug\\MyWinform.exe"
[HKEY_CLASSES_ROOT\MyWinform\shell]
[HKEY_CLASSES_ROOT\MyWinform\shell\open]
[HKEY_CLASSES_ROOT\MyWinform\shell\open\command]
@="\"F:\\AllProjects\\VisualStudio\\TestWinform\\MyWinform\\MyWinform\\bin\\Debug\\MyWinform.exe\" \"%1\""
文件中的“MyWinform”是我自定义的程序名称,可以改成自己的应用程序名称,注意路径这块是双斜杠。
2、编写网页
这里写一个简易的网页,主要就是一个超链接,开头的“MyWinform”就是自定义的程序名称,后面可以传递参数。
<html>
<body>
<a href="MyWinform://hello">点我试试</a>
</body>
</html>
效果
3、参数接收
这里只说明下Winform下怎么接受参数,其他的各位可以自行研究。
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
string inputArgs = string.Join(",", args);
if (AnotherAppIsRunning())
{
MessageBox.Show("已经有程序运行了:" + inputArgs);
}
else
{
MessageBox.Show(inputArgs);
Console.WriteLine(inputArgs);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
Console.WriteLine("游戏正式开始!!!!");
}
}
效果图
总结
还有一些可以在C# 脚本中添加注册表的方法,但是需要管理员权限,有需要的话可以了解下RegistryKey这个类。
边栏推荐
猜你喜欢
IS31FL3737B general 12 x 12 LED drive 40 QFN I2C 42 ma
[] free column Android dynamic debugging GDB APP of safety
matlab 神经网络 ANN 分类
leetcode 二叉树的公共近祖先
华为云全流程护航《流浪方舟》破竹首发,打造口碑爆款
ebook下载 | 《 企业高管IT战略指南——企业为何要落地DevOps》
mysql 重复数据 分组 多条最新的记录
source install/setup.bash时出现错误
为什么数字钱包需要引入小程序生态
获取数组最后一项别再用array.length-1了
随机推荐
《评估、创建和使用知识图谱的限制》2022最新230页博士论文,根特大学
解决执行Command报错executable file not found in $PATH
3D感知(二):单目3D物体检测
PCL学习之滤波Filtering
OpenSSL SSL_read: Connection was reset, errno 10054
为什么maxcompute的数据导入到mysql会乱码?mysql的表是udf8mb4的编码
基于CC2530 E18-MS1-PCB Zigbee DIY作品(三)
真香|持一建证书央企可破格录取
基于网络数据流的未知密码协议逆向分析
面试官:MySQL 中 update 更新,数据与原数据相同时会执行吗?大部分人答不上来!
看完这波 Android 面试题;助你斩获心中 offer
2.3 监督学习-2
Toronto Research Chemicals单羟基舒更葡糖钠说明书
mysql 重复数据 分组 多条最新的记录
Queue topic: Implementing stacks with queues
leetcode 二叉树的公共近祖先
AttributeError: module 'click' has no attribute 'get_os_args'
prometheus学习3Grafana部署及基本使用
Openharmony Lightweight System Experiment--GPIO Lighting
工大科雅深交所上市:市值45亿 齐承英家族是大股东